我从 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 = my proxy 添加到〜/ .gemrc。这些设置允许我的gem命令工作,我希望他们会转换为bundler,但没有这样的运气。
思考sudo可能不会继承我的所有环境,我也将这些设置添加到我的root用户,但是nada。
此时,bundler阻止我部署我的应用程序,我发现很少有其他人遇到这个问题。如果没有人有答案,我将被迫从我的Rails应用程序中删除捆绑器(我不介意做...)
答案 0 :(得分:70)
OSX& Linux
export http_proxy=http://user:password@host:port
export HTTP_PROXY=$http_proxy
如果正在使用HTTPS,请将其设置为
export https_proxy=http://user:password@host:port
export HTTPS_PROXY=$https_proxy
如果您使用sudo
,默认情况下sudo
不会保留http代理变量。使用-E
标志来保留它
$ sudo -E bundle install
默认情况下使sudo
保留环境变量:
https://memset.wordpress.com/2010/10/14/bash-http_proxy-from-a-user-environment-to-sudo-one/
Windows
如下面的答案所示,您可以使用SET
代替
SET HTTP_PROXY=http://user:password@host:port
SET HTTPS_PROXY=%HTTP_PROXY%
答案 1 :(得分:15)
我发现设置HTTP_PROXY(除了http_proxy之外)也产生了积极的影响,即它对我有用。因此,假设您已将http_proxy
环境变量设置为正确,请尝试(如果您使用的是bash)
export HTTP_PROXY=$http_proxy
然后还使用-E
选项来sudo(保存环境变量),所以
sudo -E bundle install
首领
答案 2 :(得分:5)
要在win XP / 7上获得代理服务器,我需要执行以下操作:
我将http_proxy添加到Environment Variables
将MY_PROXY更改为您的任何内容。
这适用于捆绑商。 .gemrc代理设置仅适用于宝石。
感谢 杰米
答案 3 :(得分:4)
如果您不想在系统中设置全局变量,可以编辑〜/ .gemrc并将其写为
---
:benchmark: false
:verbose: true
:sources:
- http://rubygems.org/
- http://gems.rubyforge.org
:backtrace: false
:bulk_threshold: 1000
:update_sources: true
gem: --http-proxy=http://USERNAME:PASSWORD@ADDRESS:PORT
答案 4 :(得分:3)
您可以使用gem install在本地下载所需的gem,然后捆绑安装。我知道,不完全是整洁的,但确实有效。
答案 5 :(得分:3)
使用批处理文件可能更灵活,更安全:
SET /P login="Enter proxy login: "
SET /P password="Enter proxy password: "
SET HTTP_PROXY=http://%login%:%password%@proxy.com:8080
SET HTTPS_PROXY=%HTTP_PROXY%
CLS
bundle install
答案 6 :(得分:1)
Windows操作系统,在执行bundle install
SET http_proxy=http://user:password@host:port
答案 7 :(得分:0)
确保已经设置了操作系统默认的http_proxy。如果您正在使用Linux,请尝试以下命令以了解它指向的代理。
echo $http_proxy
在我的Ubuntu操作系统中,我将http_proxy环境变量设置为〜/ .bashrc中的代理服务器
答案 8 :(得分:0)
$ export http_proxy="http://username:password@host:port"
$ export ftp_proxy="http://username:password@host:port"
$ sudo visudo
在文件中添加以下行:
Defaults env_keep = "http_proxy ftp_proxy"
在这一行之上:
Defaults env_reset
然后以sudo运行你的命令它将起作用。
参考:https://memset.wordpress.com/2010/10/14/bash-http_proxy-from-a-user-environment-to-sudo-one/
答案 9 :(得分:0)
我正在运行Ubuntu。 $ http_proxy变量已设置,但它不适用于几个项目。其中一个是宝石。
如果你在〜/ .gemrc中放入以下内容,它将会起作用。
http_proxy:proxy-url:port
将proxy-url:port替换为您的代理地址和端口。在我添加之后,我运行了“bundle install”,一切都按预期运行。
答案 10 :(得分:0)
要让命令bundle install
在Windows上使用代理,请执行以下操作:
.gemrc
。打开Windows命令行并键入:notepad %userprofile%\.gemrc
。http_proxy:
http://username:passwordEncodedWithUrlencode@proxyaddress:proxyport
上输入。密码应使用urlencode进行编码。