ChatGPT解决这个技术问题 Extra ChatGPT

"Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo." when using GCC

While attempting to compile my C program, running the following command:

gcc pthread.c -o pthread

Returns:

Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.

and my code does not compile.

Why is this happening and how can I fix this problem?

sudo xcodebuild -license
Actually I think the comment of @Andy Barbour is the best answer since the issue can be resolved within the terminal this way. Andy: if you create an answer, I will vote for it.
I couldn't even git init without doing this.
This again shows, why OS X is really a great system for the power user...
this answer to a newer, similar question shows how to agree in a fully automated fashion: sudo xcodebuild -license accept - which works on macOS Sierra here, but might not work on earlier versions

c
coachcal

Open up Xcode, and accept the new user agreement. This was happening because a new version of Xcode was downloaded and the new agreement was not accepted.


Why does this require root, and why isn't anyone bothered by that fact?
@kbolino Installing new software / new versions of software often requires you to enter your user password. When you run the new compiler, you hit that wall.
@ericsoco, running Xcode should have NOTHING to do with root privileges, whatever excuse there is. It is proper to expect Xcode to be a userland application. Unnecessary root privileges dampen user vigilance and help exploits' proliferation in general. Even if some hardware development or push component wants admin privileges, it should be that component, not the whole dev environment, which requests privileges. Crucially, devs should be able to grant AND revoke those privileges at any point of time. The way it works now looks like a lazy way to architect Xcode on Apple's behalf.
@VladDidenko You don't need admin privileges to run Xcode or git. You need admin privileges to agree to the terms of the Xcode EULA in order to use its applications--which git does (and you did when you installed the application). Privilege escalation here is akin to sites asking for the 3-4 digit security code on the back of your credit card. After agreeing, you don't need admin privileges anymore.
@SoldOutActivist Yeah, I know all that. However I use different words to describe it. Like that: It is unreasonable that Apple asks admin privileges to get and record a user consent. Both from the point that It is not trustworthy (any app can make a window like that and time it to Xcode start) and legally questionable (as it seems to bind me for actions of all future users logging into the system). Bad design. Neither Apple nor a user NEED to have the application engineered in a way to demand admin privileges after install is over.
p
philant
sudo xcodebuild -license

will take care of it with no trouble on the command line. Note that you'll have to manually scroll through the license, and agree to its terms at the end, unless you add "accept" to the command line :

sudo xcodebuild -license accept

This is elegant. Although I used the other method here, I would actually prefer this one if I saw it first.
I get: invalid option --license
There should only be one dash @dan-klasson: -license NOT --license
Maintaining Apple build servers with configuration management and provisioning is not exactly easy, when packages like Xcode and Java JDK requires you to manually accept a license.
If you are scripting solutions for environments that you control you can also throw in the accept parameter sudo xcodebuild -license accept.
t
the Tin Man

Got stuck as I was trying to a go get ... I think it was related to git. Here is how was able to fix it ...

I entered the following in terminal: sudo xcodebuild -license This will open the agreement. Go all the way to end and type "agree".

That takes care of go get issues.

It was quite interesting how unrelated things were.


Yeah I was running git clone on a machine I hadn't used in a minute.
You can just press q to quit and agree if not inclined to read it.
M
Mr. Doomsbuster

Opening XCode and accepting the license fixes the issue.


I've just hit one after upgrading Xcode to v7.0 etc. and got weird errors considering everything was working prior to the upgrade running Android Studio. This answer worked for me.
c
codebased

You don't need to fiddle around with any command :)

Once the XCode is updated, open the Xcode IDE program. Please accept terms and conditions.

You are all set to go :))


t
the Tin Man

Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.

A new version of OSX or XCode was installed and Apple wants you to agree to their Terms and Conditions. So just launch Xcode and "Agree" to them.


It works, but may not be too apparent to users (like myself) who mainly use tools via the command line instead of the desktop. Would be good if there were some text in Terminal altering users to this.
t
the Tin Man

Follow these steps:

Open Terminal. Enter this command: sudo xcodebuild --license. Enter system password. Agree to the license.


The flag should only use one dash, i.e., sudo xcodebuild -license.
B
Benjamin

I had the same issue, after accepting the license launching XCode or running sudo xcodebuild -license accept i had to restart my Mac – otherwise it did not worked.


The restart step is crucial. I fumbled around for an hour wondering why it didn't work. I restarted and it all working. Thank you
I
Ivory Blakley

I had the same issue when I tried to use git.

It is possible to install git without it. And I doubt that gcc on mac is truly dependent on XCode. And I don't want to use root to accept something unless I'm sure I need it.

I uninstalled XCode by navigating to the applications folder and dragging XCode to the trash.

Now my git commands work as usual. I'll re-install XCode if/when I truly need it.


why would using the terminal for a git command require you to accept a license for any non-related application? Or are they related somehow?
V
Viplav Soni

I'm facing the same issue.

The issue because of X-Code.

Solution: 1. Open X-code and accept user agreement (T&C). or 2. Restart your MAC, It will resolve automatically.


Welcome to SO! There are many answers with the same solution, could you exposed the benefits of yours?
K
Kinghizzzzz

If you have similar issues in Intellij do as others said above me :

Open Terminal. Enter this command: sudo xcodebuild --license. Enter system password. Go to the end of file: Press space(button) to do that. Type 'Agree' to the license.

And you are done.!!