MacOS 升级到10.13之后使用 Pod 提示
zsh: /usr/local/bin/pod: bad interpreter: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin: no such file or directory
原因是系统升级之后使用了2.3的 ruby,但是Cocoapods似乎在link 的时候把地址固定在了2.0,于是就找不到。
Cocoapods推荐的解决方案是重装
gem install cocoapods
// or
brew reinstall cocoapods
如果提示
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/bin directory.
就用
sudo gem install cocoapods -n /usr/local/bin
不过[参考5]里提到这种方法不太好。由于看到那篇文章的时候我已经用了 sudo 安装了,就没有尝试他提到的方法。下次可以试试。
Gem
但重装的时候可能会遇到另一个错误,
ERROR: While executing gem ... (TypeError)
no implicit conversion of nil into String
解决方案:升级 gemsudo gem update --system
总结
所以总体来说就是:
sudo gem update --system
sudo gem install cocoapods -n /usr/local/bin
两行解决。
Update -- 2017.12.19
试用了一下[参考5]提到的
brew install ruby
修改 ~/.bash_profile (没有就创建个, 若是 zsh 之类也修改对应的 profile 文件)添加搜寻路径如下
export PATH=/usr/local/bin:$PATH
然后 source ~/.bash_profile
apply 它之后就可以不使用 sudo 直接gem install cocoapods
了,感觉确实比 sudo 的方式更优雅。
参考
- https://github.com/CocoaPods/CocoaPods/issues/6778
- https://stackoverflow.com/questions/44396215/cocoapods-not-working-in-macos-high-sierra
- https://github.com/rubygems/rubygems/issues/1668
- https://stackoverflow.com/questions/2893889/how-do-i-fix-the-you-dont-have-write-permissions-into-the-usr-bin-directory
- https://blog.argcv.com/articles/4429.c