Installation de Xcode via la ligne de commande

27

Je suis un utilisateur Linux et je n'ai jamais utilisé OSX auparavant. Quelqu'un m'a demandé de l'aide pour installer des logiciels sur un serveur OSX "Lion". Je lui ai demandé de me donner un shell SSH, en supposant que ce serait suffisant. Cependant, les choses sont plus délicates que je ne le pensais.

Je voulais installer homebrew, mais il ne l'a pas installé car il n'y avait pas de cc sur le système. Après quelques recherches sur Google, je suppose que je dois installer Xcode. Je viens de télécharger xcode 4.5 sur le site du développeur Apple et de le monter sur le système. Il contient un répertoire Xcode.appcontenant un tas de choses. Comment je vais partir d'ici?

Puis-je installer Xcode sans accès physique à la machine? Tout ce que je veux vraiment, c'est faire fonctionner l'homebrew à ce stade.

Jeroen
la source

Réponses:

25

Il serait peut-être préférable d'installer simplement les outils de ligne de commande de développeur autonomes (qui incluent gccet d'autres éléments de la chaîne d'outils de développeur standard). Vous pouvez l'obtenir à partir des téléchargements pour développeurs d' Apple (qui nécessite un compte de développeur gratuit). Malheureusement, il n'y a pas de lien direct, mais recherchez simplement des outils de ligne de commande et vous le trouverez (notez qu'il existe différents téléchargements pour Lion et Mountain Lion).

Le téléchargement est un DMG. Montez, et vous trouverez un .mpkgfichier, que vous pouvez installer via la ligne de commande : sudo installer -pkg "Command Line Tools.mpkg" -target /.

robmathers
la source
+1 pour garder à l'esprit le paquet nu. +3 pour l'installation à partir du terminal - je vais éditer ma réponse un peu car Xcode est déjà téléchargé, les outils sont là dans Xcode.app/Contents/Developer et pourraient facilement être copiés vers un chemin pratique pour l'exécution.
bmike
Oui, je suis sûr que les outils inclus dans le package Xcode diffèrent du téléchargement autonome. Vraisemblablement quelque peu différent étant donné que Xcode a également l'option des outils de téléchargement. Dans tous les cas, si vous partez de zéro et que vous souhaitez une installation "propre" en faisant uniquement des choses à partir de la ligne de commande, c'est probablement la voie à suivre.
robmathers
2
Je crois que la dernière fois que j'ai vérifié, les outils Xcode ont des en-têtes et des choses supplémentaires pour servir le bâtiment GUI et les outils de ligne de commande sont supprimés un peu / construits séparément avec des drapeaux légèrement différents lors de la compilation, mais aussi généralement la même version que les principaux Xcode versions. En pratique, je n'ai jamais vu les différences se faire remarquer et encore moins compter. AFAIK, Xcode extrait le package que vous avez mentionné et l'installe pour que vous ayez les deux - la version xcrun du jeu d'outils et la version / usr / bin du jeu d'outils.
bmike
Ouais ça a marché. Je viens d'installer une infusion. Il y a une faute de frappe dans votre message, elle devrait être lue à la sudo installerplace de sudo install.
Jeroen
@Jeroen merci pour cela, corrigé. Je ne sais pas comment je l'ai raté.
robmathers
10

J'ai récemment dû installer des outils de ligne de commande Xcode sur Mountain Lion sur SSH. Voici comment je l'ai fait.

  1. Si vous ne possédez pas de compte développeur Apple gratuit, inscrivez-vous en un

  2. Connectez-vous à https://developer.apple.com/downloads

  3. Téléchargez les "Outils de ligne de commande pour Xcode" appropriés à votre version d'OSX

    Pour moi, c'était "Outils de ligne de commande (OS X Mountain Lion) pour Xcode - avril 2014"

  4. Copiez le fichier dmg sur votre télécommande

    Dans la commande suivante, j'utilise scp pour copier en toute sécurité le fichier de mon ordinateur local vers la télécommande nomméeremote

    $ scp ~/Downloads/command_line_tools_for_osx_mountain_lion_april_2014.dmg remote:Downloads/
  5. ssh à votre télécommande

    $ ssh remote
  6. monter le fichier dmg sur la télécommande

    Ici, j'utilise hdiutil pour monter l'image

    $ hdiutil attach ~/Downloads/command_line_tools_for_osx_mountain_lion_april_2014.dmg
  7. installez le paquet contenu dans le dmg

    Ici, le programme d' installation doit être exécuté avec sudocar ce package doit être installé sur le système de fichiers racine

    $ cd /Volumes/Command\ Line\ Tools\ \(Mountain\ Lion\)
    $ sudo installer -pkg Command\ Line\ Tools\ \(Mountain\ Lion\).mpkg -target /
    
  8. démonter le fichier dmg

    $ hdiutil detach /Volumes/Command\ Line\ Tools\ \(Mountain\ Lion\)
  9. supprimez le fichier dmg de la télécommande; optionnel

    Je ne vois aucun intérêt à le garder, mais vous pouvez si vous le souhaitez.

    $ rm ~/Downloads/command_line_tools_for_osx_mountain_lion_april_2014.dmg
Merci
la source
adcdownload.apple.com/Developer_Tools/Xcode_8.3/Xcode_8.3.xip n'est plus un .dmg. stackoverflow.com/a/39489446/18096 explique comment casser cet écrou.
Martin Dorey
4

C'est assez vieux, mais pour tous ceux qui viennent par là, il y a un simple, intégré, à une ligne pour installer les outils de ligne de commande sans avoir besoin de télécharger aucun .dmgou .pkgs. Ceci est disponible même sur une nouvelle installation de macOS.

La commande est:

xcode-select --install

Selon la manpage:

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

Il semble avoir été disponible depuis Xcode 3.0 (OS X 10.5).

janka102
la source
1
Je ne vois aucun commutateur --install dans la version 2311 de xcode-select, page de manuel du 16 novembre 2011, Mac OS X 10.8.5.
Martin Dorey
Moi non plus dans la version 2349 de xcode-select, page de manuel du 8 mars 2016.
user44400
1

Les outils dont vous avez besoin sont tous dans Xcode.app/Contents/Developer et si vous avez ce dossier, vous avez terminé l'installation car les applications OS X peuvent s'exécuter n'importe où.

Si vous souhaitez utiliser Xcode, cliquez simplement sur l'icône ou open -ale chemin d'accès au dossier Xcode.app et vous lancerez l'application. La plupart des gens déplacent le dossier Xcode.app dans / Applications (ou ~ / Applications) pour "l'installer"

Oh - lorsque vous lancez Xcode, vous voudrez ouvrir les préférences, allez dans le volet Téléchargements et installez les outils de ligne de commande autonomes. Cela place la chaîne d'outils de compilation dans / usr / bin afin que vous n'ayez pas à utiliser xcrun --find gccet xcrun --find makeà localiser le chemin d'accès aux outils par rapport à l'endroit où vous avez déposé le dossier Xcode.app.

bmike
la source
Néanmoins, les utilitaires de ligne de commande sont également nécessaires pour que les homebrews fonctionnent. Il est probablement plus facile de demander au propriétaire du système OS X d'installer le matériel pour vous (ou de vous connecter via VNC et de le faire vous-même)
nohillside
1

J'ai découvert que Homebrew installe également les outils de ligne de commande Xcode .

Le gros avantage est pour moi que je peux le faire à partir d'un terminal (même ssh) et que l'installateur n'affiche pas de fenêtre UI-Pop , ce qui m'empêche de l'utiliser avec un terminal distant.

Testé avec Homebrew version 2.1.10 (révision git b7d38f; dernière validation 2019-08-12).

Pour moi, les étapes ont été beaucoup plus faciles, puis télécharger le package dmg à partir d'Apple et le copier par ssh sur la machine cible.

La commande d'installation générera (copiée à partir du site Web)

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

la sortie suivante:

==> 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.

et

...
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
la source
-1

MOUNT 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

Remplacez Xcode "{{osx_xcode_file}}" par la version / le nom de fichier que vous avez téléchargé.

Installer 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

Supprimer éventuellement un XCODE précédent

rm /Applications/Xcode.app provoque des problèmes imprévus

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

Enregistrez chaque fichier sous un nom de script.scpt

run: / usr / bin / osascript scriptname.scpt Exécuter en tant qu'utilisateur de la console (NOT ROOT)

casibbald
la source
Comment pouvez-vous l'exécuter via ssh? Aussi, comment est-ce mieux que les outils de développement en ligne de commande uniquement?
user151019
Salut Mark, nous avons une exigence spécifique d'avoir l'installation complète de xcode en place. ssh user @ hostname "onascript <chemin / vers / fichier> /myscript.scpt
casibbald