我已升级到El Capitan,从那时起我无法更新我的播客。
$ pod update
-bash: pod: command not found
所以我试图重新安装CocoaPods并得到了这个:
$ sudo gem install cocoapods
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/xcodeproj
我是这台电脑的管理员。为什么会这样?
答案 0 :(得分:201)
这是由El Capitan引入的新System integrity protection功能引起的。它甚至限制管理员写入/usr/bin
。
您最好的选择是在不需要sudo
的情况下安装宝石。有一个很好的guide on how to do that:
export GEM_HOME=$HOME/.gem
export PATH=$GEM_HOME/bin:$PATH
gem install cocoapods
答案 1 :(得分:8)
卸载所有cocopods实例(为了安全起见并保持清洁)请参阅fully uninstall Cocoapods
sudo gem uninstall cocoapods
甚至更好地完全卸载所有组件(并为每个组件选择所有版本)
gem list --local | grep cocoapods | awk '{print $1}' | xargs sudo gem uninstall
重新安装
sudo gem install -n /usr/local/bin cocoapods
更改访问权限
sudo chmod +rx /usr/local/bin/
答案 2 :(得分:7)
这应该对你有用
sudo gem install -n /usr/local/bin cocoapods
无论出于何种原因,只需升级系统,无根的东西似乎就不那么严格了。我可以在从10.10升级的机器上sudo gem install cocoapods - 但是,binstubs不再安装到/ usr / bin中:
$ sudo gem install cocoapods
[...]
1 gem installed
$ export PATH=$PATH:/Library/Ruby/bin
$ pod --version
0.37.2
我们从一些用户那里听说他们在进行系统范围的安装时会收到此错误:
ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/pod
我们不确定为什么gem在某些系统上表现不同,但这可以通过将
-n /usr/local/bin
传递给install命令来解决,以便在那里安装pod可执行文件。
答案 3 :(得分:4)
关于原始问题/问题:
$ sudo gem install cocoapods
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted
我发现我与几个 GEMS存在同样的问题,所以我将已识别的答案(Keith Smiley)推广到更新所有本地宝石......(在El Capitan上有无根力量) )
$ sudo gem install cocoapods -n /usr/local/bin/ # this command installs
$ sudo gem update -n /usr/local/bin/ # this command updates all local gems
这很好用,会吐出所有更新和错误的详细日志。
我看到很多错误。他们都“无法转换”错误。解析许多文档会遇到“跳过”错误......就像这样:
$ unable to convert "\xCF" from ASCII-8BIT to UTF-8 for lib/jazzy... skipping
我相信这些跳过错误不是问题。
CocoaPods将在此过程中与所有其他本地GEMS一起更新,具体取决于您当地GEMS的当前状态。我相信这是处理无根问题的最佳方法(这是问题的原因)。
答案 4 :(得分:2)
安装Pod以进行自定义和标准安装的最佳选择 请参阅链接:https://github.com/CocoaPods/CocoaPods/issues/3692
答案 5 :(得分:0)
您是否再次安装Xcode Command Line工具?这解决了我的问题。您需要在Xcode首选项(位置)中选择命令行工具,然后再安装可可豆荚。
答案 6 :(得分:0)
对我而言,它适用于: sudo gem install -n / usr / local / bin cocoapods --pre