«Согласие с лицензией Xcode / iOS требует прав администратора, пожалуйста, перезапустите от имени root с помощью sudo». при использовании GCC


489

При попытке скомпилировать мою программу на C, запустите следующую команду:

gcc pthread.c -o pthread

Возвращает:

Согласие с лицензией Xcode / iOS требует прав администратора, пожалуйста, перезапустите от имени root с помощью sudo.

и мой код не компилируется.

Почему это происходит и как я могу решить эту проблему?


193
sudo xcodebuild -license
Энди Барбур

4
На самом деле, я думаю, что комментарий @Andy Barbour - лучший ответ, так как проблема может быть решена в терминале таким образом. Энди: если вы создадите ответ, я за него проголосую.
Рексфорд

11
Я не мог даже git initбез этого.
ruffin

2
Это еще раз показывает, почему OS X действительно отличная система для опытных пользователей ...
Lukas

10
этот ответ на новый, похожий вопрос показывает, как полностью автоматизировать sudo xcodebuild -license accept
процесс

Ответы:


808

Откройте Xcode и примите новое пользовательское соглашение. Это происходило потому, что была загружена новая версия Xcode, а новое соглашение не было принято.


78
Почему для этого нужен root, и почему никто не обеспокоен этим фактом?
Кболино

1
@kbolino Установка нового программного обеспечения / новых версий программного обеспечения часто требует ввода пароля пользователя. Когда вы запускаете новый компилятор, вы попадаете в эту стену.
ericsoco

22
@ericsoco, запуск Xcode не должен иметь НИЧЕГО общего с привилегиями суперпользователя, каким бы ни было оправдание. Уместно ожидать, что Xcode будет приложением пользователя. Ненужные привилегии суперпользователя ослабляют бдительность пользователя и помогают распространению эксплойтов в целом. Даже если какой-то аппаратный компонент или компонент push требует привилегий администратора, именно этот компонент, а не вся среда разработки, запрашивает привилегии. Важно отметить, что разработчики должны иметь возможность предоставлять И отзывать эти привилегии в любой момент времени. То, как это работает, теперь выглядит как ленивый способ создания Xcode от имени Apple.
Влад Диденко

5
@VladDidenko Вам не нужны права администратора для запуска Xcode или git. Вам нужны привилегии администратора, чтобы согласиться с условиями лицензионного соглашения XCode, чтобы использовать его приложения - что делает git (и вы сделали, когда устанавливали приложение). Повышение привилегий здесь похоже на сайты, запрашивающие 3-4-значный код безопасности на обратной стороне вашей кредитной карты. После согласия вам больше не нужны права администратора.
Распродано Активист

13
@SoldOutActivist Да, я все это знаю. Однако я использую разные слова, чтобы описать это. Вот так: Неразумно, что Apple запрашивает права администратора для получения и записи согласия пользователя. И с точки зрения того, что оно не заслуживает доверия (любое приложение может создать такое окно и время его запуска Xcode) и юридически сомнительно (как мне кажется, связывает меня с действиями всех будущих пользователей, заходящих в систему). Плохой дизайн. Ни Apple, ни пользователю НЕ НУЖНО, чтобы приложение разрабатывалось таким образом, чтобы требовать прав администратора после завершения установки.
Влад Диденко

557
sudo xcodebuild -license

позаботится об этом без проблем в командной строке. Обратите внимание, что вам придется вручную прокручивать лицензию и в конце соглашаться с ее условиями, если только вы не добавите «accept» в командную строку:

sudo xcodebuild -license accept

5
Это элегантно. Хотя я использовал другой метод здесь, я бы предпочел этот, если бы увидел его первым.
Вик Джанг

1
Я получаю: неверный параметр --license
Дан-Классон

5
Должен быть только один тире @ dan-klasson: -license НЕ --license
Энди Барбур

2
Поддерживать серверы сборки Apple с управлением конфигурацией и предоставлением ресурсов не так просто, когда такие пакеты, как Xcode и Java JDK, требуют, чтобы вы приняли лицензию вручную.
Saustrup

38
Если вы разрабатываете скриптовые решения для сред, которыми вы управляете, вы также можете добавить параметр accept sudo xcodebuild -license accept.
Тобиус

115

Застрял, когда я пытался получить ... Я думаю, это было связано с мерзавцем. Вот как удалось это исправить ...

  1. Я ввел следующее в терминале:

    sudo xcodebuild -license
  2. Это откроет соглашение. Пройдите весь путь до конца и напечатайте «согласен».

Это решает проблемы.

Было довольно интересно, как были не связаны вещи.


4
Да, я работал git cloneна машине, которой не пользовался ни минуты.
Джесс

4
Вы можете просто нажать q, чтобы выйти и согласиться, если не хотите читать его.
Стив

27

Открытие XCode и принятие лицензии устраняет проблему.


Я только что нажал один после обновления XCode до v7.0 и т. Д. И получил странные ошибки, учитывая, что все работало до обновления под управлением Android Studio. Этот ответ работал для меня.
Г О'Рилла

15

Вам не нужно возиться с любой командой :)

После обновления XCode откройте программу Xcode IDE. Пожалуйста, примите условия.

Вы все готовы идти :))


7

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

Была установлена ​​новая версия OSX или XCode, и Apple хочет, чтобы вы согласились с их Условиями. Так что просто запустите Xcode и согласитесь с ними.


Это работает, но может быть не слишком очевидно для пользователей (таких как я), которые в основном используют инструменты через командную строку вместо рабочего стола. Было бы хорошо, если бы в Терминале был какой-то текст, изменяющий пользователей на это.
Каролус

5

Следуй этим шагам:

  1. Откройте Терминал.
  2. Введите эту команду: sudo xcodebuild --license .
  3. Введите системный пароль.
  4. Согласитесь с лицензией.

4
Флаг должен использовать только один прочерк, то есть sudo xcodebuild -license.
aboutaaron

5

У меня была та же проблема, после принятия лицензии, запускающей XCode или работающей, sudo xcodebuild -license acceptмне пришлось перезагружать мой Mac - иначе это не сработало.


Шаг перезапуска имеет решающее значение. Я час бродил вокруг, удивляясь, почему это не сработало. Я перезапустил и все заработало. Спасибо
скеллертор

3

У меня была такая же проблема, когда я пытался использовать git.

Можно установить git без него. И я сомневаюсь, что gcc на mac действительно зависит от XCode. И я не хочу использовать root для принятия чего-либо, если я не уверен, что мне это нужно.

Я удалил XCode, перейдя в папку приложений и перетащив XCode в корзину.

Теперь мои команды git работают как обычно. Я переустановлю XCode, если / когда он мне действительно понадобится.


почему использование терминала для команды git требует от вас принятия лицензии для любого несвязанного приложения? Или они как-то связаны?
Скотт Дункан

2

Я сталкиваюсь с той же проблемой.

Проблема из-за X-кода.

Решение: 1. Откройте X-код и примите пользовательское соглашение (T & C). или 2. Перезагрузите ваш MAC, он разрешится автоматически.


Добро пожаловать на ТАК! Есть много ответов с одним и тем же решением, не могли бы вы раскрыть свои преимущества?
Дэвид Гарсия Бодего

0

Если у вас есть похожие проблемы в Intellij, делайте так, как говорили другие выше:

  1. Откройте Терминал.
  2. Введите эту команду: sudo xcodebuild --license.
  3. Введите системный пароль.
  4. Перейти к концу файла: нажмите пробел (кнопка), чтобы сделать это.
  5. Введите «Согласен» с лицензией.

И вы сделали. !!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.