【问题标题】:How to remove a remote source from gem remote sources如何从 gem 远程源中删除远程源
【发布时间】:2009-11-04 08:56:20
【问题描述】:

我已将 gemcutter.org 添加到我的 Rubygems 源中,但现在我不知道如何删除它。

$ gem sources
*** CURRENT SOURCES ***

http://gemcutter.org
http://gems.rubyforge.org/

【问题讨论】:

  • 你为什么要删除它呢? rubyinside.com/…
  • 我必须检查是否从 gems.rubyforge.org gem 索引中删除了 gem,我可以确定的唯一方法是删除所有其他来源。

标签: ruby gem rubygems


【解决方案1】:
$ gem sources -r http://gemcutter.org
http://gemcutter.org removed from sources

$ gem sources
*** CURRENT SOURCES ***

http://gems.rubyforge.org/

【讨论】:

    【解决方案2】:

    一般来说,你可以找到语法

    gem help *command*
    

    所以这显示了您需要的选项:

    gem help sources
    

    【讨论】:

      【解决方案3】:

      但是如果问题是默认源导致 gem install 在未连接的系统上挂起怎么办? (你认为这是不可能的?!?)如果你运行最流行的答案提供的命令,就会发生这种情况:

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

      那么要处理这种情况,就必须修改source cringe

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

      这会在返回“默认来源”的方法之后添加一行代码,即return [],以返回一个空数组。运行gem environment,您将看不到讨厌的远程源。现在您可以返回并撤消 sed 命令,或者手动添加 ruby​​gems 存储库或其他任何内容。

      编辑:澄清,概括。

      【讨论】:

      • 为什么有必要这样做?为什么不直接删除默认来源?
      • 问题是“默认源”是硬编码的,会导致一切都挂在未连接的系统上。
      • @Otheus 不正确。我刚刚在模拟没有网络出口的情况的机器上成功运行gem sources -r https://rubygems.org/。它停止了gem install 的挂起。
      • @sixty4bit 检查源代码,如果您的安装/发行版有此默认行。我的有:def self.default_sources; %w[https://rubygems.org/]; end 它是硬编码的。
      • @sixty4bit 见stackoverflow.com/questions/11109279/… 并从那里,我上面的答案。
      猜你喜欢
      • 2020-02-07
      • 2017-10-09
      • 2017-08-15
      • 2014-09-09
      • 2011-06-20
      • 2012-11-14
      相关资源
      最近更新 更多