53

我从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 应用程序中删除 bundler(我不介意这样做......)

4

11 回答 11

76

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

makesudo默认保留环境变量:

https://memset.wordpress.com/2010/10/14/bash-http_proxy-from-a-user-environment-to-sudo-one/

视窗

正如下面的答案所指出的,您可以SET改用

SET HTTP_PROXY=http://user:password@host:port
SET HTTPS_PROXY=%HTTP_PROXY%
于 2010-12-21T06:03:06.190 回答
15

我发现设置 HTTP_PROXY(除了 http_proxy)也产生了积极的影响,即它对我有用。因此,假设您已http_proxy正确设置环境变量,请尝试(如果您使用的是 bash)

export HTTP_PROXY=$http_proxy

然后还使用-Esudo 选项(以保留环境变量),所以

sudo -E bundle install

贵族

于 2011-08-15T09:02:26.487 回答
5

如果您不想在系统中设置全局变量,您可以编辑 ~/.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
于 2012-09-03T09:12:41.347 回答
5

要在 win XP/7 上获得代理后面的捆绑程序,我需要执行以下操作:

我在环境变量中添加了 http_proxy

  • 我的电脑
  • 高级系统设置
  • 高级选项卡环境
  • 变量
  • 新的
  • 变量名 = http_proxy
  • 变量值 = MY_PROXY
  • 点击确定

将 MY_PROXY 更改为您的任何内容。

这适用于捆绑器。.gemrc 代理设置仅适用于 gem。

谢谢杰米

于 2012-09-28T12:54:00.030 回答
3

您可以使用 gem install 在本地下载所需的 gem,然后进行捆绑安装。不完全整洁,我知道,但它确实有效。

于 2010-10-21T10:49:30.543 回答
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
于 2015-08-25T11:34:55.880 回答
1

Windows 操作系统,在执行前运行以下命令bundle install

SET http_proxy=http://user:password@host:port
于 2015-06-14T07:14:41.567 回答
0

确保您的操作系统默认 http_proxy 已设置。如果您使用的是 Linux,请尝试以下命令以了解它指向的代理。

echo $http_proxy

在我的 Ubuntu 操作系统中,我将 http_proxy 环境变量设置为 ~/.bashrc 中的代理服务器

于 2010-10-15T04:57:41.760 回答
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/

于 2015-08-26T13:26:40.227 回答
0

我正在运行 Ubuntu。$http_proxy 变量已设置,但它不适用于几个项目。其中一件是宝石。

如果您将以下内容放入您的 ~/.gemrc 中,它将起作用。

http_proxy:代理-url:端口

将 proxy-url:port 替换为您的代理地址和端口。添加后,我运行“捆绑安装”,一切都按预期运行。

于 2016-09-14T20:44:14.873 回答
0

要让命令bundle install在 Windows 上使用代理,请执行以下操作:

  1. 编辑文件.gemrc。打开 windows 命令行并输入:notepad %userprofile%\.gemrc.
  2. .gemrc 文件在记事本中打开。在新行上键入http_proxy: http://username:passwordEncodedWithUrlencode@proxyaddress:proxyport。密码应使用 urlencode 进行编码。
  3. 关闭文件 .gemrc 并保存。
于 2017-11-07T13:45:51.033 回答