捆绑安装不起作用

时间:2016-07-16 10:27:34

标签: ruby-on-rails ruby bundle gemfile

我正在Windows上开发Ruby on Rails。

我们的本地网络出现问题,无法访问https://www.rubygems.org,似乎已被屏蔽或其他内容。

但我可以通过http://www.proxyfoxy.com访问它。

以下是bundle install的结果:

  

$ bundle install

     

https://rubygems.org/

获取源索引      

由于错误而重试抓取器(2/4):Bundler :: HTTPError无法从https://rubygems.org/获取规范

     

由于错误而重试抓取器(3/4):Bundler :: HTTPError无法从https://rubygems.org/获取规范

     

由于错误而重试抓取器(4/4):Bundler :: HTTPError无法从https://rubygems.org/获取规范

     

无法从https://rubygems.org/

获取规格

有没有其他方法可以通过bundle install安装宝石?

13 个答案:

答案 0 :(得分:6)

打开Gemfile并从此

更改第一行
source 'https://www.rubygems.org'

到这个

source 'http://www.rubygems.org'

删除' s'来自' https'。

答案 1 :(得分:3)

正如@Wasif所提到的,首先确保Ruby Gems网站已启动并且您的网络访问正常。

如果它们正常工作,请尝试这样:

  • 首先,删除您的Gemfile.lock文件

  • 然后运行gem update --system

  • 然后在您的Gemfile中尝试将第一行source 'https://rubygems.org'更改为http://(不带s

除非您的连接出现问题,否则应解决bundle install的问题。

答案 2 :(得分:1)

当 gem 停止时,我运行了 netstat

netstat -tnp | grep ruby

我得到了低于输出

(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp6       0      1 2401:4900:188e:90:56960 2a04:4e42:600::644:443  SYN_SENT    4096/ruby

而 2a04:4e42:600::644:443 是 api.rubygems.org 的地址之一

我的结论是 gem 尽可能使用 IPv6。

所以在我的工作站上禁用 IPV6 修复了它。

以下是在 Ubuntu 上临时禁用 IPV6 的步骤。系统重启后将启用IPV6。

sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1

注意:对 permission denied 问题使用 sudo。

答案 3 :(得分:0)

我遇到了同样的问题,当我在运行bundle install

之前关闭rails服务器时它碰巧工作了

答案 4 :(得分:0)

这是一个连接问题。

我通过hideMe VPN解决了这个问题。它用于绕过被阻止的网站或仅针对特定用户的服务器。

现在一切似乎都运转得很好。

答案 5 :(得分:0)

在第一行的Gemfile中,源代码应为http://而不是https://

更改

sourçe  https://www.rubygems.org进入

source  http://www.rubygems.org

然后您可以成功运行bundle install

答案 6 :(得分:0)

有时候, 您的DNS导致此问题。

您可以将DNS更改为1.1.1.18.8.8.8

mac的说明

  • 转到首选项面板
  • 点击网络面板
  • 点击进入高级按钮
  • 转到“ DNS”标签
  • 添加DNS服务器(带有“ +”按钮)
  • 输入1.1.1.18.8.8.8
  • 点击确定
  • 然后单击以应用

但是您可以按照以下步骤操作: http://www.macinstruct.com/node/434

Windows指令

https://www.windowscentral.com/how-change-your-pcs-dns-settings-windows-10

答案 7 :(得分:0)

在Rails应用程序中运行bundle时遇到相同的错误。我通过运行来解决问题:

$ bin/bundle

问题是bundle是v1.17.3,而bin/bundle是2.0.2。版本。

答案 8 :(得分:0)

我遇到了同样的问题,但是在Ubuntu上,运行的是什么帮助:

env | grep proxy

其中显示了一些类似这样的活跃代理:

https_proxy=127.0.0.1:8888
http_proxy=127.0.0.1:8888

在我用unset命令删除了它们之后:

unset https_proxy
unset http_proxy

我可以正常运行bundle install

答案 9 :(得分:0)

这个错误对我来说很难。我整天都无法解决它,但最后我关闭了wifi路由器,等了1分钟再将其打开。然后错误已修复,希望对您有所帮助。

答案 10 :(得分:0)

这只是网络问题。

以下几点可以帮助您解决这个问题-:

  1. 忘记网络并重新连接。
  2. 如果您连接了移动热点,请打开手机的飞行模式,然后再次关闭它

答案 11 :(得分:0)

有人可能会觉得这很有用:我在构建 docker 映像时收到此错误消息,结果我在 /etc/docker/daemon.json 中有一些自定义 dns 设置

答案 12 :(得分:-1)

这是一个连接问题。我通过hideMe VPN解决了这个问题。它用于绕过被阻止的网站或仅针对特定用户的服务器