捆绑安装不起作用

Bundle install is not working

我正在 Windows Rails 开发 Ruby。

我们的本地网络出了点问题,无法访问 https://www.rubygems.org,好像它被阻止了或什么的。

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

下面是bundle install的结果:

$ bundle install

Fetching source index from https://rubygems.org/

Retrying fetcher due to error (2/4): Bundler::HTTPError Could not fetch specs from https://rubygems.org/

Retrying fetcher due to error (3/4): Bundler::HTTPError Could not fetch specs from https://rubygems.org/

Retrying fetcher due to error (4/4): Bundler::HTTPError Could not fetch specs from https://rubygems.org/

Could not fetch specs from https://rubygems.org/

还有其他方法可以通过bundle install安装gem吗?

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

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

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

  • 然后运行gem update --system

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

除非您的连接有问题,否则这应该可以解决 bundle install 的问题。

这是一个连接 issue.I 通过 hideMe VPN 解决了​​它。它用于绕过被阻止的网站或仅针对特定用户关闭服务器

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

之前关闭 rails 服务器时,它碰巧起作用了

这是一个连接问题。

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

现在似乎一切正常。

在您的 Gemfile 中,第一行的源应该是 http:// 而不是 https://

改变

sourçe  https://www.rubygems.org变成

source  http://www.rubygems.org

那么就可以运行bundle install成功

打开 Gemfile 并更改第一行

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

至此

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

从“https”中删除“s”。

有时, 您的 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

在 rails 应用程序中 运行 bundle 时,我遇到了同样的错误。我通过 运行:

解决了这个问题
$ bin/bundle

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

我遇到了同样的问题,但在 Ubuntu 上,运行ning:

帮助了我
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 正常。

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

这只是网络问题。

以下内容可以帮助您解决这个问题-:

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

当 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

注意:使用 sudo 解决 permission denied 问题。

有人可能会发现这很有用:我在构建 docker 图像时收到此错误消息,结果我在 /etc/docker/daemon.json

中有一些自定义 dns 设置

我通过禁用系统中的 IPv6 连接解决了这个问题 OS。它强制 OS 只使用 IPv4 然后它就可以工作了。

如果您的活动网络是 WiFi,请输入以下命令:

networksetup -setv6off Wi-Fi

如果您在以太网上:

networksetup -setv6off Ethernet

您可以结合使用这两个命令来同时禁用 WiFi 和以太网上的 IPv6:

networksetup -setv6off Ethernet && networksetup -setv6off Wi-Fi

要重新启用IPv6,需要将setv6off替换为setv6automatic(mac中的默认状态OS),例如:

networksetup -setv6automatic Wi-Fi && networksetup -setv6automatic Ethernet

参考:https://vladtalks.tech/vpn/how-to-disable-ipv6-on-mac