bundler安装失败,Operation not permitted - /usr/bin/***

今天在用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等

你可能感兴趣的:(bundler安装失败,Operation not permitted - /usr/bin/***)