Ich habe ein Macbook Pro mit OS X 10.8.2 . XCode ist installiert. Ich weiß, wie es im Anwendungsverzeichnis erscheint . Es gibt auch die Dateien xcodebuild und xcode-select in /usr/bin Ich muss wissen, ob die Befehlszeilentools installiert sind . Gibt es eine Befehl dafür? Was kann ich tun, um zu sehen, ob XCode CLT installiert ist und ob ja, um die installierte Version zu finden?
Geben Sie einfach in die Befehlszeile gcc
oder make
ein! OSX weiß, dass Sie nicht über die Befehlszeilentools verfügen, und fordert Sie auf, sie zu installieren!
Um zu prüfen, ob sie vorhanden sind, wird xcode-select -p
der Rückgabewert 2
sein, wenn sie NICHT vorhanden sind, und 0
, falls sie vorhanden sind (sowie das Verzeichnis).
Verwenden Sie pkgutil --pkg-info=com.Apple.pkg.CLTools_Executables
Option 1:Rob Napier schlug vor, pkgutil --pkg-info=com.Apple.pkg.DeveloperToolsCLI
zu verwenden, was wahrscheinlich sauberer ist.
Option 2: Suchen Sie in /var/db/receipts/com.Apple.pkg.DeveloperToolsCLI.plist
nach einem Verweis auf com.Apple.pkg.DeveloperToolsCLI
und es wird die Version 4.5.0
aufgelistet.
[Mar 12 17:04] [[email protected] ~]$ defaults read /var/db/receipts/com.Apple.pkg.DeveloperToolsCLI.plist
{
InstallDate = "2012-12-26 22:45:54 +0000";
InstallPrefixPath = "/";
InstallProcessName = Xcode;
PackageFileName = "DeveloperToolsCLI.pkg";
PackageGroups = (
"com.Apple.FindSystemFiles.pkg-group",
"com.Apple.DevToolsBoth.pkg-group",
"com.Apple.DevToolsNonRelocatableShared.pkg-group"
);
PackageIdentifier = "com.Apple.pkg.DeveloperToolsCLI";
PackageVersion = "4.5.0.0.1.1249367152";
PathACLs = {
Library = "!#acl 1\\ngroup:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:delete\\n";
System = "!#acl 1\\ngroup:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:delete\\n";
};
}
Nachfolgend sind einige zusätzliche Schritte auf einem frischen Mac aufgeführt, die einige Leute möglicherweise benötigen. Dies fügt der hervorragenden Antwort von @ jnovack ein wenig hinzu.
Update: Ein paar andere Hinweise beim Einrichten:
Stellen Sie sicher, dass Ihr Admin-Benutzer ein Kennwort hat. Ein leeres Kennwort funktioniert nicht, wenn Sie versuchen, einen Root-Benutzer zu aktivieren.
System Preferences > Users and Groups > (select user) > Change password
Um root zu aktivieren, führen Sie dsenableroot
in einem Terminal aus:
$ dsenableroot
username = mac_admin_user
user password:
root password:
verify root password:
dsenableroot:: ***Successfully enabled root user.
Geben Sie das Passwort des Admin-Benutzers und dann das neue aktivierte Root-Passwort zweimal ein.
Nächster Typ:
Sudo gcc
oder
Sudo make
Es wird mit etwas wie dem folgenden antworten:
WARNING: Improper use of the Sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using Sudo. Type "man Sudo" for more information.
To proceed, enter your password, or type Ctrl-C to abort.
Password:
You have not agreed to the Xcode license agreements. You must agree to
both license agreements below in order to use Xcode.
Drücken Sie die Eingabetaste, wenn Sie dazu aufgefordert werden, die Lizenzvereinbarung anzuzeigen.
Hit the Enter key to view the license agreements at
'/Applications/Xcode.app/Contents/Resources/English.lproj/License.rtf'
IMPORTANT: BY USING THIS SOFTWARE, YOU ARE AGREEING TO BE BOUND BY THE
FOLLOWING Apple TERMS:
//...
Drücken Sie q
, um die Lizenzvereinbarungsansicht zu verlassen.
By typing 'agree' you are agreeing to the terms of the software license
agreements. Type 'print' to print them or anything else to cancel,
[agree, print, cancel]
Geben Sie agree
ein. Und dann endet es mit:
clang: error: no input files
Was im Wesentlichen bedeutet, dass Sie make
oder gcc
keine Eingabedateien gegeben haben.
So sah der Check aus:
$ xcode-select -p
/Applications/Xcode.app/Contents/Developer
Bei Mavericks ist es jetzt etwas anders.
Wenn die Werkzeuge NICHT gefunden wurden, hat dies der Befehl pkgutil
zurückgegeben:
$ pkgutil --pkg-info=com.Apple.pkg.CLTools_Executables
No receipt for 'com.Apple.pkg.CLTools_Executables' found at '/'.
Um die Kommandozeilen-Tools zu installieren, funktioniert das vom Terminal aus gut, mit einem Nice-GUI und allem.
$ xcode-select --install
http://macops.ca/installing-command-line-toolss-automatically-on-mavericks/
Wenn sie gefunden wurden, gab der Befehl pkgutil
Folgendes zurück:
$ pkgutil --pkg-info=com.Apple.pkg.CLTools_Executables
package-id: com.Apple.pkg.CLTools_Executables
version: 5.0.1.0.1.1382131676
volume: /
location: /
install-time: 1384149984
groups: com.Apple.FindSystemFiles.pkg-group com.Apple.DevToolsBoth.pkg-group com.Apple.DevToolsNonRelocatableShared.pkg-group
Dieser Befehl hat vor und nach der Installation dasselbe zurückgegeben.
$ pkgutil --pkg-info=com.Apple.pkg.DeveloperToolsCLI
No receipt for 'com.Apple.pkg.DeveloperToolsCLI' found at '/'.
Ich hatte auch schon die Komponente für das CLT ausgewählt und im Download-Bereich von xcode installiert, aber es scheint, als hätte es das Terminal nicht geschafft ...
Hoffentlich hilft das.
Um zu überprüfen, ob Befehlszeilentools installiert sind, führen Sie Folgendes aus:
xcode-select --version
// if installed you will see the below with the version found in your system
// xcode-select version 1234.
Wenn keine Befehlszeilentools installiert sind, führen Sie Folgendes aus:
xcode-select --install
Auf macOS Sierra (10.12):
Führen Sie den folgenden Befehl aus, um festzustellen, ob CLT installiert ist:
xcode-select -p
dadurch wird der Pfad zum Werkzeug zurückgegeben, wenn CLT bereits installiert ist. Etwas wie das -
/Applications/Xcode.app/Contents/Developer
Führen Sie den folgenden Befehl aus, um die Version von CLT anzuzeigen:
pkgutil --pkg-info=com.Apple.pkg.CLTools_Executables
dies gibt Versionsinformationen zurück, die Ausgabe wird in etwa so aussehen -
package-id: com.Apple.pkg.CLTools_Executables
version: 8.2.0.0.1.1480973914
volume: /
location: /
install-time: 1486372375
Aus programmatischer Sicht prüfen die Homebrew-Leute, ob verschiedene Dateien vorhanden sind, um festzustellen, ob die Befehlszeilen-Tools installiert sind . Derzeit wird immer nach /Library/Developer/CommandLineTools/usr/bin/git
gesucht, und es wird auch nach /usr/include/iconv.h
gesucht, wenn die Betriebssystemversion 10.13 oder darunter ist.
Gehen Sie zu Anwendungen> Xcode> Voreinstellungen> Downloads
Dort sollten Sie die Befehlszeilentools sehen, die Sie installieren können.
Da Xcode die CLI-Tools subsumiert, wenn sie zuerst installiert werden, verwende ich den folgenden Hybrid, der am 10.12 und 10.14 validiert wurde. Ich gehe davon aus, dass es bei vielen anderen Versionen funktioniert:
installed=$(pkgutil --pkg-info=com.Apple.pkg.CLTools_Executables 2>/dev/null || pkgutil --pkg-info=com.Apple.pkg.Xcode)
Salz mit awk
nach Geschmack für die Verzweigungslogik.
Natürlich xcode-select -p
verarbeitet die Variationen mit einem wirklich kurzen Befehl, gibt jedoch nicht die detaillierten Metadaten für Paket, Version und Installationsdatum an.
Ich denke, der einfachste Weg, der für mich funktionierte, Befehlszeilentools zu finden, ist installiert oder nicht, und seine Version ist unabhängig von der MacOS-Version
$brew config
macOS: 10.14.2-x86_64
CLT: 10.1.0.0.1.1539992718
X-Code: 10.1
Dies, wenn Sie Befehlszeilentools ordnungsgemäß installiert und die Pfade ordnungsgemäß festgelegt haben.
Früher bekam ich die Ausgabe wie unten
macOS: 10.14.2-x86_64
CLT: N/A
X-Code: 10.1
CLT wurde als n/a angezeigt, obwohl gcc und die Feinabstimmung und die Leistung unterhalb der Leistung liegen
$xcode-select -p
/Applications/Xcode.app/Contents/Developer
$pkgutil --pkg-info=com.Apple.pkg.CLTools_Executables
No receipt for 'com.Apple.pkg.CLTools_Executables' found at '/'.
$brew doctor
Your system is ready to brew.
Schließlich konnte ich mit xcode-select --install mein Problem mit brew nicht finden, das CLT für die Installation von Paketen nicht finden konnte (siehe unten).
Installing sphinx-doc dependency: python
Warning: Building python from source:
The bottle needs the Apple Command Line Tools to be installed.
You can install them, if desired, with:
xcode-select --install
Eine klare Erklärung finden Sie hier: https://derflounder.wordpress.com/2013/11/15/xcode-command-line-toolss-inkludiert-mit-xcode-5-0-x-on-mavericks/
Ich fand keine der vorhandenen Antworten hier hilfreich.