我正在使用 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
版本的有用信息你正在运行,例如 rubygems 版本、相应的 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/