Bundle Install无法从https://rubygems.org/获取规范

Ste*_*ven 30 ruby gem ruby-on-rails bundler railstutorial.org

我正在尝试遵循Hartl Rails教程,并且遇到捆绑器gem的问题.

当使用命令'bundle install'或'bundle update'时,我得到以下输出:

https://rubygems.org/获取源索引

无法从https://rubygems.org/获取规格

我搜索了这个输出,但没有在网上找到很多相关问题.

也许我有另一个正在打断捆绑器的宝石?此时我对rails几乎没有经验.

    source 'https://rubygems.org'

gem 'rails', '3.2.12'

group :development do
  gem 'sqlite3', '1.3.5'
end


# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '3.2.5'
  gem 'coffee-rails', '3.2.2'

  gem 'uglifier', '1.2.3'
end

gem 'jquery-rails', '2.0.2'
Run Code Online (Sandbox Code Playgroud)

我的解决方案分为两部分:我将https更改为http,这暂时解决了问题.第二个问题是我认为我安装了ruby 2.0.0,尽管我使用的是全新安装的ruby 1.9.3.所以我重新安装了ruby 2.0.0,我可以使用https捆绑安装.

小智 24

我遇到过同样的问题.我找到的唯一可行解决方案是在Gemfile中强制使用http而不是https:

source 'http://rubygems.org'
Run Code Online (Sandbox Code Playgroud)


小智 19

万一没有以上满足下一个勇敢的探险家的,我想我会放在此处后,我花了4个小时,在这里登陆我搜索的这种做变种,我终于发现,IPV6是罪魁祸首,找到后这关于help.rubygems.org的特定线程。解?这(Fedora,Linux):

sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
Run Code Online (Sandbox Code Playgroud)

设置一个Shell脚本来打开和关闭IPV6,这样我就可以在没有该命令的情况下运行命令,现在一切都运行良好。

  • 这值得更多赞成。涉及将 https 更改为 http 的解决方案是一个安全问题,应该避免。 (4认同)
  • 这可能听起来很奇怪,但这个答案确实有效;我不想相信,但就我而言,IPv6 是问题的根本原因。谢谢 (3认同)
  • macOS遇到了相同的令人沮丧的问题(间歇性的,昨天也很好用)(在我的案例中为Sierra)。在Mac上,打开和关闭ipv6的命令是`sudo networksetup -setv6off'Wi-Fi',然后重新打开它是'sudo networksetup -setv6automatic'Wi-Fi'。(将“ Wi-Fi”替换为“网络”偏好设置中的网络接口名称)。将此作为打包程序的包装脚本留给读者练习。为什么在2019年我们还会遇到这些问题?Google Cloud Platform存在相同的问题。 (2认同)

Dmi*_*nds 9

如果在Windows中,你可以尝试以下方法:

set HTTP_PROXY= <your proxy address without http://>

set HTTPS_PROXY=%HTTP_PROXY%
Run Code Online (Sandbox Code Playgroud)

例如:

HTTP_PROXY=mycompany.myproxy.com:8080

HTTPS_PROXY=%HTTP_PROXY%
Run Code Online (Sandbox Code Playgroud)

为我工作


Azi*_*aib 7

它也可能是暂时的网络问题。尝试使用命令重新启动网络服务

service network restart
Run Code Online (Sandbox Code Playgroud)

如果它的 *nix 机器。

  • 在 OS X 上:`sudo ifconfig en0 down``sudo ifconfig en0 up` (9认同)
  • 在 macOS X 上,我只需关闭然后打开 wifi 就可以了!谢谢! (3认同)

min*_*iot 5

ruby-2.0.0-p247我在 OS X 10.8.5 上使用时遇到了同样的问题。

确保第一行Gemfile正在使用https://

source 'https://rubygems.org'
Run Code Online (Sandbox Code Playgroud)

我重新安装了那个版本的 ruby​​。

rvm reinstall ruby-2.0.0
Run Code Online (Sandbox Code Playgroud)

Ruby 已升级ruby-2.0.0-p598(版本取决于最新补丁)。

bundle尽管重新安装了所有宝石,但工作没有错误。


Art*_*_PL 2

导致此类问题的另一个原因是您位于代理服务器后面。我在这里描述解决方案,也许对其他人有用。:)

如果您不知道代理的登录/密码,并遇到此问题,您可以首先通过命令检查是否需要(重新)安装任何内容:

C:\...> bundle check
Resolving dependencies...
The Gemfile's dependencies are satisfied
Run Code Online (Sandbox Code Playgroud)

如果您得到上述其他响应,您可以在此处 (rubygems.org)找到正确版本的正确 gem ,然后通过命令安装它(从下载 gem 的目录):

gem install <gem-name> --locally 
Run Code Online (Sandbox Code Playgroud)