2

私は最近、ニッチデータベースのJDBCドライバーをラップするためにプライベートgem(他の誰も使用していないことを保証できます)を開始しました。やり直したいバージョンのgemを公開することになりました。

私はgemバージョンをヤンクする方法と、バージョン番号をぶつけて公開するという一般的な解決策を理解しています。これはほとんどの場合理にかなっています。ただし、私の場合は、バンドルしているデータベースドライバーと同じgemバージョンを使用したいので(これは一般的な方法のようです)、バージョン番号を上げることはできません。.1また、データベースバージョンにはアルファベット文字が含まれているため、演算子が使用できなくなるため、データベースバージョン番号にサフィックスを追加するような巧妙なことはできません~>(すべてのバージョンはプレリリースと見なされます)。つまり、正確なバージョン番号が必要です。

私の質問は、 gemのすべてのバージョンをヤンクして、gem名がRubyGems名前プールで再び使用できるようにした場合、gem名を再利用して、以前使用していた同じgemバージョンに対して異なるコードをプッシュできますか?

4

3 に答える 3

4

Gemの変更を防ぐことは、RubyGems.orgの設計の一部です。ユーザーのコンピューター上のRubyGemsは元のgemファイルをキャッシュするため、2回実行するgem installと、元のgemがRubyGems.orgで変更された場合、動作が一貫しない可能性がありますが、古いバージョンはキャッシュに保持されます。したがって、あなたができる唯一のことはyank、RubyGems.orgチームに連絡して例外を作ることです。

あなたが提案したように、ラッパーを.1作成したとき、ライブラリの特定のバージョンをラップするさまざまなビルドを区別するために、別のサフィックスを追加しました。

于 2013-02-07T20:29:28.733 に答える
1

宝石を交換することはできません、ごめんなさい。新しいバージョンを送信する必要があります。

于 2012-06-07T01:47:44.383 に答える
0

私の質問は、 gemのすべてのバージョンをヤンクして、gem名がRubyGems名前プールで再び使用できるようにするかどうかです。

私の答えはトピックから外れているようですが、この場合(gemのすべてのバージョンをヤンクする)、RubyGemsから古いgemを完全に削除し、同じまたはわずかに異なる名前ですべてのバージョンを新しいgemに公開する方が簡単です。

于 2019-05-10T06:21:01.043 に答える