Wie kann ich feststellen, welche Version(en) von xcode-Befehlszeilentools ich habe?
Ich habe versucht zu tun
$ gcc --version
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.1.0 (clang-602.0.49) (based on LLVM 3.6.0svn)
Target: x86_64-apple-darwin14.1.0
Thread model: posix
Ist die Apple LLVM-Version dieselbe wie die Version der xcode-Befehlszeilentools?
Das Auffinden der CLI-Versionsnummer hängt von der Kombination ab, welches bestimmte Betriebssystem und welche bestimmten CLI-Tools installiert sind. Eine davon sollte funktionieren:
Auf Version 10.9 und höher (OS X Yosemite bis macOS Monterey):
pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
unter OS X 10.8 (Mountain Lion):
pkgutil --pkg-info=com.apple.pkg.DeveloperToolsCLI
pkgutil --pkgs | grep -i tools
sollte das Ausführen helfen, es zu finden.com.apple.pkg.CLTools_Executables
immer noch ein gutes Paket dafür:pkgutil --pkg-info=com.apple.pkg.CLTools_Executables | grep version version: 11.3.0.0.1.1574140115
pkgutil --pkg-info=com.apple.pkg.CLTools_Executables | grep version
==> No receipt for 'com.apple.pkg.CLTools_Executables' found at '/'.
Ideen??pkgutil --pkg-info=com.apple.pkg.DeveloperToolsCLI No receipt for 'com.apple.pkg.DeveloperToolsCLI' found at '/'.
Ich bin auf einer neuen 10.15.4-Installation, auf der ich zuerst die CLI-Tools installiert habe, bevor ich Xcode 11.4.1 installiert habe:pkgutil --pkg-info=com.apple.pkg.CLTools_Executables | grep version version: 11.4.1.0.1.1586360307
Im Terminal tun
xcodebuild -version
Wenn Sie den vollständigen Pfad von xcodebuild kennen, können Sie diesen voranstellen. In meinem Fall habe ich es getan
/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -version
Beispielausgabe:
Xcode 10.1
Build version 10B61
(angepasst von https://www.garron.me/en/bits/what-xcode-version-am-i-running.html ).
xcodebuild -version
war, was ich suchte.Für Versionen von macOS X 10.9 Mavericks und höher stellt Ihnen dieser Code die Version von Xcode und den Befehlszeilentools für Xcode bereit, sofern beide installiert sind:
# Xcode
if pkgutil --pkgs=com.apple.pkg.Xcode >/dev/null; then
echo Xcode: $(pkgutil --pkg-info=com.apple.pkg.Xcode | awk '/version:/ {print $2}')
else
echo Xcode: not installed
fi
# Command Line Tools for Xcode
if pkgutil --pkgs=com.apple.pkg.CLTools_Executables >/dev/null; then
echo CommandLineTools: $(pkgutil --pkg-info=com.apple.pkg.CLTools_Executables | awk '/version:/ {print $2}')
else
echo CommandLineTools: not installed
fi
pkgutil --pkgs=com.apple.pkg.Xcode > /dev/null
(und pkgutil --pkgs=com.apple.pkg.CLTools_Executables > /dev/null
) verwenden, um zu vermeiden, dass grep
das Ergebnis von pkgutil --pkgs
.Für moderne Versionen von xcode zeigt der Befehl xcode-select --version
die Versionsnummer der Befehlszeilentools an, unabhängig davon, ob Xcode.app installiert ist oder nicht.
Ich antworte gegen die neuere Version (wo sich die Tools tatsächlich im Xcode.app-Paket befinden), aber ich bin mir ziemlich sicher, dass, wenn der von xcode-select -p
, gcc -v
, und zurückgegebene Pfad und die Ausgabe llvm-gcc -v/clang -v
harmonisch sind, sie gleich sein sollten, dh
$ xcode-select -p
/Applications/Xcode.app/Contents/Developer
$ gcc -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.1.0 (clang-602.0.49) (based on LLVM 3.6.0svn)
Target: x86_64-apple-darwin14.3.0
Thread model: posix
$ llvm-gcc -v
Apple LLVM version 6.1.0 (clang-602.0.49) (based on LLVM 3.6.0svn)
Target: x86_64-apple-darwin14.3.0
Thread model: posix
$ clang -v
Apple LLVM version 6.1.0 (clang-602.0.49) (based on LLVM 3.6.0svn)
Target: x86_64-apple-darwin14.3.0
Thread model: posix
Beachten Sie, dass llvm-gcc ein Link zu clang ist,
$ls -al /usr/bin/llvm-gcc
lrwxr-xr-x 1 root wheel 5 Oct 19 2014 /usr/bin/llvm-gcc -> clang
Die Ausgabe von llvm-gcc -v
und clang -v
sollte also identisch sein, obwohl dies für Sie der Fall sein kann oder nicht (siehe https://stackoverflow.com/a/5708732/602581 für weitere Details) .
clang --version
zurück , während der Befehl Apple LLVM version 7.3.0 (clang-703.0.31)
von Doc G. zurückgibt .
pkgutil
version: 7.3.1.0.1.1461711523
Ich hatte sicher XCode Commandline Tools installiert, aber nicht XCode selbst.
Keine der verfügbaren Antworten, um die Version zu erhalten, funktionierte. pkgutil
hat mir das Paket der XCode-Befehlszeilentools nicht mit keinem der vorgeschlagenen Paketnamen gegeben.
Da ich XCode nicht installiert hatte (und es auch nicht benötigte), konnte ich auch nicht in den Einstellungsdialogen nachsehen.
xcode-select --version
gab mir nur die Version von xcode-select
sich selbst, ohne Hinweis auf die Version der Befehlszeilentools.
softwareupdate --list
sagte mir, dass alles auf dem neuesten Stand sei.
Ich wusste jedoch, dass meine Version veraltet sein muss, da mir der Installer für eines der Homebrew-Pakete dies mitteilte!
Wie ich schließlich herausgefunden habe, welche Version der XCode Commandline Tools installiert ist bin ich über den Befehl gestolpert:
softwareupdate --history
Was 12.3 als die letzte aktualisierte Version aufführte ...
Display Name Version Date
------------ ------- ----
Safari 14.0 04/11/2020, 12:26:12
Command Line Tools for Xcode 12.1 04/11/2020, 22:38:33
Safari 14.0.2 15/12/2020, 16:38:27
Safari 14.0.1 15/12/2020, 16:38:27
Command Line Tools for Xcode 12.3 15/12/2020, 16:38:27
macOS Big Sur 11.2.1 14/02/2021, 20:57:56
macOS Big Sur 11.2.2 11.2.2 08/03/2021, 09:02:20
Wenn Sie also sicher sind, dass die Kommandozeilen-Tools installiert sind (weil es Ihnen zum Beispiel xcode-select --install
sagt), aber keine der anderen Methoden funktioniert, überprüfen softwareupdate --history
Sie !
pkgutil --pkg-info=com.apple.pkg.CLTools_Executables | grep version
Funktioniert für Montery (OS 12.xx)
Kelvin
xcode command line tools installed version
, aber viele irrelevante Übereinstimmungen gefunden. Übrigens, hat die Antwort von Hund G. für Sie funktioniert?