¿Cómo determino qué versión(es) de las herramientas de línea de comandos de xcode tengo?
traté de hacer
$ 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
¿La versión de Apple LLVM es la misma que la versión de las herramientas de línea de comandos de xcode?
Encontrar el número de versión de CLI depende de la combinación de qué sistema operativo en particular y qué herramientas de CLI en particular están instaladas. Uno de estos debería funcionar:
En las versiones 10.9 y posteriores (OS X Yosemite a macOS Monterey):
pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
en OS X 10.8 (Mountain Lion):
pkgutil --pkg-info=com.apple.pkg.DeveloperToolsCLI
pkgutil --pkgs | grep -i tools
debería ayudar a localizarlo.com.apple.pkg.CLTools_Executables
sigue siendo un buen paquete para usar para esto: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 '/'.
Ideas??pkgutil --pkg-info=com.apple.pkg.DeveloperToolsCLI No receipt for 'com.apple.pkg.DeveloperToolsCLI' found at '/'.
estoy en una instalación nueva de 10.15.4 en la que instalé las herramientas CLI primero antes de instalar Xcode 11.4.1:pkgutil --pkg-info=com.apple.pkg.CLTools_Executables | grep version version: 11.4.1.0.1.1586360307
En la terminal hacer
xcodebuild -version
O, si conoce la ruta completa de xcodebuild, puede anteponerla. En mi caso lo hice
/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -version
salida de ejemplo:
Xcode 10.1
Build version 10B61
(adaptado de https://www.garron.me/en/bits/what-xcode-version-am-i-running.html ).
xcodebuild -version
era lo que estaba buscando.Para las versiones de macOS X 10.9 Mavericks y posteriores, este código le proporcionará la versión de Xcode y Command Line Tools para Xcode, si están instaladas:
# 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
(y pkgutil --pkgs=com.apple.pkg.CLTools_Executables > /dev/null
) para evitar tener que obtener grep
el resultado de pkgutil --pkgs
.Para las versiones modernas de xcode, el comando xcode-select --version
mostrará el número de versión de las herramientas de la línea de comandos, ya sea que Xcode.app esté instalado o no.
Estoy respondiendo en contra de la versión más reciente (donde las herramientas realmente están en el paquete Xcode.app), pero estoy bastante seguro de que si la ruta y la salida devueltas por xcode-select -p
, gcc -v
y llvm-gcc -v/clang -v
son armoniosas, entonces deberían ser las mismas, es decir
$ 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
Tenga en cuenta que llvm-gcc es un enlace a clang,
$ls -al /usr/bin/llvm-gcc
lrwxr-xr-x 1 root wheel 5 Oct 19 2014 /usr/bin/llvm-gcc -> clang
por lo tanto, la salida de llvm-gcc -v
y clang -v
debe ser idéntica, aunque ese puede ser su caso o no (consulte https://stackoverflow.com/a/5708732/602581 para obtener más detalles)
clang --version
devuelve , mientras que el comando Apple LLVM version 7.3.0 (clang-703.0.31)
del Doc G. devuelve .
pkgutil
version: 7.3.1.0.1.1461711523
Seguro que tenía instaladas las herramientas de línea de comandos XCode, pero no XCode.
Ninguna de las respuestas disponibles para hacer funcionar la versión. pkgutil
no me dio el paquete de XCode Commandline Tools, sin ninguno de los nombres de paquete sugeridos.
Al no tener XCode instalado (y no necesitarlo), tampoco pude buscar en los cuadros de diálogo de configuración de eso.
xcode-select --version
solo me dio la versión de xcode-select
sí mismo, sin tener idea de la versión de las herramientas de línea de comandos.
softwareupdate --list
me dijo que todo estaba al día.
Sin embargo, sabía que mi versión debía estar desactualizada, ya que el instalador de uno de los paquetes homebrew me lo dijo.
Cómo finalmente descubrí qué versión de XCode Commandline Tools está instalada, me topé con el comando:
softwareupdate --history
Que enumeró 12.3 como la última versión que actualizó ...
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
Entonces, cuando esté seguro de que las herramientas de la línea de comandos están instaladas (porque, por ejemplo, xcode-select --install
se lo indica) pero ninguno de los otros métodos funciona, verifique softwareupdate --history
!
pkgutil --pkg-info=com.apple.pkg.CLTools_Executables | grep version
Funciona para Montery (OS 12.xx)
Kelvin
xcode command line tools installed version
pero obtuve muchas coincidencias irrelevantes. Por cierto, ¿te funcionó la respuesta de Dog G.?