我试图使用gem install mygem
安装一个gem或者使用gem update --system
更新RubyGems,但是出现了以下错误:
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
有人有解决这个问题的想法吗?
sudo chown -R $USER /Library/Ruby/Gems/
sudo gem update --system
sudo gem install (gemfile)
sudo
没有权限。哈哈 - DawnSongbrew install rbenv ruby-build
sudo gem update --system
add exports to .bashrc
:
export RBENV_ROOT="$(brew --prefix rbenv)"
export GEM_HOME="$(brew --prefix)/opt/gems"
export GEM_PATH="$(brew --prefix)/opt/gems"
And finally add this to your ~/.gemrc
:
gem: -n/usr/local/bin
gem update --system
brew install rbenv ruby-build
,然后在我的目录后面出现了一个 system
?有什么想法是什么导致了这个问题,以及如何去掉那个 system
? - 7537247更年长更有经验
不要完全按照我在这里说的做,只要知道在使用sudo
时要小心。你可能想要使用类似rbenv
的工具来隔离你正在进行的任何工作。
我不知道你是否喜欢命令行,但是这将使您在任何项目上使用任何安装软件包到系统中的工具时轻松愉快。
据我所知,chown
代表更改所有权。
我寻找这个答案的原因是因为今天gem install
向我抛出了这个错误:
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions into the /var/lib/gems/1.9.1 directory.
chown
的绝佳机会。你可以看到Ruby已经给了我们需要访问的目录,而且似乎它是一个经常使用的目录。chown
比我现在展示的更加强大,并且为你提供了比较灵活的权限。有关更多信息,请参考底部的源代码。breadly@breadly-desktop:~\Desktop
当前用户只是@
之前的名称。我们从错误信息中知道目录,但你有两个选择。你可以使用../gems/1.9.1
将权限限制在当前版本上,或者使用../gems
为所有版本的宝石授予写入权限。
实际更改所有权的命令如下。
chown -R $(whoami) /absolute/path/to/directory
-R
被称为标志,通常用于告诉命令递归地执行操作,也就是对目录中包含的所有内容以及包含在其中的目录中的所有内容执行命令,直到没有其他内容为止。
我需要执行 rbenv rehash
命令以将其指向本地的Gem库。
看起来你的Gem管理器指向的是系统库,所以不要去处理权限问题,而是执行相当于 "rehash" 的命令来让管理器将事情指向本地。
我已经格式化了我的Mac,很多人提供的解决方案对我都无效。最终对我有用的是按照正确顺序执行以下命令:
安装Homebrew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装Ruby:
brew install ruby
安装Compass:
sudo gem install compass
sudo
来安装gem。使用sudo
会将其安装到系统拥有的Ruby中,而不是你自己拥有的Ruby中。在编程时使用沙盒化的Ruby更容易管理和使用,因为你可以创建多个不同的实例并尝试不同的事情,然后在完成时销毁它们。 - the Tin Man通过brew install rbenv
来安装rbenv;
然后将eval "$(rbenv init -)"
放在~/.bash_profile(或MacOS的~/.zshrc)的末尾;
打开一个新的终端并运行gem install ***
即可!
brew reinstall rbenv
~ / .gem / ruby / 2.3.0 / gems / colorls-1.1.1
❯ eval "$(rbenv init -)"~ / .gem / ruby / 2.3.0 / gems / colorls-1.1.1
❯ gem update
正在更新已安装的gem
正在更新CFPropertyList
错误:执行gem时出错...(Gem :: FilePermissionError)
您没有写入/Library/Ruby/Gems/2.3.0目录的权限。`` - Max Coplan解决问题的步骤:
第一步:使用 Homebrew 检查并安装 CocoaPods
brew install cocoapods
步骤2:这是最重要的,解决所有问题,安装带有稳定Ruby版本的rvm软件包,否则您将访问System文件夹中没有权限的Ruby版本。
\curl -sSL https://get.rvm.io | bash -s stable --ruby
步骤三:将rvm命令路径添加到.zshrc文件中,以便全局访问
export PATH="$PATH:$HOME/.rvm/scripts/rvm"
步骤4:检查rvm在全局命令行中是否正常运行
rvm --version
sudo gem install -n /usr/local/bin cocoapods
步骤6:现在您可以使用以下命令检查Pod
pod install
检查您的Ruby版本是否正确。如果不正确,请更改。
以下方法适用于我:
$ rbenv global 1.9.3-p547
$ gem update --system
update
> chown
。谢谢!我还需要运行brew install ruby
。 - Jose Llausas我的工作要求:
sudo gem uninstall cocoapods
sudo gem install cocoapods
sudo
是新手喜欢的命令,因为它使得轻易地做错事情成为可能,而要学会在使用时适当地保持警惕则需要多年时间。 - the Tin Man
sudo
是一个命令,用于以超级管理员权限运行该命令后面的操作。chown
命令用于修改文件或目录的拥有者和所属组。-R
表示递归地修改该目录下所有文件和子目录的拥有者。$USER
是一个环境变量,表示当前用户的用户名。 - vaskort