Eliminé las herramientas de línea de comandos de Xcode de mi máquina simplemente eliminando la carpeta. Sin embargo, AppStore todavía muestra actualizaciones de las herramientas CLI, lo que obviamente no quiero.
He estado tratando de entender correctamente dónde busca AppStore para averiguar qué necesita actualizarse, pero aún no he podido encontrar una respuesta determinada. Intenté editar el archivo updatejournal, pero eso no ayudó, así que lo restauré desde entonces.
Empecé a sospechar que el hecho de que pkgutil
muestre algunos CLTools
paquetes podría ser la causa de esto. Sin embargo, olvidarlos no funciona ya que los bom no están ni en /var/db/receipts
o /Library/Receipts
( pkgutil --forget
esencialmente falla debido a esto).
Sin embargo, los encontré después de mucho buscar en /System/Library/Receipts
. Sin embargo, aquellos que no puedo eliminar debido a la seguridad del sistema. Por supuesto, puedo omitir eso y eliminarlos para ver si funciona, pero no quiero hacer eso "solo para ver".
Me gustaría encontrar una solución adecuada a esto.
¿Alguna idea de lo que debería hacer aquí?
Logré arreglarlo, parece que lo sospechaba, el problema eran los boms en la /System/Library/Receipts
carpeta.
Así que inicié el modo de recuperación, deshabilité SIP, moví todos los archivos de esa carpeta que tenían com.apple.pkg.CLTools*
en su nombre y la actualización en la App Store desapareció. Luego reinicié la recuperación nuevamente para habilitar SIP.
No se siente muy bien desactivar la seguridad, pero lo intenté en este caso, ya que otros problemas similares parecían estar relacionados con archivos bom persistentes, por lo que tal vez tenga sentido.
/System
uso de ese sistema operativo.com.apple.pkg.CLTools*
archivos ofensivos en /Library/Apple/System/Library/Receipts
, pero aparte de eso, fue como se describe en esta respuesta. +1Hay 2 pasos para una eliminación limpia
xcode-seleccionar -r
Explicación: cuando se instalan las herramientas de línea de comandos, la ruta para las herramientas de línea de comandos se establece en "/Library/Developer/CommandLineTools". Esto se puede comprobar ejecutando
xcode-seleccionar -p
Incluso si eliminamos el directorio, el sistema irá y verificará allí. Una vez que restablece la ruta y ejecuta xcode-select -p, da un error
xcode-select: error: no se puede obtener el directorio de desarrolladores activo, use
sudo xcode-select --switch path/to/Xcode.app
para configurar uno (o verman xcode-select
) Esto lo llevaría al estado inicial.
Ejecutar cualquier comando, diga "python3 --version" sin restablecer la ruta daría:
error: la herramienta 'python3' requiere Xcode, pero el directorio de desarrollador activo '/Library/Developer/CommandLineTools' es una instancia de herramientas de línea de comandos
y una vez que restablezca la ruta, se le pedirá que instale las herramientas de línea de comando junto con:
xcode-select: nota: no se encontraron herramientas de desarrollador en '/Applications/Xcode.app', solicitando la instalación. Elija una opción en el cuadro de diálogo para descargar las herramientas de desarrollo de la línea de comandos.
Elimine esta carpeta y su dolor de cabeza desaparecerá para siempre:
/Biblioteca/Developer/CommandLineTools
Acabo de pasar horas en este problema exacto y FINALMENTE LO DESCUBIERTO, para cualquiera que lea esto en el futuro.
Eliminar /Library/Developer/CommandLineTools no funcionó.
xcode-select -r no funcionó.
No había recibos ni boms en los lugares habituales (/var/db/receipts, /Library/Receipts y /System/Library/Receipts).
¿Sabes lo que era? Los recibos estaban en /Library/Apple/System/Library/Receipts. Se eliminó todo con CLTools o SDK en el nombre y desapareció la actualización del sistema para CLT. GRACIAS AL SEÑOR. No estoy seguro de si era necesario deshabilitar SIP para esto o no (lo tenía deshabilitado).
Mi macOS Mojave reinstalado tenía exactamente el mismo problema. Instalé Xcode y CLT, luego salieron 6 o 7 actualizaciones de CLT de System Update, lo que me sugirió que instalara la versión anterior de CLT.
Luego eliminé esta carpeta /Library/Developer/CommandLineTools
, reinicié, todas las actualizaciones desaparecieron.
No quité las cosas del recibo.
Gracias Alex , esta era exactamente la información que necesitaba.
En una configuración de Mac bastante reciente (chip Apple Silicon, macOS 12.0 Monterey Beta), después de haber instalado las herramientas de línea de comandos y luego haberlas desinstalado borrándolas /Library/Developer/CommandLineTools
y ejecutándolas sudo xcode-select -r
, seguía recibiendo actualizaciones de las herramientas en Preferencias del sistema > Actualización de software.
Efectivamente, los recibos están en /Library/Apple/System/Library/Receipts
, en forma de archivos
com.apple.pkg.CLTools_Executables.{bom,plist}
com.apple.pkg.CLTools_SDK_macOS*.{bom,plist}
com.apple.pkg.CLTools_macOS_SDK.{bom,plist}
Están protegidos por SIP: para eliminarlos, primero tuve que deshabilitar SIP (es decir, deshabilitar SIP, eliminar los archivos, volver a habilitar SIP).
Tras probar en macOS 12.4, Actualización de software en Preferencias del sistema tiene el plist y el bom almacenados en /Library/Apple/System como volumen de paquetes de instalación. El proceso para eliminarlos:
la línea de comando:
Vol="/Library/Apple/System"; if [ "$(csrutil status | awk -F': ' '{print $2}')" = "disabled." ]; then /usr/sbin/pkgutil --pkgs="com.apple.pkg.CLTools_.*" --volume "$Vol" | while read -r pkg; do sudo /usr/sbin/pkgutil --forget "$pkg" --volume "$Vol"; done; else echo "After disbale SIP, run this command again, and then enable SIP."; fi
explicación simple: si SIP está deshabilitado, lee todos los ID del paquete com.apple.pkg.CLTools_* y los elimina uno por uno asignando la ruta de volumen a "/Library/Apple/System".
Siguiendo lo dicho por TonyL. compartido, actualmente puede (a partir de macOS Ventura) olvidar cualquier paquete al:
sudo pkgutil --forget _ANY_PACKAGE --volume "/Library/Apple/System"
sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install
bmike
Kenny Lovrin
bmike