Ruby on rails 捆绑安装不起作用

Ruby on rails 捆绑安装不起作用,ruby-on-rails,ruby,bundle,gemfile,Ruby On Rails,Ruby,Bundle,Gemfile,我正在Windows上开发RubyonRails 我们的本地网络出了问题,无法访问,好像被阻止了什么 但我可以通过网络访问它 以下是捆绑安装的结果: $bundle安装 从中获取源索引 由于错误(2/4),正在重试获取程序:Bundler::HTTPError无法从中获取规范 由于错误(3/4),正在重试获取程序:Bundler::HTTPError无法从中获取规范 由于错误(4/4),正在重试获取程序:Bundler::HTTPError无法从中获取规范 无法从中获取规格 是否有其他方法通过b

我正在Windows上开发RubyonRails

我们的本地网络出了问题,无法访问,好像被阻止了什么

但我可以通过网络访问它

以下是捆绑安装的结果:

$bundle安装

从中获取源索引

由于错误(2/4),正在重试获取程序:Bundler::HTTPError无法从中获取规范

由于错误(3/4),正在重试获取程序:Bundler::HTTPError无法从中获取规范

由于错误(4/4),正在重试获取程序:Bundler::HTTPError无法从中获取规范

无法从中获取规格


是否有其他方法通过
bundle install
安装gems?

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

如果效果很好,可以这样尝试:

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

  • 然后运行
    gem更新--system

  • 然后在文件中尝试更改第一行
    源代码
    'https://rubygems.org“
    http://
    (不带
    s


除非您的连接有问题,否则这应该可以解决捆绑安装的问题。这是一个连接问题。我通过hideMe VPN解决了它。它用于绕过被阻止的网站或仅针对特定用户关闭的服务器

我也遇到了同样的问题,在运行
捆绑安装之前关闭rails服务器时,它碰巧起作用
这是一个连接问题

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


现在一切似乎都很好

在第一行的GEM文件中,源应该是http://而不是https://

改变

sourçehttps://www.rubygems.org
进入

源代码http://www.rubygems.org


然后,您可以成功运行
bundle install

打开GEM文件并更改此文件的第一行

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

source 'http://www.rubygems.org'
从“
https
”中删除“
s
”。

有时, 您的DNS导致此问题

您可以将DNS更改为
1.1.1.1
8.8.8

mac的使用说明
  • 转到首选项面板
  • 点击网络面板
  • 单击“高级”按钮
  • 转到DNS选项卡
  • 添加DNS服务器(使用“+”按钮)
  • 输入
    1.1.1.1
    8.8.8.8
  • 单击以确定
  • 然后单击以应用
但您可以按照以下步骤操作:

windows的说明

在rails应用程序中运行
bundle
时,我遇到了相同的错误。我通过运行以下命令来解决问题:

$ bin/bundle

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

我也遇到了同样的问题,但在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

我可以正常运行捆绑安装。

这个错误对我来说非常困难。我有一天没能解决这个问题,但最后我关掉了我的wifi路由器,等了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
    

    注意:将sudo用于
    权限被拒绝问题。

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

    中有一些自定义dns设置,这似乎是您的网络问题,而不是
    rubygems.org
    请告诉我们您是否可以访问其他网站在没有任何代理的情况下自然访问这里()以确保问题是localIt的连接问题。我通过hideMe VPN解决了它。它用于绕过被阻止的网站,或仅针对特定用户关闭服务器。@soorapadman这不是一个只有链接的答案。请仔细阅读。ACHYUT KADAM建议更改行
    source'https://www.rubygems.org“
    @CaptainMan我很抱歉。请不要在多个问题上添加相同的答案。回答最好的一个,并将其余的标记为重复项。看见