今天在用gem安装bundler时,发现怎么安装都不成功,出现
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
权限不够,加上sudo,然而又出现
Fetching: bundler-1.14.3.gem (100%)
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/bundle
WTF!
多方搜索发现原来是升级到Mac OS X EL Capitan后,/usr/bin
升级了权限管理,这里提供两种方法给大家借鉴:
方案一:
$ mkdir -p $HOME/gemInstallPath
$ export GEM_HOME=$HOME/gemInstallPath
$ gem install bundler
[...]
$ export PATH=$PATH:$HOME/gemInstallPath/bin
方案一中主要是将GEM的安装路径进行修改,将GEM的默认安装路径修改成了$HOME/gemInstallPath
这个目录,然后再进行安装,最后将安装路径添加到PATH下,这样可以不用带完整的路径进行运行命令。
方案二:
$ gem install bundler -n ~/gemInstallPath
方案二中使用了gem的自带参数-n
—–即指明安装的路径,如果要使用这种的话,也需要将该路径加入PATH下才可以不用带完整的路径进行运行命令。
个人建议是使用第一种,将GEM的安装路径进行修改。这样不需要每次都用-n
命令进行指定路径。
此方法通用于gem安装其他工具,如cocoapod等