我试图使用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.
有人知道怎么解决这个问题吗?
当前回答
您确实应该使用Ruby版本管理器。
在执行gem更新命令时,正确使用它可以防止并解决权限问题。
我推荐rbenv。
但是,即使使用Ruby版本管理器,仍然可能会得到相同的错误消息。
如果这样做,并且使用的是rbenv,只需验证~/。rbenv/shims目录在系统Ruby路径之前。
$ echo $PATH将显示加载路径的顺序。
如果您发现shims目录位于系统Ruby bin目录之后,则编辑~/。export PATH=$HOME/.rbenv/shims:$PATH . bashrc文件,并将其作为最后一个导出PATH命令
$ ruby -v显示你正在使用的ruby版本
这表明我目前使用的是Ruby的系统版本(通常不太好)
$ ruby -v
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]
$ rbenv global 1.9.3-p448将我切换到更新的预安装版本(参见下面的参考资料)。
这表明我正在使用一个更新版本的Ruby(这可能不会导致Gem::FilePermissionError)
$ ruby -v
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin12.4.0]
通常不需要在gem命令前加上sudo。如果您觉得需要这样做,则可能是配置错误。
关于rbenv的详细信息请参见:
https://github.com/sstephenson/rbenv http://robots.thoughtbot.com/post/47273164981/using-rbenv-to-manage-rubies-and-gems
其他回答
在MacOS Mojave上成功测试:
卸载所有旧的ruby版本(假设你有2.00和2.3.0): $ RVM卸载2.0.0 $ RVM卸载2.3.0 安装全新的ruby版本: 安装ruby 设置默认别名为您的版本: $ RVM别名创建默认ruby 重新启动您的系统,因为这是您的计算机加载最新安装的新ruby版本的最安全的方式。
完成以上步骤后,您可以成功地运行任何gem命令。
错误:当执行gem…(Gem:: FilePermissionError) 你没有写/Library/Ruby/Gems/2.6.0的权限
(2022方案) 这里已经添加了问题的详细原因
问题概述->该问题与ruby访问有关,M1 MAC自带ruby。我们没有被允许为我们的目的使用它。相反,我们安装了一个单独的ruby实例,并将其用于我们的目的。
下面的步骤帮助我解决了这个问题,希望这可能会有所帮助
我们不需要用rvn或chruby安装ruby。 我的解决方案使用自制程序来安装ruby。
打开终端 使用自制程序安装ruby
安装ruby
[用于重新安装]brew重装ruby
使用下面的命令检查ruby的路径 这红宝石 它应该安装在下面的路径 /usr/bin/ruby 将ruby路径更改为用户路径
检查您的系统使用了哪个shell
echo $0
-zsh
对于zshrc
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >>~/.zshrc . bin:$PATH
在bash
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >>~/~/.bashrc . bin:$PATH
退出并重新启动终端 用步骤5改变路径后 再次检查ruby的路径(执行步骤3 -请确保路径如下所示)
/usr/local/opt/ruby/bin/ruby
[如果您不退出并启动终端,将显示步骤4路径]
这一步可能并不适用于所有人,如果你安装了正确的Cocoapods版本,可以跳过第10和11步
检查安装的pod的版本
豆荚,版本
使用下面的命令卸载特定版本的Cocoapods
如果安装的版本是1.11.0
卸载cocoapods 1.11.0
安装特定版本的Cocoapods 安装cocoapods 1.11.0 将路径更改为Project目录cd {Project目录的路径} 在项目目录中安装捆绑程序
包安装
执行pod安装
正在安装
我找到了这个无苏多尔宝石的指南:
Brew install rbenv ruby-build Sudo gem update—system 向.bashrc添加导出: export RBENV_ROOT="$(brew -prefix rbenv)" export GEM_HOME="$(brew -prefix)/opt/gems" export GEM_PATH="$(brew -prefix)/opt/gems" 最后将这个添加到~/.gemrc中: 宝石:- n / usr /地方/ bin Gem更新——system
你没有写/Library/Ruby/Gems/1.8目录的权限。
也就是说,你没有权限在那里写东西。
这是苹果安装的Ruby版本,供他们自己使用。虽然如果您知道自己在做什么,可以对其进行一些小的修改,因为您不确定权限问题,但我认为继续这样做并不是个好主意。
相反,我强烈建议您考虑使用rbenv或RVM来管理一个单独的Ruby,将其安装到您的主目录中的沙箱中,这样您就可以修改/折叠/主轴/更改,而不必担心会弄乱系统Ruby。
在这两者之间,我使用rbenv,尽管我过去经常使用RVM。rbenv采用了一种更加“不干涉”的方法来管理Ruby安装。RVM有很多特性并且非常强大,但是,结果是更具有侵入性。无论哪种情况,在开始安装之前,都要多阅读几次安装文档。
这将以一种干净的方式修复MacOS Mojave和Catalina的问题:
brew install ruby
然后将GEM_HOME设置为您的用户目录。终端:
Bash: echo '#安装Ruby Gems到~/ Gems ' >> ~/.bashrc echo 'export GEM_HOME=$HOME/gems' >> ~/.bashrc echo 'export PATH=$HOME/gems/bin:$PATH' >> ~/.bashrc . txt 源~ / . bashrc 如果在Zsh上: echo '#安装Ruby Gems到~/ Gems ' >> ~/.zshrc echo 'export GEM_HOME=$HOME/gems' >> ~/.zshrc echo 'export PATH=$HOME/gems/bin:$PATH' >> ~/.zshrc . txt 源~ / . zshrc