为什么 ruby gem、brew 和 sencha cmd 在 MacOS Sierra 中不工作?

Why ruby gem, brew and sencha cmd not working in MacOS Sierra?

我对 MacOSSierra 发布 版本 10.12 抱有很高的期望,但它确实让我感到沮丧,因为它导致开发环境崩溃.我的大部分项目都崩溃了,这些项目是在 OS X El Capitan 的先前版本上顺利开发和部署的。 Ruby gem 显示以下消息:

$ gem -v
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin16/rbconfig.rb:213: warning: Insecure world writable dir /usr/local/bin in PATH, mode 040777
2.5.0

sencha cmd 由于 Ruby

的错误无法构建项目
[INF] executing compass using system installed ruby runtime
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin16/rbconfig.rb:213: warning: Insecure world writable dir /usr/local/bin in PATH, mode 040777

由于 phantomjs

的错误也导致构建失败
[ERR] BUILD FAILED
[ERR] com.sencha.exceptions.ExProcess: phantomjs process exited with code 139
[ERR]   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMetho
[ERR] dAccessorImpl.java:57)

phantomjs failure/crashed in MacOS Sierra,bre​​w 无法正常工作,因为它依赖于 Ruby。消息出现以下错误:

brew update
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin16/rbconfig.rb:213: warning: Insecure world writable dir /usr/local/bin in PATH, mode 040777
Already up-to-date.

在这种情况下,这对我来说是一场灾难。我想从这种情况中解脱出来。在谷歌搜索一个或更长时间后,从专家那里发现了普遍意见,即很难将其恢复为 OS X El Capitan。但是有安装 OS X El Capitan 的选项。您对问题有什么建议吗?

OSX/macOS 的最新版本实施了一个名为 System Integrity Protection 的系统,该系统限制用户访问某些目录,例如 /usr/var/sys 等。大多数这些权限都可以相当简单地更改(/usr/bin 是我在几次 OS 升级后不得不更改的权限)但是我之前提到的顶级目录无法更改权限无需启动进入恢复模式,即使 sudoroot.

从错误消息看来 Ruby 写入 /usr/local/bin 时遇到问题,Homebrew 也使用它来存储二进制文件,Apple 也鼓励将其用于存储用户-制作可执行文件和二进制文件。要更改 /usr/local/bin 和任何其他导致问题的目录的权限,请尝试执行:

sudo chown $(whoami) /usr/local/bin

然后重新运行任何使用Ruby失败的命令。 希望这对您有所帮助!