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.

Maciej Swic
źródło
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
zeisi
źródło
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 ... !!!

mital solanki
źródło
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
Danh Huynh
źródło
1
To jedyne rozwiązanie, które wydawało mi się skuteczne. Dzięki
Dan Beaulieu
12

To zadziałało dla mnie, chociaż musiałem to zrobić

sudo gem install cocoapods
Andrew Smith
źródło
9

To rozwiązało mój problem:

$ brew install ruby
$ gem install -n /usr/local/bin cocoapods
Đorđe Nilović
źródło
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
8

Po prostu uruchom poniższe polecenie:

sudo gem install -n /usr/local/bin cocoapods
Harshal Wani
źródło
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 :)

T. Hyldgaard
źródło
5

Spróbuj użyć

sudo gem update --system

Przed

sudo gem install cocoapods

To zadziałało dla mnie

David
źródło
5

To działa dla mnie:

brew link --overwrite cocoapods
Yun CHEN
źródło
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

Sheshu Solo
źródło
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
djunod
źródło
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

Azaharuddin Mohammad
źródło
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
kgangadhar
źródło
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.

Jiang Wang
źródło
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
Himanth
źródło
1

Miał ten sam problem, rozwiązanie:

  1. Zainstaluj ponownie ruby

    brew install ruby

  2. Zainstaluj ponownie Cocoa Pods

    sudo gem install cocoapods

Anton Eregin
źródło
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
Shobhit C.
źródło
1

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

sudo gem install cocoapods
ANUJ TAYAL
źródło
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
Sonam Maniar
źródło
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.

user1575878
źródło
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.

Larry Ricker
źródło
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.
kelin
źródło
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
siddhant
źródło