0

我是 RoR 的 nb,我使用了 windows 安装程序,它安装得很好。问题是当 RoR 试图访问http://rubygems.org时,它无法到达那里。

所以我的问题是我可以在哪里更改它获取信息的位置,我可以单独下载这些 gem 并将它们放置到 RoR 获取的目录中吗?

我很感激我这几天在这方面遇到的任何帮助。

4

1 回答 1

2

您可能在代理后面。尽管您的 Web 浏览器和其他各种应用程序可能已设置为通过代理工作,但 RubyGems 不是。

如果您知道您的 http 代理地址和端口,您可以将其作为命令行参数传递给 Ruby Gems。

尽管我建议将您的代理设置为系统变量,但您可能没有该选项,因为我目前的工作地点也没有该选项。

gem install rails --http-proxy=https://your.proxy.address:portnumber

RubyGems 手册中的相关信息。

编辑:

有一种方法可以手动下载和安装 gem。这可能既麻烦又烦人,但这是可能的。

转到RubyGems.org并使用搜索功能找到您需要的 gem。对于此示例,我将使用设计。在设计页面上一个下载链接。下载 gem 并cd进入该位置。如果将其保存到C:\manual_gems,则cd C:\manual_gems

Devise 的当前版本是 2.1.2。因此,一旦您进入该文件夹,您将 gem 保存到:

gem install devise-2.1.2.gem

麻烦的部分来了。您会注意到一个错误,指出它需要依赖项。RubyGems 页面还提供了依赖项列表。在最终能够安装 gem 之前,您必须对每个依赖项都遵循相同的过程。

例如,Devise 需要 Warden,而 Warden 又需要 ActionPack、ActiveSupport、Rack-SSL、Rake、RDoc 和 Thor(如果您有 Rails,您可能已经安装了它们)。这是 RubyGems 和 Bundler 为您处理的递归之旅。

一切就绪后,您可以在 Rails 应用程序中修改 GemFile 以指向本地 gem。我尚未对其进行测试,但在关于该主题的类似 SO 问题上有一个可接受的答案,它提供了以下解决方案:

gem 'devise', path: 'path/to/devise'

同样,很麻烦,但是如果您真的想在您所暗示的那样有限的环境中启动并运行 Rails 应用程序,那么这应该可以工作或让您顺利进行。

于 2012-08-27T19:47:51.347 回答