我从sudo bundle install命令获得以下输出:
Fetching source index for `http://rubygems.org/`
Could not reach rubygems repository `http://rubygems.org/`
Could not find gem 'rspec-rails (>= 2.0.0.beta.22, runtime)' in any of the gem sources.
我正确设置了$ http_proxy并且我已经添加了gem:--http-proxy =我的代理到〜/ .gemrc . 这些设置允许我的gem命令工作,我希望他们会转换为bundler,但没有这样的运气 .
思考sudo可能不会继承我的所有环境,我也将这些设置添加到我的root用户,但是nada .
此时,bundler阻止我部署我的应用程序,我发现很少有其他人遇到这个问题 . 如果没有人有答案,我将被迫从我的Rails应用程序(我不介意做...)中破解捆绑器
11 回答
Windows操作系统,在执行
bundle install
之前运行以下命令确保已经设置了操作系统默认的http_proxy . 如果您正在使用Linux,请尝试以下命令以了解它指向的代理 .
在我的Ubuntu操作系统中,我将http_proxy环境变量设置为〜/ .bashrc中的代理服务器
在文件中添加以下行:
在这一行之上:
然后以sudo运行你的命令它将工作 .
参考:https://memset.wordpress.com/2010/10/14/bash-http_proxy-from-a-user-environment-to-sudo-one/
我正在运行Ubuntu . $ http_proxy变量已设置,但它不适用于几个项目 . 其中一个是宝石 .
如果你在〜/ .gemrc中放入以下内容就行了 .
http_proxy:proxy-url:port
将proxy-url:port替换为您的代理地址和端口 . 在我添加之后,我运行了“bundle install”,一切都按预期运行 .
要让命令
bundle install
在Windows上使用代理,请执行以下操作:编辑文件
.gemrc
. 打开Windows命令行并键入:notepad %userprofile%\.gemrc
.文件.gemrc在记事本中打开 . 在新行
http_proxy: http://username:passwordEncodedWithUrlencode@proxyaddress:proxyport
上输入 . 密码应使用urlencode进行编码 .关闭文件.gemrc并保存它 .
OSX & Linux
如果它使用HTTPS,也可以设置它
如果使用
sudo
,则默认情况下sudo
不会保留http代理变量 . 使用-E
标志来保留它使
sudo
默认保留环境变量:https://memset.wordpress.com/2010/10/14/bash-http_proxy-from-a-user-environment-to-sudo-one/
Windows
如下面的答案所指出,您可以使用
SET
代替我发现设置HTTP_PROXY(除了http_proxy)也产生了积极的影响,即它对我有用 . 因此,假设您已将
http_proxy
环境变量设置为正确,请尝试(如果您使用的是bash)然后还使用
-E
选项来sudo(保存环境变量),所以贵族
要在win XP / 7上获得代理服务器,我需要执行以下操作:
我将http_proxy添加到Environment Variables中
我的电脑
高级系统设置
高级选项卡环境
变量
新
变量名= http_proxy
变量值= MY_PROXY
单击“确定”
将MY_PROXY更改为您的任何内容 .
这适用于捆绑商 . .gemrc代理设置仅适用于gem .
谢谢杰米
您可以使用gem install在本地下载所需的gem,然后捆绑安装 . 我知道,不完全是整洁的,但确实有效 .
如果您不想在系统中设置全局变量,可以编辑〜/ .gemrc并像这样编写它
使用批处理文件可能更灵活,更安全: