webentwicklung-frage-antwort-db.com.de

So prüfen Sie, ob Befehlszeilentools installiert sind

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?

79

10.10 Yosemite-Update:

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

10.9 Mavericks Update:

Verwenden Sie pkgutil --pkg-info=com.Apple.pkg.CLTools_Executables

10.8 Update:

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";
    };
}
73
jnovack

Yosemite

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

Außenseiter

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.

77
phyatt

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
17
user3476766

Auf macOS Sierra (10.12):

  1. 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
    
  2. 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
    
8
sahilabrar

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.

1
Anon

Gehen Sie zu Anwendungen> Xcode> Voreinstellungen> Downloads

Dort sollten Sie die Befehlszeilentools sehen, die Sie installieren können.

1
Bruno

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.

0
BaseZen

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
0

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.

0
P i