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


489

Під час спроби скласти мою програму C, виконайте таку команду:

gcc pthread.c -o pthread

Повернення:

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

і мій код не компілюється.

Чому це відбувається і як я можу виправити цю проблему?


193
sudo xcodebuild -license
Енді Барбур

4
Насправді я вважаю, що коментар @Andy Barbour - найкраща відповідь, оскільки проблему можна вирішити в терміналі таким чином. Енді: якщо ти створиш відповідь, я проголосую за неї.
rexford

11
Я навіть не міг git initцього робити.
ruffin

2
Це ще раз показує, чому ОС X насправді чудова система для енергокористувача ...
Лукас,

10
ця відповідь на нове схоже запитання показує, як домовитись повністю автоматизованим способом: sudo xcodebuild -license accept- який працює на macOS Sierra тут, але може не працювати на більш ранніх версіях
ssc

Відповіді:


808

Відкрийте Xcode і прийміть нову користувацьку угоду. Це сталося тому, що була завантажена нова версія Xcode і нова угода не була прийнята.


78
Чому для цього потрібен корінь, і чому цього ніхто не турбує?
kbolino

1
@kbolino Встановлення нового програмного забезпечення / нових версій програмного забезпечення часто вимагає введення пароля користувача. Запускаючи новий компілятор, ви потрапляєте на цю стіну.
ericsoco

22
@ericsoco, запуск Xcode не повинен мати нічого спільного з кореневими привілеями, як би не було виправдання. Правильно очікувати, що Xcode стане програмою userland. Непотрібні кореневі привілеї пригнічують пильність користувачів та допомагають використовувати поширення в цілому. Навіть якщо якийсь апаратний розробник або push компонент хоче привілеїв адміністратора, це повинен бути той компонент, а не все середовище розробника, яке вимагає привілеїв. Принципово важливо, що розробники повинні мати можливість надавати І відкликати ці пільги в будь-який момент часу. Те, як це працює зараз, схоже на ледачий спосіб архітектора Xcode від імені Apple.
Влад Діденко

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

13
@SoldOutActivist Так, я це все знаю. Однак я використовую різні слова, щоб описати це. Так: Нерозумно Apple запитує права адміністратора отримати та записати згоду користувача. І з того, що це не заслуговує на довіру (будь-яке додаток може зробити таке вікно і час його запуску до Xcode), і юридично сумнівне (оскільки, здається, це пов'язує мене з діями всіх майбутніх користувачів, які входять у систему). Поганий дизайн. Ні Apple, ні користувач НЕ ПОТРІБНО розробляти додаток таким чином, щоб вимагати права адміністратора після встановлення закінчено.
Влад Діденко

557
sudo xcodebuild -license

подбає про це без проблем у командному рядку. Зауважте, що вам доведеться вручну прокручувати ліцензію та погоджуватись з її умовами наприкінці, якщо ви не додасте командний рядок "Прийняти":

sudo xcodebuild -license accept

5
Це елегантно. Хоча я тут використовував інший метод, я б фактично вважав за краще цей, якби бачив його першим.
Вік Ян

1
Я отримую: недійсний варіант --license
dan-klasson

5
Має бути лише один тире @ dan-klasson: -license НЕ --license
Енді

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

38
Якщо ви розробляєте сценарії рішення для середовищ, якими керуєте, ви також можете ввести параметр accept sudo xcodebuild -license accept.
tobius

115

Я застряг, коли я намагався піти дістатись ... Я думаю, це було пов'язано з git. Ось як вдалося це виправити ...

  1. У терміналі я ввів наступне:

    sudo xcodebuild -license
  2. Це відкриє угоду. Пройдіть до кінця і введіть "погодитись".

Це піклується про те, щоб отримати проблеми.

Було досить цікаво, наскільки не пов'язані між собою речі.


4
Так, я працював git cloneна машині, якою не користувався ні хвилини.
Джесс

4
Ви можете просто натиснути q, щоб вийти та погодитись, якщо не схильний читати його.
steve

27

Відкриття XCode та прийняття ліцензії виправляє проблему.


Я щойно потрапив на один після оновлення Xcode до v7.0 і т.д. Ця відповідь спрацювала на мене.
G O'Rilla

15

Вам не потрібно возитися з будь-якою командою :)

Після оновлення XCode відкрийте програму Xcode IDE. Будь ласка, приймайте умови.

Ви готові їхати :))


7

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

Була встановлена ​​нова версія OSX або XCode, і Apple хоче, щоб ви погодилися з їх умовами та умовами. Тому просто запустіть Xcode і "погоджуйтесь" на них.


Це працює, але може бути не надто очевидним для користувачів (як я), які в основному використовують інструменти через командний рядок замість робочого столу. Було б добре, якби в Терміналі був якийсь текст, який змінює користувачів на це.
carolus

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-Code.

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


Ласкаво просимо до SO! Є багато відповідей з тим самим рішенням, чи могли б ви розкрити ваші переваги?
Девід Гарсія Бодего

0

Якщо у вас є подібні проблеми в Intellij, зробіть так, як інші сказали вище мене:

  1. Відкритий термінал.
  2. Введіть цю команду: sudo xcodebuild --license.
  3. Введіть системний пароль.
  4. Перейдіть до кінця файлу: для цього натисніть пробіл (кнопку).
  5. Введіть ліцензію «Згоден».

І ви зробили. !!

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