我想下载一个宝石,但不想安装该宝石所需的所有宝石。
专门针对 Rails 3 gem。它有很多依赖项,我需要将它安装在目前没有 ruby/rake/rails 软件的封闭服务器上。
任何线索都很有用,因为点击 rubygems.org 很乏味。
好的,让我稍微解释一下。我希望它能发挥作用:
gem 安装 rails --download-only
这将解决我的问题,因为我可以将生成的精华刻录到光盘上并将它们移动到没有互联网访问的服务器上。
答案1
要下载单个 gem,请使用(使用 Loudmouth gem 作为示例):
gem fetch loudmouth
Fetching: loudmouth-0.2.4.gem (100%)
Downloaded loudmouth-0.2.4
要下载你的 Rails 3 应用程序所依赖的所有 gem,请运行:
bundle package
这将下载所有 gem(以及它们的依赖项)并将它们放入 vendor/cache(不安装它们)。
然后,您可以将 vendor/cache 中的所有宝石刻录到 CD 中,并将其物理地带到没有网络访问的其他服务器。
答案2
好吧,我不想回答我自己的问题,但我认为这最有可能是我的问题的解决方案。
- find network enabled machine
- install rails and all needed gems using RubyGems.
- tar/zip /usr/lib[64]/ruby/gem/1.9.1/cache/*.gem
- transport tar file to non-networked computer.
这些 gem 缓存文件的位置非常有用。如果我的联网机器上有许多 gem,并且不想传输所有 gem,我会使用
> bundle list
显示应用程序所需的特定宝石。
-丹尼尔
答案3
我将创建一个本地 RubyGems 服务器,其中包含应用程序所需的所有 gem,包括 Rails 及其依赖项。
基本文档在这里:
这篇博客文章展示了如何设置一个内部服务器,你可以将 Gems 发送到该服务器进行自动索引:
答案4
不幸的是,你无法绕过依赖问题。它们之所以需要是有原因的;如果 Rails 根本无法运行,尝试在不需要依赖项的情况下安装 Rails 会导致很多问题。
您没有明确说明“关闭”是什么意思。如果您指的是“无法安装系统范围的软件”,请查看右心室,该软件可让您创建一个独立的 Ruby 环境。如果服务器没有连接到互联网,您也可以在另一台服务器上设置它并将其转移。查看它,看看它是否对您有帮助。