我是 RoR 的 nb,我使用了 windows 安装程序,它安装得很好。问题是当 RoR 试图访问http://rubygems.org时,它无法到达那里。
所以我的问题是我可以在哪里更改它获取信息的位置,我可以单独下载这些 gem 并将它们放置到 RoR 获取的目录中吗?
我很感激我这几天在这方面遇到的任何帮助。
我是 RoR 的 nb,我使用了 windows 安装程序,它安装得很好。问题是当 RoR 试图访问http://rubygems.org时,它无法到达那里。
所以我的问题是我可以在哪里更改它获取信息的位置,我可以单独下载这些 gem 并将它们放置到 RoR 获取的目录中吗?
我很感激我这几天在这方面遇到的任何帮助。
您可能在代理后面。尽管您的 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 应用程序,那么这应该可以工作或让您顺利进行。