从 rubygems“宝石更新”命令中排除某些宝石

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

我有一个纯粹为了个人使用而维护的 gem,它恰好与 rubygems.org 上托管的旧 gem 有名称冲突。当我运行

gem update
时,会下载 rubygems.org 版本。我想阻止这种情况发生。我知道我可以明确指定
gem update
包含哪些宝石,但是我可以指定要排除哪些宝石吗?

ruby rubygems
2个回答
5
投票

很确定你不能,但是你可以相当轻松地(在unix上)使用

编写解决方案脚本
gem list --local | awk '{print $1}' | grep -v YOUR_GEMNAME | xargs gem update

另外,最近几次查看 Rubygems 源代码给我留下了深刻的印象,添加此功能可能不会很困难。他们可能会接受拉取请求。


0
投票

根据Joshua的回答,要在

bundle update
期间选择性地排除宝石更新,您还可以执行以下操作:

bundle list --name-only | awk '{print $1}' | grep -v YOUR_GEMNAME | grep -v YOUR_OTHER_GEMNAME | xargs -t bundle update

使用附加管道

grep -v YOUR_OTHER_GEMNAME
展示如何根据需要从捆绑包更新中排除多个宝石。

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