CocoaPods nie działają w systemie macOS High Sierra


163

Po aktualizacji do macOS High Sierra CocoaPods nie działa. Chociaż kuszące jest odejście od CocoaPods, niestety nie jest to obecnie objęte zakresem. Komunikat o błędzie znajduje się poniżej.

zsh: /Users/****/.gems/bin/pod: bad interpreter: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin: no such file or directory

Zdaję sobie sprawę, że błąd wynika z uaktualniania Rubiego, ale co można naprawić? Próba zmuszenia CocoaPods do używania nowej wersji ruby ​​powoduje inne błędy.

Edit: Teraz mam zainstalowane Ruby 2.0z rvm install 2.0.0i rvm use 2.0.0a następnie ponownie uruchomione CocoaPods sudo gem install cocoapods. Wydaje się, że teraz działa.


Czy zaktualizowałeś narzędzia wiersza poleceń?
— mat.

@matt Yes, sudo xcode-select -s /Applications/Xcode-beta.appi stamtąd postępuj sudo xcode-select --installzgodnie z GUI.
— Maciej Swic

Myślałem o tych tutaj: developer.apple.com/download/more Często okazuje się, że narzędzia zewnętrzne nie działają, dopóki ich nie zainstaluję.
— mat.

Odpowiedzi:


417

Według https://github.com/CocoaPods/CocoaPods/issues/6778 ponowna instalacja CocoaPods powinna rozwiązać ten problem:

sudo gem install cocoapods

2
u mnie też zadziałało, powinno być oznaczone jako zaakceptowane rozwiązanie
— swalkner

17
Prosty "napar ponownie zainstaluj cocoapods" zadziałał (ponieważ uruchamia dokładnie to polecenie za ciebie). Dziękuję za zwrócenie uwagi.
— Markus,

Chociaż to działa, z pewnością powinien to być problem CocoaPods, ponieważ nie jest w stanie zlokalizować zaktualizowanej wersji Rubiego. Prawdopodobnie ponowna instalacja po prostu sprawdza, czy instalacja jest ponownie i dlatego „naprawia” ją.
— Hans Knöchel

gem install cocoapods - nie wyrzuca niejawnej konwersji zera na błąd łańcucha, ale "brew reinstalacja cocoapods" spełniło swoje zadanie. dzięki @Markus
— krishnan

gem install -n / usr / local / bin cocoapods pomaga mi
— Anupam Gupta

112

Po uaktualnieniu do systemu macOS High Sierra, napraw go za pomocą następujących poleceń:

sudo gem update --system
sudo gem install -n /usr/local/bin cocoapods

po zakończeniu napisz poniższe polecenie:

pod install

To rozwiązanie zadziałało dla mnie ... !!!


1
Otrzymałem „BŁĄD: Podczas wykonywania gem ... (Errno :: EPERM) Operacja niedozwolona @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem” podczas uruchamiania pierwszego polecenia, ale uruchomienie drugiego nadal powodowało, że „instalacja pod” działała. Dzięki.
— Bryce Sandlund

Pomimo „ostrzeżenia”, i tak chcę tu podziękować. To była jedyna rzecz, która działała dla mnie. Po prostu ponowna instalacja cocoapods (kilka razy) nie zrobiła różnicy, dopóki nie wykonałem obu tych kroków. Więc dziękuję!
— huygir

Musiałem uruchomić aktualizację ruby ​​za pomocą następującego polecenia:sudo gem update -n /usr/local/bin --system
— Paul Popiel

Pracował dla mnie (cocoapods 1.5.3).
— atereshkov

27

Otrzymałem ten błąd podczas instalacji CocoaPods

ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/bin directory.

I użyłem tego stwierdzenia. Zadziałało!

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

1
To jedyne rozwiązanie, które wydawało mi się skuteczne. Dzięki
— Dan Beaulieu


9

To rozwiązało mój problem:

$ brew install ruby
$ gem install -n /usr/local/bin cocoapods

Proszę podać krótkie wyjaśnienie, co robi opublikowany kod, aby osoby, które są nowe w tej technologii, mogły się zmienić, aby zrozumieć i ponownie użyć Twojej odpowiedzi :-)
— Mathieu VIALES

1
Osoby, które dopiero zaczynają przygodę z cocoapodami, powinny umieć czytać jak inni.
— thibaut noah

@MathieuVIALES, "brew install ruby" zakłada, że ​​masz już program do pakowania Homebrew ( brew.sh ). To polecenie następnie instaluje (lub prawdopodobnie technicznie ponownie instaluje ruby, ponieważ w rzeczywistości potrzebujesz ruby, aby zainstalować sam Homebrew). Następna linia "gem install -n / usr / local / bin cocoapods" ponownie instaluje program CocoaPod (więcej na cocoapods.org ).
— Eddie Eddie Eddie


6

Więc napotkałem ten problem również po aktualizacji do High Sierra i wygląda na to, że nastąpiły pewne zmiany w lokalizacji pliku, do którego miała dostęp struktura Ruby.

Możesz go rozwiązać za pomocą,

sudo gem install cocoapods

a następnie zaktualizuj również pody, aby uzyskać bezpieczne środki

pod repo update 

i w końcu

pod install

aby plik pod działał ponownie.

Mam nadzieję, że to pomoże :)


5

Spróbuj użyć

sudo gem update --system

Przed

sudo gem install cocoapods

To zadziałało dla mnie



5

Proces instalacji Cocoapods:

  1. sudo gem install cocoapods (jeśli masz jakiś problem z cocoapds, zaktualizuj plik klejnotów)

  2. sudo gem update --system

  3. sudo gem install cocoapods


4

Dla mnie musiałem:

gem uninstall cocoapods
which pod

Nadal pokazywał to na ścieżce, więc go usunąłem. Upewniłem się, że nadal się nie pojawia.

Następnie

gem install cocoapods

Wreszcie ! Usunięcie starego pliku wykonywalnego pod przed zainstalowaniem cocoapods zadziałało dla mnie
— Seb Fanals

4

Idź do terminala ...

krok 1). sudo gem zainstaluj cocoapods

po zakończeniu montażu następnie zainstalować strąki kakaowe

krok 2). aktualizacja repozytorium

Zakończony


3

Napotkałem również ten błąd po zainstalowaniu High Sierra.

ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/bin directory.

Użyłem następującego stwierdzenia zidentyfikowanego przez Danha Huynha (patrz wyżej) i zadziałało!

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

1
To tylko powtórzenie istniejącej odpowiedzi , prawda?
— Pang

to naprawiło to dla mnie
— MiMo

3

MacOS High Sierra domyślnie używa Ruby 2.3. Po aktualizacji do niego niektóre stare rubiny mogą nie działać poprawnie. Ten problem pojawia się, gdy uruchomiłem polecenie bundle (bundler to rubinowy klejnot; ma narzędzie o nazwie bundle).

Tak więc, aby wyjaśnić, wszelkie stare klejnoty rubinowe (cocoapods, bundler itp.), Które próbują uzyskać dostęp do Ruby 2.0, nie powiodą się.

Rozwiązaniem jest ponowne zainstalowanie tych starych klejnotów w katalogu, w którym masz uprawnienia do zapisu.

Dla cocoapods,

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

da rade.

Możesz opcjonalnie zaktualizować swój system klejnotów, jeśli chcesz beforezainstalować:

sudo gem update --system

Może to spowodować wyświetlenie komunikatu, że aktualizacja nie powiodła się. Ale tak naprawdę, jeśli wpiszesz:

gem --version

Możesz zobaczyć, że aktualizacja się powiodła.

W przypadku pakietu lub innych klejnotów spróbuj zrobić to samo:

sudo gem install gem-to-install(for example, bundler) -n /usr/local/bin

O -nopcji. Nie przegap tego. Jeśli chcesz, możesz sprawdzić dokumentację klejnotów.

Tak więc rozwiązanie polega reinstalling the old gemna umieszczeniu odpowiedniego katalogu.


1

Podczas gdy robię to samo, pojawił się inny błąd, mówiąc o tym

BŁĄD: Podczas wykonywania gem ... (Gem :: FilePermissionError) Nie masz uprawnień do zapisu w katalogu /Library/Ruby/Gems/2.3.0.

Potem zrobiłem to i działałem dobrze.

sudo gem uninstall cocoapods

sudo gem install cocoapods

1

Miał ten sam problem, rozwiązanie:

  1. Zainstaluj ponownie ruby

    brew install ruby

  2. Zainstaluj ponownie Cocoa Pods

    sudo gem install cocoapods


1

Jest to częsty problem po uaktualnieniu do systemu Mac OSX High Sierra.

Poprawka polega po prostu na instalacji Cocoapods (ponownie):

sudo gem install cocoapods

1

Uruchomienie tego na terminalu zadziałało dla mnie:

sudo gem install cocoapods

0

Po użyciu poniższego polecenia na terminalu mogę zainstalować strąki kakao w moim projekcie.

sudo gem install cocoapods --source http://rubygems.org

0

Zmierzyłem się również z tym problemem, ale naprawiłem go w mniej dramatyczny sposób, jak różne ponowne instalacje / aktualizacje. Właśnie zaktualizowałem zmienną środowiskową PATH, aby wskazała moją istniejącą (2.6.0) wersję ruby.


0

Miałem ten sam problem po uaktualnieniu do Cataliny.

  1. Zaktualizowałem instalację Ruby, instalując najpierw brew i Ruby, korzystając z tych wskazówek. https://gorails.com/setup/osx/10.15-catalina (ale tylko ruby, nie rails itp.)

  2. Następnie ponownie zainstalowałem cocoapods zgodnie z powyższymi instrukcjami.

    sudo gem zainstaluj cocoapods

Potem po tym wszystkim nadal otrzymałem błąd powyżej. Następnie wpisałem „zsh”, aby stworzyć nową powłokę i pobrać ustawienia konfiguracyjne w pliku ~ / .zshrc. Po tym poleceniu „aktualizacja pod” działało ponownie.


0

Rozwiązanie przyjazne dla plików Sudo

Współczesny macOS zniechęca do używania sudobash do zsh i przechodzi z niego, więc ta odpowiedź może być przydatna, jeśli nie zamierzasz walczyć z modą.

  1. Upewnij się, że .zshenvistnieje na touch ~/.zshenvpolecenie. Skonfiguruj środowisko RubyGems, dodając następujące linie:

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

    Nie zapomnij ponownie uruchomić Terminala.

  2. Biegnij gem install cocoapods.

0
If cannot install new version cocoapods, example below:
1. Please remove Command line tools
sudo rm -rf /Library/Developer/CommandLineTools
2. Install new Command line tools version
sudo xcode-select --install
3. after installing run below command
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.