繁体   English   中英

如何检查是否安装了gem?

[英]How to check if a gem is installed?

我为 Sinatra 项目安装了 data_mapper。 奇怪,为什么当我执行gem install brew ,我可以$ which brew并获取其位置的路径而不能用于 data_mapper? 这适用于某些宝石,不适用于其他宝石。

如何验证 gem 是否正确安装? 检查版本会确保 gem 被正确下载吗?

通用解决方案

要获取已安装的 gem 的完整列表:

gem list

要测试特定的 gem,您可以将-i与正则表达式一起使用:

gem list -i "^gem_name$"

(在此技术的评论中归功于 Timo。)

OP 的特殊解决方案

如果找不到data_mapper,则可能是gem名称与您期望的不同。

此外,如果您只是在执行which brew来查找 brew,那么您不会找到名为 brew 的 gem,而是会找到 brew 可执行文件的位置。 试试gem which brew代替。

编辑:

如果您通过执行which data_mapper来查找which data_mapper ,您可能找不到它。 which是一个用于查找 unix 可执行文件的 unix 程序,而 data_mapper 可能没有。

由于您的目标是验证 gem 是否安装了正确的版本,因此请使用gem list 您可以使用gem list data_mapper来限制特定的 gem。

要验证它是否已安装并正常工作,您必须尝试require gem,然后在您的代码中使用它。

如果您想在脚本中使用检查,这会提供更好的输出(真或假)和适当的退出代码:

gem list -i <gem_name>

或者添加版本选项:

gem list -i <gem_name> -v version

如果您在项目中使用bundle ,则使用以下命令检查项目中您的 gem 是否完全匹配。

bundle info ^data_mapper$

对于脚本使用, gem query可能更好:

gem query --silent --installed --exact rubygems --version 2.0.0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM