Instalación de Xcode a través de la línea de comandos

Soy un usuario de Linux y nunca antes había usado OSX. Alguien me pidió ayuda para instalar un software en un servidor OSX "Lion". Le pedí que me diera un shell SSH, suponiendo que sería suficiente. Sin embargo, las cosas son más complicadas de lo que pensaba.

Quería instalar homebrew, pero no se instaló porque no había cc en el sistema. Después de un poco de google, supongo que necesito instalar Xcode. Acabo de descargar xcode 4.5 del sitio de desarrolladores de Apple y lo monté en el sistema. Contiene un directorio Xcode.appcon un montón de cosas en él. ¿Cómo me voy de aquí?

¿Puedo instalar Xcode sin acceso físico a la máquina? Todo lo que realmente quiero es hacer que homebrew funcione en este punto.

Respuestas (8)

Es posible que sea mejor que simplemente instale las Herramientas de línea de comandos del desarrollador independientes (que incluyen gccy otros elementos estándar de la cadena de herramientas del desarrollador). Puede obtenerlo de Descargas para desarrolladores de Apple (que requiere una cuenta de desarrollador gratuita). Desafortunadamente, no hay un enlace directo, solo busque herramientas de línea de comandos y las encontrará (tenga en cuenta que hay diferentes descargas para Lion y Mountain Lion).

La descarga es un DMG. Móntelo y encontrará un .mpkgarchivo que puede instalar a través de la línea de comando : sudo installer -pkg "Command Line Tools.mpkg" -target /.

+1 por tener en cuenta el paquete básico. +3 para instalar desde la terminal: editaré un poco mi respuesta, ya que Xcode ya está descargado, las herramientas están en Xcode.app/Contents/Developer y se pueden copiar fácilmente en una ruta conveniente para ejecutar.
Sí, estoy seguro de cómo/si las herramientas incluidas en el paquete Xcode difieren de la descarga independiente. Presumiblemente algo diferente dado que Xcode también tiene la opción de herramientas de descarga. En cualquier caso, si está comenzando desde cero y quiere una instalación "limpia" haciendo las cosas solo desde la línea de comandos, este es probablemente el camino a seguir.
Creo que la última vez que revisé, las herramientas de Xcode tienen encabezados adicionales y cosas para servir a la construcción de la GUI y las herramientas de la línea de comandos se simplificaron un poco/construyeron por separado con banderas ligeramente diferentes cuando se compilaron, pero también en general la misma versión que Xcode principal comunicados En la práctica, nunca he visto que las diferencias se noten y mucho menos importen. AFAIK, Xcode extrae el paquete que mencionó y lo instala para que tenga ambos: la versión xcrun del conjunto de herramientas y la versión /usr/bin del conjunto de herramientas.
Sí, funcionó. Acabo de instalar brew. Hay un error tipográfico en su publicación, debería decir sudo installeren lugar de sudo install.
@Jeroen gracias por eso, arreglado. No estoy seguro de cómo me lo perdí.

Recientemente tuve que instalar las herramientas de línea de comandos de Xcode en Mountain Lion a través de SSH. Así es como lo hice.

  1. Si no tiene una cuenta de desarrollador de Apple gratuita, regístrese para obtener una

  2. Inicie sesión en https://developer.apple.com/downloads

  3. Descargue las "Herramientas de línea de comandos para Xcode" apropiadas para su versión de OSX

    Para mí, eso fue "Herramientas de línea de comandos (OS X Mountain Lion) para Xcode - abril de 2014"

  4. Copie el archivo dmg a su control remoto

    En el siguiente comando, estoy usando scp para copiar de forma segura el archivo desde mi computadora local al control remoto llamadoremote

    $ scp ~/Downloads/command_line_tools_for_osx_mountain_lion_april_2014.dmg remote:Downloads/
    
  5. ssh a tu control remoto

    $ ssh remote
    
  6. monte el archivo dmg en el control remoto

    Aquí, estoy usando hdiutil para montar la imagen .

    $ hdiutil attach ~/Downloads/command_line_tools_for_osx_mountain_lion_april_2014.dmg
    
  7. instalar el paquete contenido en el dmg

    Aquí, el instalador debe ejecutarse sudoporque este paquete debe instalarse en el sistema de archivos raíz

    $ cd /Volumes/Command\ Line\ Tools\ \(Mountain\ Lion\)
    $ sudo installer -pkg Command\ Line\ Tools\ \(Mountain\ Lion\).mpkg -target /
    
  8. desmontar el archivo dmg

    $ hdiutil detach /Volumes/Command\ Line\ Tools\ \(Mountain\ Lion\)
    
  9. elimine el archivo dmg del control remoto; Opcional

    No veo el propósito de mantenerlo cerca, pero puedes hacerlo si quieres.

    $ rm ~/Downloads/command_line_tools_for_osx_mountain_lion_april_2014.dmg
    

Esto es bastante antiguo, pero para cualquiera que lo conozca, hay un simple, integrado, de una sola línea para instalar las herramientas de línea de comandos sin la necesidad de descargar ninguno .dmgo .pkgs. Esto está disponible incluso en una instalación nueva de macOS.

El comando es:

xcode-select --install

Según la manpágina:

Opens a user interface dialog to request automatic installation of the command line developer tools.

Parece haber estado disponible desde que existió Xcode 3.0 (OS X 10.5).

No veo el interruptor --install en xcode-select versión 2311, página del manual del 16 de noviembre de 2011, Mac OS X 10.8.5.
Yo tampoco en xcode-select versión 2349, página man del 8 de marzo de 2016.
está allí en la salida de xcode-select --help(versión 2384)

Respuesta de 2018: hay xcode-install vom KrauseFX https://github.com/KrauseFx/xcode-install

Descubrí que Homebrew también instala las herramientas de línea de comandos de Xcode .

El gran beneficio para mí es que puedo hacerlo desde una terminal (incluso ssh) y el instalador no muestra una UI-Pop-Window , lo que me impide usarla con una terminal remota.

Probado con Homebrew versión 2.1.10 (revisión de git b7d38f; último compromiso 2019-08-12).

Para mí, esos pasos fueron mucho más fáciles, luego descargar el paquete dmg de Apple y copiarlo mediante ssh en la máquina de destino.

El comando del instalador generará (copiado del sitio web)

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

la siguiente salida:

==> This script will install:
/usr/local/bin/brew
/usr/local/share/doc/homebrew
/usr/local/share/man/man1/brew.1
/usr/local/share/zsh/site-functions/_brew
/usr/local/etc/bash_completion.d/brew
/usr/local/Homebrew
==> The following new directories will be created:
/usr/local/bin
/usr/local/etc
/usr/local/include
/usr/local/lib
/usr/local/sbin
/usr/local/share
/usr/local/var
/usr/local/opt
/usr/local/share/zsh
/usr/local/share/zsh/site-functions
/usr/local/var/homebrew
/usr/local/var/homebrew/linked
/usr/local/Cellar
/usr/local/Caskroom
/usr/local/Homebrew
/usr/local/Frameworks
==> The Xcode Command Line Tools will be installed.

y

...
Downloading Command Line Tools (macOS Mojave version 10.14) for Xcode
Downloaded Command Line Tools (macOS Mojave version 10.14) for Xcode
Installing Command Line Tools (macOS Mojave version 10.14) for Xcode
Done with Command Line Tools (macOS Mojave version 10.14) for Xcode
...
En realidad, el comando no descargó las herramientas CLI...
# Install Command-line tools as dependency for Homebrew
xcode-select --install # Sets the development directory path to /Library/Developer/CommandLineTools

# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install Mas (command-line interface for Mac App Store)
brew install mas

# Search for Xcode showing only the first 5 results
mas search xcode | head -5
# Install Xcode using App ID
mas install 497799835 # The appid for Xcode shown when doing search

sudo xcode-select -r  # Reset the development directory path to put to Xcode /Applications/Xcode.app/Contents/Developer

#sudo xcodebuild -license

# Updaate all Apple software and auto agree to any licenses and restart if necessary
sudo softwareupdate --install --agree-to-license -aR
¿Cómo responde esto a la pregunta anterior?
Vaya. Esto casi funcionó... Obtuve Volver a descargar no disponible con esta ID de Apple
@Richard Lalancette, ¿ya tenía instalado Xcode? ¿Sabes qué causó el error?
No lo tenia instalado. Creo que la seguridad de la computadora portátil me obligó a descargar manualmente desde apple.developer.com
¡Una forma genial de instalar independientemente!
no funcionó XD no puedo instalar una versión anterior de xcode, pero esto abre una nueva perspectiva XD

Las herramientas que necesita están todas en Xcode.app/Contents/Developer y, si tiene esa carpeta, ya terminó la instalación, ya que las aplicaciones de OS X pueden ejecutarse desde cualquier lugar.

Si desea utilizar Xcode, simplemente haga clic en el icono o en open -ala ruta a la carpeta Xcode.app e iniciará la aplicación. La mayoría de las personas mueven la carpeta Xcode.app a /Aplicaciones (o ~/Aplicaciones) para "instalarlo"

Ah, cuando inicie Xcode, querrá abrir las preferencias, ir al panel Descargas e instalar las herramientas de línea de comandos independientes. Esto coloca la cadena de herramientas de compilación en /usr/bin para que no tenga que usar xcrun --find gccy xcrun --find makeubicar la ruta a las herramientas en relación con el lugar donde soltó la carpeta Xcode.app.

Sin embargo, también se necesitan utilidades de línea de comandos para que homebrew funcione. Probablemente sea más fácil pedirle al propietario del sistema OS X que instale las cosas por usted (o conectarse a través de VNC y hacerlo usted mismo)

MONTAJE XCODE DMG

tell application "Finder" to open ("Macintosh HD")
tell application "Finder"
    activate
    set target of Finder window 1 to folder "Downloads" of folder "vagrant" of folder "Users" of startup disk
    open document file "{{ osx_xcode_file }}" of folder "Downloads" of folder "vagrant" of folder "Users" of startup disk
end tell

Reemplace Xcode "{{ osx_xcode_file }}" con la versión/nombre de archivo que ha descargado.

Instalar XCODE

tell application "Finder"
    activate "Xcode"
    with timeout of 1000000 seconds
        copy file "Xcode:Xcode.app" to folder "Macintosh HD:Applications"
    end timeout
end tell

Opcionalmente Eliminar un XCODE anterior

rm /Applications/Xcode.app causa problemas imprevistos

tell application "Finder"
    activate "Applications"
    considering case
        with timeout of 1000000 seconds
            set sourceFolder to POSIX file "/Applications/Xcode.app"
            try
                delete sourceFolder
            on error errorMessage number errorNumber
                set _error to errorMessage
                set _errorNum to errorNumber
            end try
        end timeout
    end considering
end tell

Guarde cada archivo como scriptname.scpt

ejecutar: /usr/bin/osascript scriptname.scpt Ejecutar como usuario de consola (NO ROOT)

¿Cómo se puede ejecutar esto a través de ssh? Además, ¿cómo es esto mejor que las herramientas de desarrollo de la línea de comandos?
Hola Mark, tenemos un requisito específico para tener la instalación completa de xcode en su lugar. ssh usuario@nombre de host "onascript <ruta/al/archivo>/myscript.scpt