【问题标题】:"Could not find a valid gem in any repository" (rubygame and others)“在任何存储库中都找不到有效的 gem”(rubygame 和其他)
【发布时间】:2012-04-15 06:21:08
【问题描述】:

我一直在尝试安装这个“rubygame”gem,但每当我使用命令时

gem install rubygame

会报错:

ERROR:  Could not find a valid gem 'rubygame' (>= 0) in any repository
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
Errno::ETIMEDOUT: Connection timed out - connect(2) (http://rubygems.org/latest_specs.4.8.gz)

我也尝试过其他 gem,但结果相似:

ERROR:  Could not find a valid gem 'rake' (>= 0) in any repository
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
Errno::ETIMEDOUT: Connection timed out - connect(2) (http://rubygems.org/latest_specs.4.8.gz)

我已经确定我有互联网连接,并且已经尝试重新安装 ruby​​ 和 ruby​​gems(目前使用 ruby​​ 1.8、rubygems 1.7.2)。谷歌搜索根本没有帮助我。如果有人能解决我的问题,我将不胜感激。我的来源列表只显示http://rubygems.org

【问题讨论】:

  • 由于某种原因,它今天开始正常工作。我不知道它是如何解决的。无论如何感谢您的帮助。
  • 问题出在代理服务器上,可以通过以下命令解决: gem install package --http-proxy=user:pass@proxy:port_no 如果您没有用户名或密码,请忽略它们并只需在“@”forums.openshift.com/gem-install-rhc-error之后提及您的代理地址和端口号

标签: ruby gem rubygame


【解决方案1】:

检查您是否有“https://rubygems.org/”作为在以下位置查找宝石的来源:

$ gem sources
*** CURRENT SOURCES ***

https://rubygems.org/

如果没有,你应该可以添加它

$ gem sources --add https://rubygems.org/
https://rubygems.org/ added to sources

Heregem source 命令的文档。

【讨论】:

  • 非常感谢您的解决方案,omg Ruby 默认添加了一个安全的 HTTPS 连接作为源...我使用 http: 手动添加了相同的源,它运行良好
  • @ElektroStudios :您的评论拯救了我的一天。谢谢!
  • 没用!!! SSL 问题。 @Apprentice 解决方案很好。 stackoverflow.com/a/18063512/2369867
  • @ElektroStudios 你的评论拯救了我的一天。
【解决方案2】:

您也可以在使用 https 遇到问题时在命令中添加您想要的源,如下所示:

gem install GEMNAME --source http://rubygems.org

不过最好解决 SSL 问题。

【讨论】:

  • 我只是在这里滚动尝试每个答案,你做到了:D 非常感谢。不需要代理或某事。
  • 奇怪,这是唯一对我有用的解决方案。
  • 我最终通过运行brew unlink pkg-config重新编译和安装ruby,然后brew link pkg-config并安装捆绑器gemgem install bundler,修复了在osx上安装ruby 2.4.2的问题。这已在 ruby​​ 2.5.0 中修复。我也在使用 chruby+ruby_install。还大量使用rehash 命令来发现新的二进制文件。
  • 在搜索 ssl 错误数小时后找到了解决方法
【解决方案3】:

您是否支持任何代理?

检查您的浏览器是否有您可能使用的代理:

执行命令:gem install xxx --http-proxy=http://user:password@server,您应该一切顺利。

【讨论】:

    【解决方案4】:

    您没有到 ruby​​gems.org 的 Internet 连接。

    如果网站关闭或被阻止,有时会发生这种情况。

    此命令可以显示您的连接是否可以访问 ruby​​gems.org:

    traceroute rubygems.org
    

    【讨论】:

    • 根据 ping,“0% 数据包丢失”。我对traceroute和tracepath不太了解,但似乎我在traceroute中得到了服务器的响应,而tracepath中“没有回复”。
    • 这是个好消息。 traceroute 和 tracepath 应该向您显示到 ruby​​gems 服务器的逐步连接。下一步是询问您是否有可能在某种可能阻止您下载的防火墙后面?另外,请尝试我下一个答案中的代码。
    • this person 说 ruby​​gems.org 不响应 ping 请求。我看到 100% 的数据包丢失,但 gem 搜索正在工作......
    【解决方案5】:

    也许你应该试试

    gem list -r
    

    然后

    gem install -r rubygame
    

    还请注意,在 MacosX 上使用 rvm(在我的情况下为 Lion)您应该安装 ruby-1.9.3-p194(出于 Xcode 4.x 编译器考虑)然后

    rvm rubygems current
    

    在我的情况下,我不得不使用

    rvm use ruby-1.9.3-p194@global
    

    (其中包含bundlerrakerubygems-bundlerrvm

    而不是

    rvm use ruby-1.9.3-p194
    

    (为空)

    【讨论】:

      【解决方案6】:

      你能发布你的版本吗?

      ruby -v
      #=> ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-linux]
      
      gem -v
      #=> 1.8.19
      

      如果你的 gem 命令不是最新的,你可以像这样更新它:

      gem update --system
      

      查看是否可以使用 Ruby 连接到 ruby​​gems.org:

      require 'net/http'
      require 'uri'
      puts Net::HTTP.get URI.parse('https://rubygems.org')
      

      如果是,那很好。

      如果不是,那么 Ruby 会以某种方式被阻止打开网络连接。试试这些,看看它们中的任何一个是否有效:

      curl https://rubygems.org
      
      curl https://rubygems.org --local-port 1080
      
      curl https://rubygems.org --local-port 8080
      
      env | grep -i proxy
      

      如果您使用的是公司机器,或在公司防火墙内,或运行您自己的防火墙,您可能需要使用代理。

      有关 Ruby 和代理的信息,请参阅 http://www.linux-support.com/cms/http-proxies-and-ruby/


      【讨论】:

      • Ruby 版本是:ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-linux] Gem 版本是:1.7.2 编辑:代码显示这个... /usr/lib /ruby/1.8/net/http.rb:560:in `initialize': 连接超时 - connect(2) (Errno::ETIMEDOUT)
      • 您的代码结果显示 Ruby 无法打开连接。这缩小了范围。您使用的是什么系统(例如您自己的笔记本电脑?),什么操作系统(例如,Mac OSX),您使用的是什么防火墙软件
      • 我正在使用自己的笔记本电脑和 Ubuntu 11.10。我不确定防火墙。 (显然禁用了ufw)。 curl 要么返回“无法连接到主机”,要么什么都不返回。返回的 env 命令返回 UBUNTU_MENUPROXY=libappmenu.so
      • 很好,如果这个“curl rubygems.org”返回“无法连接到主机”,那么您已经证明问题不在于您的 Ruby 设置。您是否连接到公司网络或学校网络之类的网络?还可以尝试关闭防火墙,如下所示:help.ubuntu.com/11.10/ubuntu-help/net-firewall-on-off.html
      • 我只通过我的家庭网络(无线路由器)连接,所以我几乎可以肯定不使用代理。我的防火墙也被禁用了。
      【解决方案7】:

      我已经使用 gem install 的代理命令选项解决了这个问题。格式如下:

      $ gem install --http-proxy http://201.187.107.19:8080 rubygame
      

      注意,IP 地址和端口号是指代理。您应该搜索代理列表并使用其中的一个代理。

      这是有代理的网站:http://www.cybersyndrome.net/pla5.html

      另外,我必须尝试 7 或 8 个不同的代理才能成功。不要放弃。

      【讨论】:

        【解决方案8】:

        使用:

        宝石来源--add http://rubygems.org/

        您要添加这个不安全的来源吗? [yn] [是]

        然后使用

        gem 安装 sass

        完成了

        【讨论】:

        • 这应该是 2021 年的 https。gem sources --add https://rubygems.org/
        【解决方案9】:

        我知道这有点晚了,但我不久前也遇到了这个问题。这对我有用:

        REALLY_GEM_UPDATE_SYSTEM=1 
        sudo gem update --system
        sudo gem install rails
        

        希望这可以帮助其他遇到此问题的人:)

        【讨论】:

          【解决方案10】:

          我已经尝试了这里建议的大多数解决方案,但我没有运气。 我找到了一个对我有用的解决方案,将 gemfile 手动更新到 2.6.7。 操作指南在 guides.rubygems.org:installing-using-update-packages

          下载rubygems-update-2.6.7.gem到你的C:\

          现在,使用您的命令提示符:

          C:\>gem install --local C:\rubygems-update-2.6.7.gem
          C:\>update_rubygems --no-ri --no-rdoc 
          

          此后,gem --version 应该报告新的更新版本 (2.6.7)。

          您现在可以安全地卸载 ruby​​gems-update gem:

          C:\>gem uninstall rubygems-update -x
          Removing update_rubygems
          Successfully uninstalled rubygems-update-2.6.7
          

          之前这不起作用的原因是因为服务器使用证书 SHA-1,现在更新为 SHA-2。

          【讨论】:

          • 在我执行这一行 gem update --system 后为我工作
          【解决方案11】:

          值得我来到这个页面,因为我遇到了同样的问题。除了一些我不理解的 IMAP 内容外,我什么也没有。然后我记得我已经在我的 ubuntu 上卸载了 privoxy(因为在我使用 Daniel Kehoe 的 Rails 模板时提到了 127.0.0.1:8118 的一些奇怪的运行时错误,https://github.com/RailsApps/rails3-application-templates [从未发现它是什么])并且我没有改变我的终端处于网络代理下无系统范围代理的状态。

          我知道这可能不是重点,但如果我在这里结束,也许其他 privoxy 用户也可以受益。

          【讨论】:

            【解决方案12】:

            检查您的 DNS 设置...我遇到了类似的问题...当我检查我的 /etc/resolve.config 文件时,名称服务器丢失了...添加后问题得到解决

            【讨论】:

              【解决方案13】:

              这对我来说可以绕过代理定义:

              1) 成为根

              2) gem install -u gem_name gem_name

              希望你能解决

              【讨论】:

                【解决方案14】:

                我尝试安装仅适用于 JRuby 的 gem,但遇到了同样的错误。然后使用 jruby 的命令起作用:

                jruby -S gem install some_jruby_gem
                

                【讨论】:

                  【解决方案15】:

                  如果您在任何防火墙后面运行(如果防火墙阻止 gem 安装)。只需尝试以下命令即可。

                   gem install --http-proxy http://username:pwd@server:port gem
                  

                  【讨论】:

                    【解决方案16】:

                    确保您从“应用”目录键入命令

                    【讨论】:

                      【解决方案17】:

                      这是一个权限问题。

                      用 sudo 试试

                      【讨论】:

                      • 不。不是问题
                      • 顺便说一句,在我的情况下是这样的。
                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多