如何检查是否安装了宝石?

时间:2014-03-05 23:33:23

标签: ruby gem

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

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

4 个答案:

答案 0 :(得分:42)

一般解决方案

尝试使用gem list获取已安装的宝石列表。

要测试特定的gem,您可以将-i与正则表达式gem list -i "^gem_name$"一起使用。 (在对这项技术的评论中感谢蒂莫。)

OP的特定解决方案

如果找不到data_mapper,可能是宝石名称与您的预期不同。

另外,如果你只是在which brew找到brew,你就找不到名为brew的gem,你找到了brew可执行文件的位置。请改为gem which brew

修改

如果您正在通过which data_mapper查找data_mapper,则可能无法找到它。 which是用于查找unix可执行文件的unix程序,而data_mapper可能没有。

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

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

答案 1 :(得分:35)

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

gem list -i <gem_name>

或者添加版本选项:

gem list -i <gem_name> -v version

答案 2 :(得分:0)

如果您在项目中使用bundle,请使用以下命令检查项目中宝石的精确匹配。

bundle info ^data_mapper$

答案 3 :(得分:0)

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

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