web-dev-qa-db-fra.com

Les capsules de cacao ne mettent pas à jour les capsules sur El Capitan

Je suis passé à El Capitan et depuis, je ne peux plus mettre à jour mes pods.

$ pod update
-bash: pod: command not found

J'ai donc essayé de réinstaller CocoaPods et j'ai obtenu ceci:

$ Sudo gem install cocoapods
ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted - /usr/bin/xcodeproj

Je suis l'administrateur sur cet ordinateur. Pourquoi cela arrive-t-il?

66
Luda

Ceci est dû à la nouvelle fonctionnalité Protection de l'intégrité du système introduite dans El Capitan. Cela empêche même les administrateurs d'écrire en /usr/bin.

Votre meilleure option serait d'installer des gemmes sans avoir besoin de Sudo. Il y a un bon guide sur la façon de le faire :

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

gem install cocoapods
201
Keith Smiley

À partir de numéro 3736 de CocoaPods

  1. Désinstallez toutes les instances de cocopods (juste pour être sûr et garder les choses propres), voir désinstaller complètement les Cocoapods

    Sudo gem uninstall cocoapods
    

    ou encore mieux, désinstallez complètement tous les composants (et sélectionnez Toutes les versions pour chacun)

    gem list --local | grep cocoapods | awk '{print $1}' | xargs Sudo gem uninstall
    
  2. Réinstaller

    Sudo gem install -n /usr/local/bin cocoapods
    
  3. Changer la permission d'accès

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

Cela devrait fonctionner pour vous

Sudo gem install -n /usr/local/bin cocoapods

Opération non autorisée -/usr/bin/xcodeproj # 3692

Pour une raison quelconque, le système sans racine semble moins restrictif lorsque l’on met simplement à niveau le système. Sudo gem pourrait installer des cocoapods sans problème sur une machine mise à niveau à partir de la version 10.10 - toutefois, les modules de stockage bin ne sont plus installés dans/usr/bin:

$ Sudo gem install cocoapods
[...]
1 gem installed
$ export PATH=$PATH:/Library/Ruby/bin
$ pod --version
0.37.2

Certains utilisateurs nous ont fait savoir qu'ils recevaient cette erreur lors d'une installation à l'échelle du système:

ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/pod

Nous ne savons pas pourquoi gem se comporte différemment sur certains systèmes, mais cela peut être résolu en passant -n /usr/local/bin À la commande install, afin que l'exécutable du pod soit installé à cet emplacement.

7

Concernant la question/le problème initial:

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

J'ai trouvé que j'avais le même problème avec plusieurs GEMS, alors j'ai généralisé la réponse reconnue ( Keith Smiley ) pour mettre à jour TOUT local gemmes ... (sur El Capitan avec enracinement en vigueur)

$ Sudo gem install cocoapods -n /usr/local/bin/    # this command installs
$ Sudo gem update -n /usr/local/bin/    # this command updates all local gems 

Cela fonctionne bien et créera un journal détaillé de toutes les mises à jour et erreurs.

J'ai vu de nombreuses erreurs. Ils étaient tous "incapables de convertir" les erreurs. L'analyse de nombreux documents rencontrera une erreur de "saut" ... comme ceci:

$ unable to convert "\xCF" from ASCII-8BIT to UTF-8 for lib/jazzy... skipping

Je crois que ces erreurs de saut ne sont pas des problèmes.

CocoaPods sera mis à jour au cours de ce processus, ainsi que tous les autres GEMS locaux, en fonction de l'état actuel de vos GEMS locaux. Je crois que c'est la meilleure façon de traiter le problème sans racine (qui est la cause du problème).

4
stonecanyon

Votre meilleure option pour installer des pods pour une installation personnalisée et standard. Veuillez vous référer au lien: https://github.com/CocoaPods/CocoaPods/issues/3692

enter image description here

2
Gopal Raju

Avez-vous réinstallé les outils Xcode Command Line? Cela a résolu mon problème. Vous devez sélectionner l'outil Ligne de commande dans les préférences Xcode (Emplacements), puis installer des cabochons.

0
telip007

Pour moi, cela a fonctionné avec: Sudo gem installer -n/usr/local/bin cocoapods --pre

0
GKK