web-dev-qa-db-ja.com

gemリモートソースからリモートソースを削除する方法

Rubygemsソースにgemcutter.orgを追加しましたが、削除する方法がわかりません。

$ gem sources
*** CURRENT SOURCES ***

http://gemcutter.org
http://gems.rubyforge.org/
21
Željko Filipin
$ gem sources -r http://gemcutter.org
http://gemcutter.org removed from sources

$ gem sources
*** CURRENT SOURCES ***

http://gems.rubyforge.org/
46
Željko Filipin

一般に、次の構文を見つけることができます

gem help *command*

したがって、これは必要なオプションを示しています。

gem help sources
3
Wilersh

しかし、デフォルトのソースが原因で、接続されていないシステムでgemインストールがハングすることが問題である場合はどうなりますか? (不可能だと思いますか?!?)最も一般的な回答で提供されているコマンドを実行すると、次のようになります。

# gem sources -r https://rubygems.org
source https://rubygems.org not present in cache

次に、この状況に対処するには、ソースを変更する必要がありますcringe

sed -i '/[[:space:]]def self\.default_sources/a return []'   \
  $RUBYGEMS_DIR/rubygems/defaults.rb

これにより、「デフォルトのソース」を返すメソッドの後に、空の配列を返すreturn []というコード行が追加されます。 gem environmentを実行すると、厄介なリモートソースは表示されません。これで、戻ってsedコマンドを元に戻すか、rubygemsリポジトリなどを手動で追加できます。

編集:明確にし、一般化します。

1
Otheus