使用RVM,如何确保宝石和非宝石看到相同版本的ruby?

时间:2011-05-11 01:17:19

标签: ruby rubygems rvm berkeley-db

我正在尝试在Ubuntu上安装bdb作为gem,如下所示,

gem install bdb

我没有使用sudo,因为我正在安装rvm。我系统上的ruby版本是1.9.1,但我用于此安装的版本是1.8.7(我正在安装rbot,你看)。我遇到的问题是:

checking for db_version() in -ldb-4.something... no

我认为这意味着rubygems没有在它正在寻找的地方找到ldb4.something。这是因为我使用sudo安装了libdb-4.something(实际上是7),而我系统的ruby版本与我用于bdb的ruby版本不同?使用rvm,我该如何处理这种情况?也许我做错了,但在我看来,我的问题是并非我所使用的所有东西都是宝石,并且不是宝石的东西就是看到了错误的红宝石版本。

(如果事实证明我的问题完全不相关:我仍然对这个问题感兴趣。我在我的系统上安装了特定版本的ruby的东西是如何在不同版本下使用rvm安装的gems红宝石?)

1 个答案:

答案 0 :(得分:4)

“我使用特定版本的ruby在我的系统上安装的东西如何与在不同版本的ruby下使用RVM安装的宝石一起使用?”

他们没有,这就是重点。 RVM用于管理不同版本的Ruby,以便它们彼此隔离。

这意味着您用于系统的Ruby版本(当您执行sudo gem install将安装到系统时)与当前环境无关(正确设置时)。

当您在RVM环境中时,安装的每个Ruby版本都是一个独立的环境。

我建议的是:

  1. 转到RVM网站并查看。
  2. 在页面的最后,继续阅读有关如何使用gemsets的内容。
  3. 转到您的项目目录
  4. rvm使用1.8.7@your_project_environment
  5. 创建.rvrmc文件,以便您在将来访问此项目时自动在项目中使用此环境,此文件可包含“rvm use 1.8.7@your_project_environment”,这将实现此目的。
  6. 安装所有必需的宝石
  7. 如果您还有其他问题,请随时访问Wayne E. Seguin和其他RVM用户,我们将很乐意为您提供帮助。当然,首先搜索答案的是网站上的文档。