ruby - rbenv 不使用垫片 Ubuntu 12.10

标签 ruby ubuntu rbenv

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

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

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

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

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

我的 ~/.zshrc.local 中确实有 rbenv init 行(它来 self 的 ~/.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 垫片没有被使用?

谢谢 香子

最佳答案

如果您不确定正在执行哪个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 时都应该运行它。它将更新所有垫片以指向正确的可执行文件。

关于ruby - rbenv 不使用垫片 Ubuntu 12.10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14345366/

相关文章:

ruby-on-rails - Rails 导出 CSV 忽略空白

ruby-on-rails - execjs - 找不到 JavaScript 运行时

ruby - Sinatra (Ruby) 中 get 方法的定义

linux - 为什么不同用户的 shell 看起来不同?

macos - 在山狮中安装 gcc

ruby - Mac OS Mojave : image not found … related to openssl.软件包上的Ruby 2.4

ruby - ruby 中的条件链接

python - Pycurl导入错误: SSL Backend Mismatch

linux - 在远程服务器 linux 上复制/移动文件

ruby - 无法在 upstart 调用的 ruby​​ 脚本中导入 readline