0 votos

¿Cómo eliminar las herramientas de línea de comandos manteniendo Xcode?

Recientemente he adquirido un nuevo Mac y actualmente estoy en proceso de configurarlo como máquina de desarrollo.

Antes de instalar Xcode me adelanté e instalé:

  • Texto Sublime
  • Fusión sublime

Mientras configuraba Sublime Merge se me pidió que instalara el programa Herramientas de línea de comandos de Xcode ( Macintosh HD -> Library -> Developer -> Command Line Tools ).

Seguí adelante e hice eso, y fui capaz de configurar con éxito mis repos en Sublime Merge.

Luego instalé Xcode, que viene con las herramientas de línea de comandos en su propio paquete ( Applications -> Xcode -> Contents -> Developer ).

Justo después de instalar Xcode vi que en Actualización de Software tenía una actualización de las Herramientas de Línea de Comandos y así lo realicé.

Me estoy esforzando por tener una configuración limpia y me preguntaba si ahora tengo copias redundantes de las herramientas de línea de comandos, en caso afirmativo, ¿cómo puedo (o tengo que) deshacerme de las herramientas viejas de forma segura?

2voto

notgoodatdns Puntos 16

Xcode.app proporciona un conjunto de herramientas de línea de comandos. La aplicación independiente 'Xcode Command Line Tools' proporciona otro conjunto. Puede alternar entre ellas (véase xcode-select --help ).

git , gcc y muchos comandos en /usr/bin/ es en realidad un puente hacia el ejecutable real del CLT seleccionado.

CLT independiente es casi innecesario si tienes Xcode.app instalado. Usted puede simplemente basura /Library/Developer/CommandLineTools para quitarlo.

En mi caso instaló estos pkg ( pkgutil --pkgs antes y después de la instalación)

com.apple.pkg.DevSDK_macOS1013_Public
com.apple.pkg.CLTools_Executables
com.apple.pkg.DevSDK
com.apple.pkg.CLTools_SDK_macOSSDK
com.apple.pkg.macOS_SDK_headers_for_macOS_10.14
com.apple.pkg.DevSDK_OSX109
com.apple.pkg.CLTools_SDK_macOS1013
com.apple.pkg.CLTools_SDK_macOS1014
com.apple.pkg.DevSDK_OSX1012
com.apple.pkg.DevSDK_OSX1011
com.apple.pkg.DevSDK_OSX1010

Puede utilizar pkgutil --files <pkg_name> para ver los archivos instalados. Están en /tmp o /Library/Developer/CommandLineTools .


Sin embargo,

  • brew a veces requiere que instale CLT independiente incluso si tiene Xcode.app instalado, a saber python . Dicen que algunas botellas (pre-construidos) están vinculados contra el CLT independiente.

  • brew también requiere CLT independiente cuando quiero construir algo en el sistema no actual (Mojave después de Catalina liberado).

Por supuesto, puedes arriesgarte y editar la fórmula o la propia infusión para evitarlo.

brew edit python

  # setuptools remembers the build flags python is built with and uses them to                                          
  # build packages later. Xcode-only systems need different flags.                                                      
  pour_bottle? do
    reason <<~EOS                                                                                                       
      The bottle needs the Apple Command Line Tools to be installed.                                                    
        You can install them, if desired, with:                                                                         
          xcode-select --install                                                                                        
    EOS                                                                                                                 
    satisfy { MacOS::CLT.installed? } # comment this out
  end

/usr/local/Homebrew/Library/Homebrew/os/mac/xcode.rb:

      def needs_clt_installed?
        return false # <- add this
        return false if latest_sdk_version?

        without_clt?
      end

0 votos

Gracias por su exhaustiva y detallada respuesta, esto aclara bastante las cosas.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X