我为Sinatra项目安装了data_mapper.奇怪的是,为什么当我做gem install brew,我可以$ which brew,并获得其位置的路径,而不能为数据映射器?这适用于某些Ruby ,而不适用于其他Ruby .

如何验证gem是否正确安装?判断版本是否能确保正确下载gem?

推荐答案

General solution

要获取已安装gem的完整列表,请执行以下操作:

gem list

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

gem list -i "^gem_name$"

(这项技术的 comments 要归功于蒂莫.)

Particular solution for OP

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

此外,如果你只是用which brew来查找brew,你没有找到名为brew的gem,而是找到了brew可执行文件的位置.试试gem which brew.

EDIT:

如果你想用which data_mapper来寻找数据映射器,你可能找不到.which是一个用于查找unix可执行文件的unix程序,data_mapper可能没有.

因为您的目标是验证gem是否安装了正确的版本,所以请使用gem list.你可以使用gem list data_mapper来限制特定的Ruby .

要验证它是否已安装and working,您必须try 将gem设置为require,然后在代码中使用它.

Ruby相关问答推荐

有没有办法把条件语句写得更干净?

如何保证散列中的对象不完全相同

配置 SubLime Linter 插件以使用 Ruby 1.9 语法

你如何称呼 Ruby 中的 &: 运算符?

Ruby: initialize() vs 类体(class body)?

如何在 Ruby 中合并多个哈希?

使用 Bundler 时,为什么要关心 RVM 的 Gemset 功能?

ruby中字符的整数值?

Ruby:如何判断字符是大写还是小写

确定字符串数组是否包含ruby中的某个子字符串

如何用 Ruby 覆盖 shell 中的打印行?

使用 for each 时识别最后一个循环

在 Rails 中,如何向 String 类添加新方法?

Sinatra 登录?

如何测试数组中的所有项目是否相同?

如何在 Ruby 脚本中运行 Rake 任务?

在 Ruby 中查找内存泄漏的原因

创建一个接受参数散列的 ruby​​ 方法

如何使用 minitest 运行所有测试?

如何在 Capistrano v3 的服务器上运行 shell 命令?