2

我正在使用 Ubuntu 12.10,我正在尝试使用 rbenv 和 bundler 启动并运行我的项目。

我已经从 apt 存储库成功安装了 rbenv,并使用 ruby​​-build 安装了所需的 ruby​​ 版本。

当我运行时,我得到了我认为 apt 存储库安装附带which gem的全局变量。/usr/bin/gem但是,当我运行 rbenv which gem 时,我得到了正确的本地 gem/home/kasuko/.rbenv/versions/1.9.2-p290/bin/gem

但是,当我运行时,gem install bundler我收到“权限被拒绝 - /var/lib/gems”的权限错误,这让我相信它正在使用全局 gem。

所以当我运行/home/kasuko/.rbenv/versions/1.9.2-p290/bin/gem install bundler它成功安装捆绑器

我确实有 rbenv init 行,~/.zshrc.local (which is sourced in my ~/.zshrc)并且我得到了更新的路径 "/home/kasuko/.rbenv/shims:/home/kasuko/.bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games",所以我很确定它安装正确。

那么为什么不使用我的 rbenv 垫片呢?

谢谢霞子

4

1 回答 1

1

如果您不确定哪个gem正在执行,请尝试gem env哪个会显示有关您正在运行的版本的有用信息gem,例如 ruby​​gems 版本、相应的 ruby​​ 可执行文件、gem 路径和其他好东西。

您的 PATH 似乎是正确的。尝试运行hash -r以清除 shell 的可执行路径缓存以防万一。

完成此操作后,which gem应该给您/home/kasuko/.rbenv/shims/gem,这表明它推迟到 rbenv 来确定要运行的实际可执行文件。

然后您可能需要运行rbenv rehash. 每次安装带有可执行文件(如 bundler、rake 等)的新 gem 时,都应该运行它。它将更新所有垫片以指向正确的可执行文件。

于 2013-01-15T23:05:15.110 回答