Cocoa Подписки, не обновляющие стручки на El Capitan

Я обновился до 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

Я являюсь администратором этого компьютера. Почему это происходит?

Ответ 1

Это вызвано новой функцией защиты целостности системы, представленной в El Capitan. Это ограничивает даже администраторов от записи в /usr/bin.

Лучшим вариантом будет установка драгоценных камней без необходимости sudo. Есть хорошее руководство о том, как это сделать:

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

gem install cocoapods

Ответ 2

От Проблемы с CocoaPods 3736

  • Удалите все экземпляры cocopods (просто чтобы быть в безопасности и сохранить чистоту) см. полностью удалить Cocoapods

    sudo gem uninstall cocoapods
    

    или даже лучше полностью удалить все компоненты (и выбрать все версии для каждого)

    gem list --local | grep cocoapods | awk '{print $1}' | xargs sudo gem uninstall
    
  • Установить снова

    sudo gem install -n /usr/local/bin cocoapods
    
  • Изменить разрешение доступа

    sudo chmod +rx /usr/local/bin/
    

Ответ 3

Это должно работать для вас

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

Операция не разрешена -/usr/bin/xcodeproj # 3692

По какой-то причине бесполезные вещи кажутся менее строгими, когда кто-то просто обновляет систему. Я мог бы sudo gem установить cocoapods просто отлично на машине, обновленной с 10.10 - однако binstubs больше не устанавливаются в /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 команде install, чтобы исполняемый файл pod был там установлен.

Ответ 4

Относительно исходного вопроса/проблемы:

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

Я обнаружил, что у меня была такая же проблема с несколькими GEMS, поэтому я обобщил признанный ответ (Keith Smiley), чтобы обновить ВСЕ локальные драгоценные камни... (на 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. Я считаю, что это лучший способ справиться с проблемой без корней (что является причиной проблемы).

Ответ 6

Вы снова установили инструменты командной строки Xcode? Это решило мою проблему. Вам нужно выбрать инструмент командной строки в настройках Xcode (локации) и установить cocoa pods.

Ответ 7

Для меня это сработало с: sudo gem install -n/usr/local/bin cocoapods --pre