xcrun: error: invalid active developer path: how to fix
A veces se produce un error como el anterior al escribir comandos de línea de comandos en Mac OS. La solución es sencilla. Lo que necesitas saber es por qué se produce el error, y si estás estudiando desarrollo, te recomiendo que leas la sección de causas antes de seguir adelante.
1. Solución
Empecemos con la solución.
Escribe lo siguiente en tu terminal y pulsa Enter.
xcode-select --install
En la ventana que se abre, haga clic en el botón Instalar.
Finalmente, pulse el botón OK en la ventana de licencia y la instalación procederá. Una vez finalizada la instalación, escriba el mismo comando y se ejecutará sin errores.
2. Causa
Ahora que hemos solucionado el error, veamos por qué se produce. Empezando por el error en sí, esto es lo que parece.
$ python3
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
He escrito el comando python3
, pero el mensaje de error dice que no existe xcrun
. ¿De dónde viene xcrun
?
2.1. xcrun
manpagez lo explica así: (opens in a new tab)
Para que te hagas una idea, lo que hace xcrun
es ejecutar la versión de Python que usa Xcode de entre las muchas Python instaladas en mi máquina, o la que viene con las
CommandLineTools para ejecutar la versión de Python instalada en mi máquina.
La versión que ejecuta xcrun
es la que Mac OS piensa que es mejor para nuestro sistema operativo en este momento.
Por supuesto, tus pensamientos triunfan sobre los del sistema.
Así que xcrun se ejecuta después de haber explorado todo el PATH
s.
Para aquellos que no lo sepan, vale la pena explicar la relación entre los comandos CLI y el PATH
.
2.2. CLI y PATH
Los programas que se ejecutan desde la CLI, como el intérprete de Python, pueden existir en cualquier lugar de tu ordenador.
Puede estar en /opt/homebrew/bin/python3
, o puede estar en /usr/bin/python3
.
Para ejecutar este programa, necesitamos entrar en el directorio de nivel superior que empieza por /
.
El PATH
es lo que permite omitir estas direcciones de directorio prefijadas.
Si especifica el directorio deseado en el PATH
, el ordenador encontrará y ejecutará automáticamente el ejecutable python3
en esa carpeta.
El PATH
de mi ordenador se puede encontrar con el siguiente comando.
echo $PATH
Deberías ver múltiples rutas de salida, como se muestra a continuación.
Irá al principio de los múltiples PATH
s que imprime, y si el ejecutable python3
existe, lo ejecutará, y si no existe al final, imprimirá un mensaje diciendo que no fue encontrado.
Para verificar el mensaje, vamos a ejecutar python4
, que no existe en la máquina.
Lo que hace xcrun
es encontrar todos los PATH
s anteriores y luego ejecutarlos para encontrar y ejecutar el ejecutable python3
que está instalado para el SO y Xcode.
2.3. Actualización Mac OS
Las actualizaciones de CommandLineTools y Mac OS están estrechamente relacionadas, ya que el propio CommandLineTools, del que forma parte xcrun
, es un conjunto de aplicaciones optimizadas para Mac OS.
A veces, las actualizaciones de Mac OS incluyen actualizaciones para CommandLineTools.
Esto crea un error que hace que las actualizaciones de Mac OS confundan o incluso restablezcan la configuración del directorio para xcrun
.
La solución anterior funciona para revertir las rutas dañadas o reparar programas que se inicializaron con una instalación limpia de CommandLineTools. La solución es simple, pero fue divertido buscar xcrun y aprender más sobre cómo funciona el Mac OS.
