Instalar Xcode a través de la línea de comando

27

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

Quería instalar homebrew, pero no se instaló porque no había cc en el sistema. Después de googlear, 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. ¿Cómo voy desde aquí?

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

Jeroen
fuente

Respuestas:

25

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

La descarga es un DMG. Montar eso, y encontrará un .mpkgarchivo, que se puede instalar a través de la línea de comandos : sudo installer -pkg "Command Line Tools.mpkg" -target /.

ladrones
fuente
+1 para tener en cuenta el paquete básico. +3 para la instalación desde la terminal: editaré mi respuesta un poco, ya que Xcode ya está descargado, las herramientas están allí en Xcode.app/Contents/Developer y podrían copiarse fácilmente en una ruta conveniente para su ejecución.
bmike
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 cosas solo desde la línea de comandos, este es probablemente el camino a seguir.
ladrones el
2
Creo que la última vez que lo verifiqué, las herramientas de Xcode tienen encabezados y elementos adicionales para servir al edificio de la GUI y las herramientas de línea de comandos se reducen un poco / se construyen por separado con banderas ligeramente diferentes cuando se compilan, pero también generalmente la misma versión que Xcode principal lanzamientos. En la práctica, nunca he visto que se noten las diferencias y mucho menos que importen. AFAIK, Xcode despliega 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.
bmike
Yay funcionó. Acabo de instalar brew. Hay un error tipográfico en su publicación, debería leer en sudo installerlugar de sudo install.
Jeroen
@Jeroen gracias por eso, arreglado. No estoy seguro de cómo me lo perdí.
ladrones
10

Recientemente tuve que instalar las herramientas de línea de comandos Xcode en Mountain Lion sobre 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 manera segura el archivo de 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. montar 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. instale 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 ningún propósito mantenerlo cerca, pero puedes hacerlo si quieres.

    $ rm ~/Downloads/command_line_tools_for_osx_mountain_lion_april_2014.dmg
Gracias
fuente
adcdownload.apple.com/Developer_Tools/Xcode_8.3/Xcode_8.3.xip ya no es un .dmg. stackoverflow.com/a/39489446/18096 explica cómo romper esa tuerca.
Martin Dorey
4

Esto es bastante viejo, pero para cualquier persona que viene por esto, no es un simple, integrada, de una sola línea a instalar las herramientas de línea de comandos sin la necesidad de descargar ninguna .dmgo .pkgs. Esto está disponible incluso en una nueva instalación 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 Xcode 3.0 existía (OS X 10.5).

janka102
fuente
1
No veo el interruptor de instalación en xcode-select versión 2311, página de manual del 16 de noviembre de 2011, Mac OS X 10.8.5.
Martin Dorey
Tampoco lo hago en xcode-select versión 2349, página del manual del 8 de marzo de 2016.
user44400
1

Todas las herramientas que necesita están en Xcode.app/Contents/Developer y si tiene esa carpeta, habrá terminado de instalar ya que las aplicaciones de OS X pueden ejecutarse desde cualquier lugar.

Si desea usar 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 la gente mueve la carpeta Xcode.app a / Aplicaciones (o ~ / Aplicaciones) para "instalarla"

Ah, cuando inicie Xcode, querrá abrir las preferencias, vaya al panel Descargas e instale 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 makelocalizar la ruta a las herramientas en relación con el lugar donde soltó la carpeta Xcode.app.

bmike
fuente
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 conéctese a través de VNC y hágalo usted mismo)
nohillside
1

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 un terminal (incluso ssh) y el instalador no muestra una UI-Pop-Window , lo que me impide usarlo con un terminal remoto.

Probado con Homebrew versión 2.1.10 (git revision b7d38f; última confirmación 2019-08-12).

Para mí, esos pasos fueron mucho más fáciles, luego descargar el paquete dmg de apple y copiarlo por 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
...
KargWare
fuente
-1

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, elimine un XCODE anterior

rm /Applications/Xcode.app causa problemas inesperados

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 la consola (NO ROOT)

casibbald
fuente
¿Cómo puedes ejecutar esto a través de ssh? Además, ¿cómo es esto mejor que las herramientas de desarrollador de línea de comandos solamente?
user151019
Hola Mark, tenemos un requisito específico para tener la instalación completa de xcode en su lugar. ssh user @ hostname "onascript <ruta / a / archivo> /myscript.scpt
casibbald