首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法在Mac (El-Capitan)上创建文件夹,权限错误

无法在Mac (El-Capitan)上创建文件夹,权限错误
EN

Stack Overflow用户
提问于 2015-12-18 16:41:04
回答 1查看 1.3K关注 0票数 1

这个简单的错误使我感到困惑:

代码语言:javascript
复制
(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# 

以下是我能想到的所有调试信息:

代码语言:javascript
复制
(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)'错误的情况下失败,我正在尝试调试它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-18 16:53:42

不要将Gems安装为Root

不是的。只是“不”永远不要将宝石安装为根。除了当你必须,真正知道你在做什么,并愿意重新安装操作系统,当你搞砸了。所以别说了。

如何把它做好

始终使用Ruby版本管理器,如rvm里本夫克鲁比。即使在生产机器上,这也会给你带来很大的痛苦。

特别是,El Capitan有一个新的系统完整性保护(SIP)系统,它依赖于应用于重要路径和应用程序的特殊标志。Ruby是其中一个二进制文件:

代码语言:javascript
复制
$ ls -lO /usr/bin/ruby 
-r-xr-xr-x  1 root  wheel  restricted,compressed 42928 Oct 17 19:47 /usr/bin/ruby

虽然我不会发誓,但RubyGems试图修改的文件或目录也可能受到保护。虽然您可以绕过SIP,但这样做是一个非常糟糕的想法,™。相反,您应该使用一个版本管理器(自制软件中包括rbenv和chruby )来安装非系统红宝石和管理宝石。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34360178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档