“无法在任何存储库中找到有效的gem”(rubygame和其他人)

时间:2012-04-01 05:08:35

标签: ruby gem rubygame

我一直试图安装这个'rubygame'宝石一段时间,但每当我使用命令时

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)

我也尝试了其他宝石,但结果相似:

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和rubygems(目前使用ruby 1.8,rubygems 1.7.2)。谷歌搜索根本没有帮助我。如果有人能解决我的问题,我将非常感激。我的来源列表仅显示http://rubygems.org

17 个答案:

答案 0 :(得分:70)

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

$ gem sources
*** CURRENT SOURCES ***

https://rubygems.org/

如果没有,您应该可以添加

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

Heregem source命令的文档。

答案 1 :(得分:47)

每当遇到使用https的麻烦时,您也可以在命令中添加所需的源代码,如下所示:

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

最好修复SSL问题。

答案 2 :(得分:26)

你是否支持任何代理?

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

执行命令:gem install xxx --http-proxy=http://user:password@server,你应该好好去。

答案 3 :(得分:24)

您没有与rubygems.org的互联网连接。

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

此命令可以显示您的连接是否有办法到达rubygems.org:

traceroute rubygems.org

答案 4 :(得分:10)

也许你应该尝试

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

(这是空的)

答案 5 :(得分:8)

你可以发布你的版本吗?

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

gem -v
#=> 1.8.19

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

gem update --system

看看你是否可以使用Ruby连接到rubygems.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/


答案 6 :(得分:8)

我已使用gem install的proxy命令选项修复了此问题。它具有以下格式:

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

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

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

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

答案 7 :(得分:3)

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

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

希望这有助于其他人解决此问题:)

答案 8 :(得分:3)

使用:

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

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

然后使用

gem install sass

并完成了

答案 9 :(得分:2)

我尝试过这里提出的大多数解决方案,但我没有运气。 我找到了一个适合我的解决方案,它手动将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)。

     

您现在可以安全地卸载rubygems-update gem:

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

之前没有用的原因是因为服务器使用了SHA-1证书,现在已经更新为SHA-2。

答案 10 :(得分:1)

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

答案 11 :(得分:1)

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

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

答案 12 :(得分:0)

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

1)成为root

2)gem install -u gem_name gem_name

希望你能解决它

答案 13 :(得分:0)

确保您输入" App"目录

答案 14 :(得分:0)

我尝试安装一个仅用于JRuby的gem,遇到同样的错误。然后使用jruby的命令:

jruby -S gem install some_jruby_gem

答案 15 :(得分:0)

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

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

答案 16 :(得分:-4)

这是一个许可问题。

尝试使用sudo