CocoaPods не працює у macOS High Sierra


163

Після оновлення до macOS High Sierra CocoaPods не працює. Незважаючи на те, що відмовитися від CocoaPods, це, на жаль, наразі не вдається. Повідомлення про помилку наведено нижче.

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

Я розумію, що помилка пов'язана з оновленням Ruby, але що виправляється? Намагання змусити CocoaPods використовувати нову версію рубіну призводить до інших помилок.

Edit: На даний момент я встановив Ruby 2.0з rvm install 2.0.0і rvm use 2.0.0потім перевстановив CocoaPods sudo gem install cocoapods. Здається, зараз це працює.


Ви оновили інструменти командного рядка?
мат

@matt Так, sudo xcode-select -s /Applications/Xcode-beta.appі слідкуйте sudo xcode-select --installза GUI звідти.
Maciej Swic

Я думав про те, що тут: developer.apple.com/download/більше я часто знаходжу зовнішні інструменти не працюють, поки не встановлю ці.
мат

Відповіді:


417

Відповідно до https://github.com/CocoaPods/CocoaPods/isissue/6778, перевстановлення CocoaPods має вирішити цю проблему:

sudo gem install cocoapods

2
працював і для мене, повинен бути позначений як прийняте рішення
swalkner

17
Проста «заварка перевстановити cocoapods» спрацювала (оскільки вона виконує цю точну команду для вас). Дякую, що вказали на це.
Маркус

Хоча це працює, це, безумовно, має бути проблемою CocoaPods, оскільки він не в змозі знайти оновлену версію Ruby. Можливо, перевстановлення просто перевіряє встановлення ще раз і тому "виправляє" її.
Ганс Кнохель

gem install cocoapods - не кидає непрямого перетворення нуля в рядкову помилку, але "варити перевстановити cocoapods" зробив цю роботу. дякую @Markus
krishnan

gem install -n / usr / local / bin cocoapods допомагає мені
Anupam Gupta

112

Після оновлення до macOS High Sierra виправте це за допомогою наступних команд:

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

як тільки він буде закінчений, тоді напишіть команду нижче:

pod install

Це рішення спрацювало для мене ... !!!


1
Я отримав "ПОМИЛКА. Під час виконання gem ... (Errno :: EPERM) Операція не дозволена @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem" під час виконання першої команди, але запуск другого все-таки зробив роботу "pod install". Дякую.
Брайс Сандлунд

Незважаючи на "попередження", я все одно хочу сказати подяку. Це було єдине, що працювало на мене. Просто перевстановлення какаопів (кілька разів) не мало значення, поки я не зробив обидва ці кроки. Тож - спасибі!
хуйгір

Мені довелося запустити оновлення рубіну за допомогою наступної команди:sudo gem update -n /usr/local/bin --system
Пол Попіель

Працювали для мене (какаоди 1.5.3).
атерешков

27

Я отримав цю помилку під час встановлення CocoaPods

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

І я використав це твердження. Це спрацювало!

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

1
Це єдине рішення, яке, здавалося, працює для мене. Спасибі
Ден Болье


9

Це вирішило мою проблему:

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

Будь ласка, дайте коротке пояснення того, що робить опублікований код, щоб люди, які не
знайомі

1
Люди, які не знайомі з какаодами, повинні вміти читати, як інші.
thibaut noah

@MathieuVIALES, "заварювати встановити рубін" передбачає, що у вас вже є пакувальник Homebrew ( brew.sh ). Потім ця команда встановлюється (або, ймовірно, технічно перевстановлює рубін, оскільки вам потрібен рубін, щоб встановити сам Homebrew). Наступний рядок "gem install -n / usr / local / bin cocoapods" перевстановлює програму CocoaPod (докладніше на cocoapods.org ).
Едді Едді Едді


6

Тож я зіткнувся з цією проблемою і після оновлення до Високої Сьєрри, і, схоже, відбулися деякі зміни в розташуванні файлу, до якого доступна рамка рубіну.

Ви можете вирішити це за допомогою,

sudo gem install cocoapods

а потім оновити стручки, а також для безпечних заходів

pod repo update 

і, нарешті

pod install

щоб знов працювати файл pod.

Сподіваюсь, це допоможе :)


5

Спробуйте використовувати

sudo gem update --system

До цього

sudo gem install cocoapods

Це працювало для мене



5

Процес встановлення какаоподів:

  1. sudo gem install cocoapods (якщо у вас є якісь проблеми у співавторстві, оновіть файл дорогоцінного каміння)

  2. sudo gem update --system

  3. sudo gem install cocoapods


4

Для мене я повинен був:

gem uninstall cocoapods
which pod

Це все ще показало це на шляху, тому я видалив це. Переконайтесь, що все ще не з’явилося.

Тоді

gem install cocoapods

Нарешті! Видалення старого виконуваного стручка перед встановленням cocoapods працювало на мене
Seb Fanals

4

Перейти до терміналу ...

крок 1). sudo gem встановлюють какаоподи

після завершення встановити какао-стручки потім

крок 2). оновлення pod repo

Завершено


3

Я також зіткнувся з цією помилкою після встановлення High Sierra.

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

Я використав наступне твердження, визначене Даном Хюном (див. Вище), і воно спрацювало!

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

1
Це лише повторення цієї існуючої відповіді , чи не так?
Панг

це зафіксувало це для мене
MiMo

3

MacOS High Sierra за замовчуванням використовує ruby ​​2.3. Після оновлення до нього деякі старі рубінні дорогоцінні камені можуть не працювати належним чином. Ця проблема виникає у мене, коли я запускаю команду bundle (bundler - це рубінова коштовність; вона має утиліту під назвою bundle).

Отже, для уточнення, будь-які старі рубінні дорогоцінні камені (cocoapods, bundler тощо), які намагаються отримати доступ до ruby ​​2.0, не зможуть.

Рішення полягає в тому, щоб перевстановити ці старі дорогоцінні камені в каталог, де у вас є дозволи на запис.

Для какаодів,

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

зробить трюк.

Якщо ви хочете beforeвстановити, ви можете оновити систему дорогоцінних каменів :

sudo gem update --system

Це може підказати вам, що оновлення не вдалося. Але насправді, якщо ви введете:

gem --version

Ви можете бачити, що оновлення пройшло успішно.

Для постачальника чи інших дорогоцінних каменів спробуйте зробити те ж саме:

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

Про -nваріант. Не пропустіть цього. Ви можете перевірити документацію про дорогоцінні камені, якщо хочете.

Отже, рішення стосується reinstalling the old gemналежного каталогу.


1

Поки я роблю те саме, у мене з’явилася ще одна помилка, яка сказала це

ПОМИЛКА: Під час виконання gem ... (Gem :: FilePermissionError) У вас немає дозволів на запис для каталогу /Library/Ruby/Gems/2.3.0.

Тоді я це зробив і добре працював.

sudo gem uninstall cocoapods

sudo gem install cocoapods

1

Мав те саме питання, вирішення:

  1. Перевстановіть рубін

    brew install ruby

  2. Перевстановіть какао-стручки

    sudo gem install cocoapods


1

Ця проблема є поширеною під час оновлення до Mac OSX High Sierra.

Виправлення просто встановлюється Cocoapods (знову):

sudo gem install cocoapods


0

Після використання команди нижче на терміналі я можу встановити какао-стручки у своєму проекті.

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

0

Я також зіткнувся з цим питанням, але вирішив його менш драматично, як різні перевстановлення / оновлення. Щойно оновлена ​​змінна середовища PATH, щоб вказати на мою існуючу (2.6.0) рубінову версію.


0

У мене було те саме питання після переходу на Каталіну.

  1. Я оновив встановлення рубіну, спочатку встановивши вариво та рубін, використовуючи ці вказівки. https://gorails.com/setup/osx/10.15-catalina (але лише рубін, а не рейки тощо)

  2. Потім я перевстановив какаоди, використовуючи наведені вище інструкції.

    sudo gem встановлюють какаоподи

Потім після всього, що я все-таки отримав помилку вище. Потім я набрав 'zsh', щоб нерестувати нову оболонку та втягнути параметри конфігурації у файл ~ / .zshrc файл. Після цього команда 'update update' знову працювала.


0

Судо-менш .zhs-дружнє рішення

Сучасний macOS відлякує використання sudoта перехід від bash на zsh, тому ця відповідь може бути корисною, якщо ви не збираєтеся боротися з модою.

  1. Застрахуйте, що .zshenvіснує touch ~/.zshenvкомандою. Налаштуйте середовище RubyGems, додавши наступні рядки:

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

    Не забудьте перезапустити термінал.

  2. Біжи 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.