web-dev-qa-db-ja.com

ココアポッドがエルキャピタンのポッドを更新しない

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

私はこのコンピューターの管理者です。なぜこうなった?

66
Luda

これは、El Capitanで導入された新しい システム整合性保護 機能が原因です。管理者でさえ/usr/binへの書き込みを制限します。

最適なオプションは、Sudoを必要とせずにgemをインストールすることです。良い それを行う方法のガイド があります:

export GEM_HOME=$HOME/.gem
export PATH=$GEM_HOME/bin:$PATH

gem install cocoapods
201
Keith Smiley

から CocoaPodsの問題3736

  1. ココポッドのすべてのインスタンスをアンインストールします(安全のため、物事をきれいに保つため) Cocoapodsを完全にアンインストールします

    Sudo gem uninstall cocoapods
    

    または、すべてのコンポーネントを完全にアンインストールすることもできます(各コンポーネントの[すべてのバージョン]を選択します)

    gem list --local | grep cocoapods | awk '{print $1}' | xargs Sudo gem uninstall
    
  2. 再インストール

    Sudo gem install -n /usr/local/bin cocoapods
    
  3. アクセス許可を変更する

    Sudo chmod +rx /usr/local/bin/
    
8

これはあなたのために働くはずです

_Sudo gem install -n /usr/local/bin cocoapods
_

操作は許可されていません-/ usr/bin/xcodeproj#3692

何らかの理由で、単純にシステムをアップグレードする場合、ルートレスのものは制限が少ないようです。 10.10からアップグレードされたマシンにSudo gemでcocoapodsをインストールすることはできましたが、binstubは/ 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_をインストールコマンドに渡すことで解決でき、ポッド実行可能ファイルがそこにインストールされます。

7

元の質問/問題について:

$ Sudo gem install cocoapods
ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted

私はseveralGEMSと同じ問題を抱えていることがわかったので、認識された答え( Keith Smiley )を一般化してすべてのローカルを更新しましたgems ...(ルートレスが有効な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
stonecanyon

カスタムおよび標準インストール用にPodsをインストールするための最良のオプションリンクを参照してください: https://github.com/CocoaPods/CocoaPods/issues/3692

enter image description here

2
Gopal Raju

Xcodeコマンドラインツールを再度インストールしましたか?これで私の問題は解決しました。 Xcodeの設定(ロケーション)でコマンドラインツールを選択し、ココアポッドをインストールする必要があります。

0
telip007

私にとっては:Sudo gem install -n/usr/local/bin cocoapods --pre

0
GKK