Rubygemsソースにgemcutter.orgを追加しましたが、削除する方法がわかりません。
$ gem sources
*** CURRENT SOURCES ***
http://gemcutter.org
http://gems.rubyforge.org/
$ gem sources -r http://gemcutter.org
http://gemcutter.org removed from sources
$ gem sources
*** CURRENT SOURCES ***
http://gems.rubyforge.org/
一般に、次の構文を見つけることができます
gem help *command*
したがって、これは必要なオプションを示しています。
gem help sources
しかし、デフォルトのソースが原因で、接続されていないシステムで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リポジトリなどを手動で追加できます。
編集:明確にし、一般化します。