很久没有新写项目了,今天晚上通过 cocoapods 给项目添加第三方库的时候,突然提示 -bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter: No such file or directory
这样的错误信息。
发现是系统预装的 ruby 版本变成了 2.3 ,于是之前安装的 cocoapods 就找不到之前的版本呢,选择重新安装即可。但是当我用 sudo gem install cocoapods
却出现了 以下错误ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/pod
。
从提示可以看出是因为没有权限在/usr/bin/这个目录写入。搜索后发现原因是系统的新安全机制:System Integrity Protection也叫作:rootless,这个默认的安全机制用于保护下面三个目录,所以无法在/usr/bin/中安装pod
1 | /System |
同时,网上也给出了两种解决方案:
- 关闭该机制,执行
$ sudo nvram boot-args="rootless=0"; sudo reboot
命令后,重启电脑,保证设置生效。 - 绕开该机制,
sudo gem install -n /usr/local/bin cocoapods
将 pod 安装在 /usr/local/bin 目录下。