从 gemspec 文件安装依赖项

问题描述 投票:0回答:1

我希望处理现有的 gem,我已经从 git 存储库中签出了它。我正在使用干净的 Ruby 安装。首先,我想安装 gemspec 文件中指定的依赖项,以便我可以构建和测试 gem。我没有为此使用捆绑器。

目前,我通过读取 gemspec 并调用“gem”来手动安装 gem。我想做的是这样的:

git clone my_gem
cd my_gem
gem magically-install-dependencies my_gem.gemspec

并安装所有运行时和开发依赖项,就像我从 .gem 文件安装它一样。有办法做到这一点吗?

我搜索了

gem
文档,除了
build
之外,似乎没有任何东西可以在 gemfiles 上工作。

ruby rubygems
1个回答
0
投票

Rubygems 本身采用了捆绑器,因此这两种工具之间的区别现在正在缩小。不过,您可以仅使用

gemspec
gem install
文件安装 gem。此命令支持可选的
-g
标志,您可以在其中指定 gem 依赖项 API 文件。 文档关于此标志的说明如下:

RubyGems 可以跨多个安装一组一致的 gem 当 gem 依赖文件时使用

gem install -g
的环境 (存在
gem.deps.rb
Gemfile
Isolate)
。如果没有显式文件 鉴于 RubyGems 尝试在当前目录中查找一个。

RUBYGEMS_GEMDEPS
环境变量设置为gem时 依赖文件 该文件中的 gems 将在启动时激活 时间。将其设置为特定文件名或“-”以获取 RubyGems 通过从以下位置向上自动发现 gem 依赖文件 当前目录。

注意:在多用户系统上启用自动发现可能会导致 从外部目录使用时执行任意代码 控制。

现在,创建此类 gem 依赖项文件的最简单方法是在与 gemspec 文件相同的目录中创建一个简单的

Gemfile
,其中包含以下逐字内容:

source 'https://rubygems.org'
gemspec

此文件指示

gem install -g
(以及
bundle install
)从当前目录获取
gemspec
文件并使用其中指定的依赖项进行安装。

如果需要,您可以使用捆绑器。在这种情况下,如果您始终想安装可用的最新 gem 版本,则无需提交或保留

Gemfile.lock

这样,您就不会严格依赖捆绑器,但仍然可以使用它提供的自动设施。

© www.soinside.com 2019 - 2024. All rights reserved.