Cómo comprobar si las herramientas de línea de comandos están instaladas

103

Tengo un macbook pro con OS X 10.8.2. XCode está instalado. Sé esto tal como aparece en el directorio de aplicaciones. También están los archivos xcodebuild y xcode-select en / usr / bin. Necesito saber si las herramientas de línea de comandos están instaladas. ¿Hay algún comando para ello? ¿Qué puedo hacer para ver si XCode CLT está instalado y, en caso afirmativo, encontrar la versión instalada?

Vivek Nandavanam
fuente
La versión de XCode es 4.6
Vivek Nandavanam

Respuestas:

104

10.14 Actualización de Mojave:

Consulte la actualización de Yosemite.

10.13 Actualización de High Sierra:

Consulte la actualización de Yosemite.

10.12 Actualización de Sierra:

Consulte la actualización de Yosemite.

10.11 Actualización de El Capitan:

Consulte la actualización de Yosemite.

10.10 Actualización de Yosemite:

¡Simplemente ingrese gcco makeen la línea de comando! OSX sabrá que no tiene las herramientas de línea de comandos y le pedirá que las instale.

Para comprobar si existen, xcode-select -pimprimirá el directorio. Alternativamente, el valor de retorno será 2si NO existen y 0si existen . Para imprimir el valor de retorno ( gracias @Andy ):

xcode-select -p 1>/dev/null;echo $?

Actualización 10.9 Mavericks:

Utilizar pkgutil --pkg-info=com.apple.pkg.CLTools_Executables

Actualización 10.8:

Opción 1: Rob Napier sugirió usar pkgutil --pkg-info=com.apple.pkg.DeveloperToolsCLI, que probablemente sea más limpio.

Opción 2: Busque en el interior /var/db/receipts/com.apple.pkg.DeveloperToolsCLI.plistuna referencia com.apple.pkg.DeveloperToolsCLIy mostrará la versión 4.5.0.

[Mar 12 17:04] [jnovack@yourmom ~]$ 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";
    };
}
jnovack
fuente
1
Descubrí que al abrir xcode> Preferencias> Descargas> Componentes tenía una entrada de Herramientas de línea de comando que estaba en el estado de actualización y cuando la actualicé, muestra el estado como instalado
Vivek Nandavanam
7
En lugar de acceder al /var/db/receiptsdirectorio, puede utilizar la API para ello:pkgutil --pkg-info=com.apple.pkg.DeveloperToolsCLI
Rob Napier
8
Podría estar equivocado, pero el nombre del recibo es ahora CLTools_Executablesal menos eso es todo lo que encuentro en OS Mavericks. El comando sería entonces:pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
Chris
1
notó lo mismo que Jordan. xcode-select no devuelve un int, solo la ruta
Damon
1
Ingresé xcode-select-p, solo para obtener /Applications/Xcode.app/Contents/Developer. Qué significa eso?
estudiar
77

Yosemite

A continuación se muestran algunos pasos adicionales en una Mac nueva que algunas personas pueden necesitar. Esto se suma un poco a la excelente respuesta de @ jnovack.

Actualización: algunas otras notas al configurar esto:

Asegúrese de que su usuario administrador tenga una contraseña. Una contraseña en blanco no funcionará al intentar habilitar a un usuario root.

System Preferences > Users and Groups > (select user) > Change password

Luego, para habilitar root, ejecute dsenablerooten una terminal:

$ dsenableroot
username = mac_admin_user
user password:
root password:
verify root password:

dsenableroot:: ***Successfully enabled root user.

Escriba la contraseña del usuario administrador y luego la nueva contraseña de root habilitada dos veces.

Siguiente tipo:

sudo gcc

o

sudo make

Responderá con algo como lo siguiente:

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.

Presione enter cuando se le solicite que le muestre el acuerdo de licencia.

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:

//...

Presione qpara salir de la vista del acuerdo de licencia.

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]

Escriba agree. Y luego terminará con:

clang: error: no input files 

Que básicamente significa que usted no dio makeo gcccualquier archivo de entrada.

Así es como se veía el cheque:

$ xcode-select -p
/Applications/Xcode.app/Contents/Developer

Mavericks

Con Mavericks, ahora es un poco diferente.

Cuando NO se encontraron las herramientas, esto es lo que pkgutildevolvió el comando comando:

$ pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
No receipt for 'com.apple.pkg.CLTools_Executables' found at '/'.

Para instalar las herramientas de línea de comandos, esto funciona muy bien desde la Terminal, con una interfaz gráfica de usuario agradable y todo.

$ xcode-select --install

http://macops.ca/installing-command-line-tools-automatically-on-mavericks/

Cuando se encontraron, esto es lo que pkgutildevolvió el comando:

$ 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 

Este comando devolvió el mismo antes y después de la instalación.

$ pkgutil --pkg-info=com.apple.pkg.DeveloperToolsCLI
No receipt for 'com.apple.pkg.DeveloperToolsCLI' found at '/'.

También tenía el componente para CLT seleccionado e instalado en la sección de descargas de xcode antes, pero parece que no llegó a la terminal ...

Espero que ayude.

phyatt
fuente
¿Puede actualizar esta respuesta para los últimos sistemas operativos? Gracias.
Sparky
Llamé a sudo rm -rf / Library / Developer / CommandLineTools y luego xcode-select --install.
Oleksii Kyslytsyn
31

Para comprobar si las herramientas de línea de comandos están instaladas, ejecute:

xcode-select --version

// if installed you will see the below with the version found in your system
// xcode-select version 1234.

Si las herramientas de línea de comando no están instaladas, ejecute:

xcode-select --install
usuario3476766
fuente
1
Simple y eficaz. Podría ser la mejor respuesta.
Bryan P
12

En macOS Sierra (10.12):

  1. Ejecute el siguiente comando para ver si CLT está instalado:

    xcode-select -p

    esto devolverá la ruta a la herramienta si CLT ya está instalado. Algo como esto -

    /Applications/Xcode.app/Contents/Developer
  2. Ejecute el siguiente comando para ver la versión de CLT:

    pkgutil --pkg-info=com.apple.pkg.CLTools_Executables

    esto devolverá la información de la versión, la salida será algo como esto:

    package-id: com.apple.pkg.CLTools_Executables
    version: 8.2.0.0.1.1480973914
    volume: /
    location: /
    install-time: 1486372375
sahilabrar
fuente
8

En macOS Catalina , y posiblemente en algunas versiones anteriores, puede averiguar dónde están instaladas las herramientas de línea de comandos usando:

xcode-select -p alias xcode-select --print-path

Que, si está instalado, responderá con algo como:

/Library/Developer/CommandLineTools

Para saber qué versión ha instalado allí, puede utilizar:

xcode-select -v alias xcode-select --version

Que devolverá algo como:

xcode-select version 2370.

Sin embargo , si intenta actualizarlo a la última versión, asumiendo que está instalado, use esto:

xcode-select --install

Recibirás en respuesta:

xcode-select: error: command line tools are already installed, use "Software Update" to install updates

Lo que de forma bastante errónea da la impresión de que necesita usar Spotlight para encontrar algo llamado 'Actualización de software'. De hecho, debe continuar en la Terminal y usar esto:

softwareupdate -i -a alias softwareupdate --install --all

Que intenta actualizar todo lo que puede y bien puede responder con:

Software Update Tool

Finding available software
No new software available.

Para averiguar qué versiones de los diferentes SDK de Apple están instaladas en su máquina, use esto:

xcodebuild -showsdks

Paul F. Wood
fuente
3

Creo que la forma más sencilla que me funcionó para encontrar herramientas de línea de comandos está instalada o no y su versión independientemente de la versión de macOS

$brew config

macOS: 10.14.2-x86_64
CLT: 10.1.0.0.1.1539992718
Xcode: 10.1

Esto cuando tiene las herramientas de la línea de comandos instaladas correctamente y las rutas configuradas correctamente.

Anteriormente obtuve la salida de la siguiente manera
macOS: 10.14.2-x86_64
CLT: N / A
Xcode: 10.1

CLT se mostró como N / A a pesar de tener gcc y funciona bien y por debajo de las salidas

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

Finalmente, al hacer xcode-select --install, resolví mi problema de brebaje que no podía encontrar CLT para instalar paquetes como se muestra a continuación.

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
Jagdish Adusumalli
fuente
1

Vaya a Aplicaciones> Xcode> preferencias> descargas

Debería ver las herramientas de la línea de comandos allí para que las instale.

Bruno
fuente
0

Debido a que Xcode subsume las herramientas CLI si se instala primero, utilizo el siguiente híbrido que ha sido validado en 10.12 y 10.14. Espero que funcione en muchas otras versiones:

installed=$(pkgutil --pkg-info=com.apple.pkg.CLTools_Executables 2>/dev/null || pkgutil --pkg-info=com.apple.pkg.Xcode)

Sal awkal gusto por lógica de ramificación.

Por supuesto, xcode-select -pmaneja las variaciones con un comando realmente corto, pero no proporciona los metadatos detallados del paquete, la versión y la fecha de instalación.

BaseZen
fuente
0

Abra su terminal y verifique si ya tiene Xcode instalado con esto:

xcode-select -p

a cambio, si obtiene esto:

/Library/Developer/CommandLineTools

Eso significa que tiene Xcode instalado.

Otra forma en que puede verificar si tiene "HomeBrew" instalado, puede usar el siguiente comando para ver si tiene Xcode y la versión:

brew config

Y finalmente, si no tiene el Xcode, siga este enlace para descargar el Xcode de la Appstore. Xcode de la App Store .

Buena suerte.

ZaMy
fuente