[英]Unable to create folder on Mac (El-Capitan), permission error
這個簡單的錯誤讓我難過:
(0)root@vpn-client-228# mkdir ruby-2.0.0-p645
mkdir: ruby-2.0.0-p645: Operation not permitted
(1)root@vpn-client-228# pwd
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/include/ruby-2.0.0
(0)root@vpn-client-228#
這是我能想到的所有調試信息:
(0)root@vpn-client-228# dd='/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/include/ruby-2.0.0/ruby-2.0.0-p645'
(0)root@vpn-client-228# while [ "`dirname $dd`" != "/" ]; do dd=`dirname $dd`; ls -ld $dd; done
drwxr-xr-x 5 root wheel 170 Dec 9 10:55 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/include/ruby-2.0.0
drwxr-xr-x 3 root wheel 102 Aug 22 19:06 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/include
drwxr-xr-x 6 root wheel 204 Nov 24 11:19 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr
drwxr-xr-x 7 root wheel 238 Dec 14 09:52 /System/Library/Frameworks/Ruby.framework/Versions/2.0
drwxr-xr-x 4 root wheel 136 Sep 17 07:27 /System/Library/Frameworks/Ruby.framework/Versions
drwxr-xr-x 6 root wheel 204 Dec 9 10:55 /System/Library/Frameworks/Ruby.framework
drwxr-xr-x 135 root wheel 4590 Dec 9 10:55 /System/Library/Frameworks
drwxr-xr-x 79 root wheel 2686 Nov 24 15:40 /System/Library
drwxr-xr-x@ 4 root wheel 136 Dec 14 09:53 /System
(0)root@vpn-client-228#
(0)root@vpn-client-228#
(0)root@vpn-client-228# uname -a
Darwin vpn-client-228.sv2 15.2.0 Darwin Kernel Version 15.2.0: Fri Nov 13 19:56:56 PST 2015; root:xnu-3248.20.55~2/RELEASE_X86_64 x86_64
(0)root@vpn-client-228#
(0)root@vpn-client-228#
(0)root@vpn-client-228# id
uid=0(root) gid=0(wheel) groups=0(wheel),1(daemon),2(kmem),3(sys),4(tty),5(operator),8(procview),9(procmod),12(everyone),20(staff),29(certusers),61(localaccounts),80(admin),701(com.apple.sharepoint.group.1),702(com.apple.sharepoint.group.2),33(_appstore),98(_lpadmin),100(_lpoperator),204(_developer),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh)
(0)root@vpn-client-228#
上下文是我正在嘗試安裝perftools( sudo gem install perftools.rb -v '2.0.0'
)失敗,錯誤為/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:245:in 'mkdir': Operation not permitted - /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/include/ruby-2.0.0/ruby-2.0.0-p645 (Errno::EPERM)'
而我正在嘗試對其進行調試。
不就是不。” 永遠不要以root身份安裝gem。 除了需要的時候,要真正了解自己在做什么,並且願意在搞砸了之后重新安裝操作系統。 所以別這樣。
始終使用rvm , rbenv或chruby之類的Ruby版本管理器。 即使在生產機器上,這也可以節省您很多痛苦。
特別是,El Capitan具有一個新的系統完整性保護(SIP)系統,該系統依賴於應用於重要路徑和應用程序的特殊標志。 Ruby是其中的二進制文件之一:
$ ls -lO /usr/bin/ruby
-r-xr-xr-x 1 root wheel restricted,compressed 42928 Oct 17 19:47 /usr/bin/ruby
雖然我不會發誓,但RubyGems試圖修改的文件或目錄也可能受到了保護。 盡管您可以繞過SIP,但這樣做確實是個壞主意。 相反,您應該使用版本管理器之一( Homebrew中包括rbenv和chruby)來安裝非系統紅寶石和管理gem。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.