ruby 下载所有gems依赖项

piztneat  于 2023-03-22  发布在  Ruby
关注(0)|答案(3)|浏览(151)

我想通过下载任何所需的文件并将它们带到另一台没有互联网连接的机器上来安装compass。我已经下载了compass的源代码包,当我在没有连接的机器上运行gem时,它会抱怨缺少依赖项。有什么解决方案吗?

guz6ccqo

guz6ccqo1#

这正是我遇到的问题。
在搜索了一段时间后,我发现了一个使用Bundler https://bundler.io/的解决方案
获取具有依赖项的Gem:

  • 创建一个新的文件夹,文件名为Gemfile
  • 将一个源代码和您希望拥有依赖关系的Gem写入文件
  • 示例:

来源“http://rubygems.org“
gem 'rails','3.2.1'

  • 在此文件夹中打开命令行并执行:bundle install
  • 这应该下载并安装所有依赖项
  • 如果你想看的话,执行命令bundle list
  • 执行命令bundle package
  • 这将创建目录结构vendor/cache
  • 该高速缓存目录中现在包含了gem所需的所有依赖项

在没有互联网连接的机器上安装Gem:

  • 该高速缓存文件夹复制到计算机
  • 该高速缓存文件夹中打开一个命令行,执行gem install --local Gemname.gem
  • 示例:

gem install --local rails-3.2.1.gem

bq3bfh9z

bq3bfh9z2#

是的

export GEM_HOME=.
export GEM_PATH=.
gem install --no-ri --no-rdoc --install-dir . <gem>
p3rjfoxz

p3rjfoxz3#

嗯。这有点坚韧。gem dependency将显示一个gem的依赖关系,但它不会一直显示到树的下一层。

➔ gem dependency compass
Gem compass-0.10.5
  haml (>= 3.0.4, runtime)

Gem compass-0.10.6
  haml (>= 3.0.4, runtime)

➔ gem dependency haml   
Gem haml-3.0.21
  maruku (>= 0.5.9, development)
  yard (>= 0.5.3, development)

Gem haml-3.0.22
  maruku (>= 0.5.9, development)
  yard (>= 0.5.3, development)

Gem haml-3.0.23
  maruku (>= 0.5.9, development)
  yard (>= 0.5.3, development)

Gem haml-3.0.24
  maruku (>= 0.5.9, development)
  yard (>= 0.5.3, development)

“development”意味着只有当你开发gem本身时才需要它。“runtime”意味着你需要它来使用它。
所以在这个例子中,唯一的依赖是haml。如果它是一个更复杂的gem,我不知道一个好的方法来生成整个树。

相关问题