捆绑安装不起作用
Posted
技术标签:
【中文标题】捆绑安装不起作用【英文标题】:Bundle install is not working 【发布时间】:2016-11-19 11:52:31 【问题描述】:我正在 Windows 上开发 Ruby on Rails。
我们的本地网络出了点问题,无法访问https://www.rubygems.org,似乎被阻止了。
但是我可以通过http://www.proxyfoxy.com访问它。
下面是bundle install
的结果:
$ 捆绑安装
从https://rubygems.org/获取源索引
由于错误重试 fetcher (2/4):Bundler::HTTPError 无法从 https://rubygems.org/ 获取规范
由于错误 (3/4) 重试 fetcher:Bundler::HTTPError 无法从 https://rubygems.org/ 获取规范
由于错误 (4/4) 重试 fetcher:Bundler::HTTPError 无法从 https://rubygems.org/ 获取规范
无法从 https://rubygems.org/ 获取规范
还有其他方法可以通过bundle install
安装gem吗?
【问题讨论】:
似乎是您的网络问题,而不是rubygems.org
让我们知道您是否可以在没有任何代理的情况下以自然方式访问其他网站
访问这里 (isitup.org/rubygems.org) 以确保问题是本地的
【参考方案1】:
我解决了这个问题,在我的系统操作系统中禁用 IPv6 连接。它强制操作系统只使用 IPv4,然后它就可以工作了。
如果您的活动网络是 WiFi,请输入以下命令:
networksetup -setv6off Wi-Fi
如果您在以太网上:
networksetup -setv6off Ethernet
您可以结合这两个命令来同时禁用 WiFi 和以太网上的 IPv6:
networksetup -setv6off Ethernet && networksetup -setv6off Wi-Fi
要重新启用 IPv6,需要将 setv6off 替换为 setv6automatic(macOS 中的默认状态),例如:
networksetup -setv6automatic Wi-Fi && networksetup -setv6automatic Ethernet
参考:https://vladtalks.tech/***/how-to-disable-ipv6-on-mac
【讨论】:
【参考方案2】:有人可能会觉得这很有用:我在构建 docker 映像时收到此错误消息,结果发现我在 /etc/docker/daemon.json
中有一些自定义 dns 设置
【讨论】:
【参考方案3】:当 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。
【讨论】:
请不要对多个问题添加相同的答案。回答最好的一个并将其余的标记为重复。见Is it acceptable to add a duplicate answer to several questions?【参考方案4】:这只是网络问题。
以下事情可以帮助你解决这个问题-:
-
忘记网络并重新连接。
打开手机的飞行模式,如果您连接了移动热点,请再次关闭它
【讨论】:
【参考方案5】:这个错误对我来说非常困难。我一天都无法解决它,但最后我关掉了我的 wifi 路由器,等了 1 分钟再打开它。然后错误已修复,希望对您有所帮助。
【讨论】:
【参考方案6】:我遇到了同样的问题,但在 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
。
【讨论】:
【参考方案7】:在 Rails 应用程序中运行 bundle
时,我遇到了同样的错误。我通过运行来解决问题:
$ bin/bundle
问题是 bundle
是 v1.17.3,而 bin/bundle
是版本 2.0.2。
【讨论】:
【参考方案8】:有时, 您的 DNS 会导致此问题。
您可以将您的 DNS 更改为 1.1.1.1
或 8.8.8.8
mac 使用说明
转到首选项面板 点击网络面板 点击进入高级按钮 转到 DNS 选项卡 添加 DNS 服务器(使用“+”按钮) 输入1.1.1.1
或8.8.8.8
点击确定
然后点击申请
但您可以按照以下步骤操作: http://www.macinstruct.com/node/434
Windows 使用说明
https://www.windowscentral.com/how-change-your-pcs-dns-settings-windows-10
【讨论】:
【参考方案9】:打开 Gemfile 并从中更改第一行
source 'https://www.rubygems.org'
到这里
source 'http://www.rubygems.org'
从“https
”中删除“s
”。
【讨论】:
@soorapadman 这不是仅链接的答案。请仔细阅读。 ACHYUT KADAM 建议改行source 'https://www.rubygems.org'
。
@CaptainMan 我很抱歉。【参考方案10】:
这是一个连接问题。
我通过hideMe *** 解决了这个问题。它用于绕过被阻止的网站或仅针对特定用户关闭服务器。
现在一切似乎都运行良好。
【讨论】:
【参考方案11】:在第一行的 Gemfile 中,源应该是 http:// 而不是 https://
改变
sourçe https://www.rubygems.org
进入
source http://www.rubygems.org
那么你就可以成功运行bundle install
了
【讨论】:
【参考方案12】:我遇到了同样的问题,当我在运行 bundle install
之前关闭 rails 服务器时它碰巧起作用了
【讨论】:
【参考方案13】:这是一个连接问题。我通过 hideMe *** 解决了它。它用于绕过被阻止的网站或仅针对特定用户关闭服务器
【讨论】:
【参考方案14】:正如@Wasif 提到的,首先确保Ruby Gems 站点已启动并且您的网络访问正常。
如果他们工作正常,试试这样:
首先,删除你的Gemfile.lock
文件
然后运行gem update --system
然后在您的 Gemfile 中尝试将第一行 source
'https://rubygems.org'
更改为 http://
(不带 s
)
除非您的连接有问题,否则这应该可以解决 bundle install
的问题。
【讨论】:
这是一个连接问题。我通过 hideMe *** 解决了。它用于绕过被阻止的网站或仅针对特定用户关闭服务器。以上是关于捆绑安装不起作用的主要内容,如果未能解决你的问题,请参考以下文章