我试图使用gem install mygem或使用gem update——system更新RubyGems安装一个gem,它失败了,错误如下:
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
有人知道怎么解决这个问题吗?
我试图使用gem install mygem或使用gem update——system更新RubyGems安装一个gem,它失败了,错误如下:
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
有人知道怎么解决这个问题吗?
当前回答
你没有写/Library/Ruby/Gems/1.8目录的权限。
也就是说,你没有权限在那里写东西。
这是苹果安装的Ruby版本,供他们自己使用。虽然如果您知道自己在做什么,可以对其进行一些小的修改,因为您不确定权限问题,但我认为继续这样做并不是个好主意。
相反,我强烈建议您考虑使用rbenv或RVM来管理一个单独的Ruby,将其安装到您的主目录中的沙箱中,这样您就可以修改/折叠/主轴/更改,而不必担心会弄乱系统Ruby。
在这两者之间,我使用rbenv,尽管我过去经常使用RVM。rbenv采用了一种更加“不干涉”的方法来管理Ruby安装。RVM有很多特性并且非常强大,但是,结果是更具有侵入性。无论哪种情况,在开始安装之前,都要多阅读几次安装文档。
其他回答
您可以更改GEM_HOME。您还在您的主目录下有一个gem文件夹来检查它的使用
$ gem env
结果如下。不相关的部分省略。
...
- GEM PATHS:
- /Users/xxx/.gem/ruby/2.6.0
- /Library/Ruby/Gems/2.6.0
- /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0
...
你可以使用你的/Users/xxx/.gem/ruby/2.6.0文件夹。
vim ~/.bash_profile
添加以下行
export GEM_HOME=~/.gem/ruby/2.6.0/
之后你就可以使用了
source ~/.bash_profile
sudo gem update --system
sudo gem install (gemfile)
有两种路由:使用rbenv或RVM。下面是这两种食物的食谱。在此之前,您可能希望关闭gem本地文档的安装。
echo "gem: --no-ri --no-rdoc" >> ~/.gemrc
然后:
安装rbenv
安装ruby-build
运行:
rbenv install 2.1.2 (or whatever version you prefer)
rbenv global 2.1.2
gem update --system
这将在本地目录中安装gem系统的最新版本。这意味着您不会干扰系统配置。如果您正在问这个问题,那么您不应该破坏系统安全性,并且您将花费更长的时间来了解可能遇到的问题,而不仅仅是找到一种简单的方法来避免您开始时遇到的问题。了解更多关于操作系统和编程的知识后,再学习InfoSec。
使用'RVM'替代:
rvm install 2.1.2
rvm use 2.1.2
gem update --system
这有同样的结果,您最终得到的是一个本地Ruby和Gem系统,它不会影响系统版本。不需要Homebrew,也不需要覆盖系统库等等。
安装gem或更新RubyGems失败,出现权限错误,然后输入此命令
sudo gem install cocoapods
在MacOS Mojave上成功测试:
卸载所有旧的ruby版本(假设你有2.00和2.3.0): $ RVM卸载2.0.0 $ RVM卸载2.3.0 安装全新的ruby版本: 安装ruby 设置默认别名为您的版本: $ RVM别名创建默认ruby 重新启动您的系统,因为这是您的计算机加载最新安装的新ruby版本的最安全的方式。
完成以上步骤后,您可以成功地运行任何gem命令。