`pip install -r requirements.txt` 的 gem 等价命令是什么?

6
2个回答

7

在 Ruby 中没有直接的比较,但我们有非常类似的东西。看看 bundler gem,了解如何将所需的 gem 列表编写到 Gemfile 中并自动生成包含当前安装版本的 Gemfile.lock。


问题是要有与pip freeze等价的内容... 在Python生态系统的翻译中:如何为当前gem环境(所有在当前“gem env”中的包)创建Gemfile(或Gemfile.lock)。我没有找到使用bundler将“gem list”转换为可用于“gem install ...”的内容的方法。 - Juraj Michalak

2
我的解决方案是:
serverA: $ gem list | tr -s ',[ ()]' ' ' | awk '$2 ~ /[0-9]\.[0-9]/ {print $1" -v "$2; next} $3 ~ /[0-9]\.[0-9]/ {print $1" -v "$3}' > reqs.txt

serverB: $ cat reqs.txt | while read  l; do echo "=== Installing 'gem install $l' ===";  gem install $l --conservative || exit 1; done

我的情况是这样的。在服务器“A”上,我有由第三方开发的Ruby脚本,具有许多依赖项,并且没有Gemfile。我必须在服务器“B”上使用这些相同的Ruby脚本。如何轻松地将带有所有可能所需的gem的Ruby环境“复制”到服务器“B”(相同版本)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接