"Погодившись на ліцензію 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.