bundler安裝失敗,Operation not permitted - /usr/bin/***

weixin_33728268發表於2017-02-10

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

相關文章