2015-04-24 2 views
0

Я пытаюсь установить некоторые порты с помощью MacPorts на OS X, но, как только установка пытается вызвать компилятор Си, я получаю:MacPorts' привилегии вызывают проблемы с лицензией Xcode

соглашаясь на Xcode/Для лицензии iOS требуются привилегии администратора, повторите запуск с правами root через sudo.

Контекст:

  • Я бежал sudo xcodebuild -license и успешно договорились о лицензии однако, когда я бегу xcodebuild -license я получаю ту же ошибку , как описано выше.
  • Я использую Macports в sudo: sudo port install ghostscript, но Macports, кажется, оставляет привилегии во время установки. (Также пытался использовать терминал как пользователь root, но это, похоже, не помогло).

Таким образом, я вижу два варианта: либо управлять каким-либо соглашением с лицензией на моем уровне пользователя, либо форсировать Macports для сохранения привилегий. Но пока ничего не удалось сделать.

ответ

0

принятие лицензии хранится в

  • /Library/Preferences/com.apple.dt.Xcode.plist,
  • ~/Library/Preferences/com.apple.dt.Xcode.plist (MacPorts копирует этот файл из вашего дома при запуске, чтобы поддерживать старые Xcode релизы, что требуется принятие каждого пользователя), или
  • ~ MacPorts/Library/Preferences/com.apple.dt.Xcode.plist

Попробуйте переместить эти файлы, если они существуют, выполните прием лицензии с использованием sudo xcodebuild -license. Попробуйте также очистить /var/folders/zz, инструменты командной строки Xcode используют это для кэширования некоторых данных, которые могут вызвать эту проблему. Если это не помогает, проверьте права доступа к файлам для этих файлов (по крайней мере, первый должен быть -rw-r--r--, то есть читаемым всеми).

Существует способ сделать MacPorts как root, а не отменять привилегии, но вы не должны этого делать, если это абсолютно необходимо. Разделение привилегий - это функция безопасности, позволяющая избежать неправильного использования портов из-за хаоса в вашей системе.

+0

Пробовал все предложения, но не повезло :( я думаю, как этот этап отчаяния я готов дать MacPorts полные привилегии. Спасибо за вашу помощь – ccol002

+0

Вы можете установить '' macportsuser' к root' в 'MacPorts. conf', но, как я уже сказал, это * ДЕЙСТВИТЕЛЬНО * плохая идея. Скорее попробуйте вызвать clang как 'macports' с dtruss для получения дополнительной информации для отладки, например' echo 'int main() {} "| sudo dtruss -f sudo -u macports clang -xc -' и предоставить результат. – neverpanic

+0

Извините, что вы не изучали это раньше. Попробуем и вернемся. – ccol002

Смежные вопросы