Comment vérifier si les outils de ligne de commande sont installés

104

J'ai un macbook pro avec OS X 10.8.2. XCode est installé. Je le sais tel qu'il apparaît dans le répertoire Applications. Il y a aussi les fichiers xcodebuild et xcode-select dans / usr / bin. J'ai besoin de savoir si les outils de ligne de commande sont installés. Y a-t-il une commande pour cela? Que puis-je faire pour voir si XCode CLT est installé et si oui pour trouver la version installée?

Vivek Nandavanam
la source
La version de XCode est 4.6
Vivek Nandavanam

Réponses:

104

10.14 Mise à jour Mojave:

Voir Yosemite Update.

10.13 Mise à jour de High Sierra:

Voir Yosemite Update.

10.12 Mise à jour Sierra:

Voir Yosemite Update.

10.11 Mise à jour d'El Capitan:

Voir Yosemite Update.

10.10 Mise à jour Yosemite:

Entrez simplement dans gccou makesur la ligne de commande! OSX saura que vous ne disposez pas des outils de ligne de commande et vous invitera à les installer!

Pour vérifier s'ils existent, xcode-select -pimprimera le répertoire. Sinon, la valeur de retour sera 2si elles n'existent PAS, et 0si elles existent . Pour simplement imprimer la valeur de retour ( merci @Andy ):

xcode-select -p 1>/dev/null;echo $?

Mise à jour 10.9 Mavericks:

Utilisation pkgutil --pkg-info=com.apple.pkg.CLTools_Executables

10.8 Mise à jour:

Option 1: Rob Napier a suggéré d'utiliser pkgutil --pkg-info=com.apple.pkg.DeveloperToolsCLI, ce qui est probablement plus propre.

Option 2: Vérifiez à l'intérieur /var/db/receipts/com.apple.pkg.DeveloperToolsCLI.plistpour une référence à com.apple.pkg.DeveloperToolsCLIet il listera la version 4.5.0.

[Mar 12 17:04] [jnovack@yourmom ~]$ defaults read /var/db/receipts/com.apple.pkg.DeveloperToolsCLI.plist
{
    InstallDate = "2012-12-26 22:45:54 +0000";
    InstallPrefixPath = "/";
    InstallProcessName = Xcode;
    PackageFileName = "DeveloperToolsCLI.pkg";
    PackageGroups =     (
        "com.apple.FindSystemFiles.pkg-group",
        "com.apple.DevToolsBoth.pkg-group",
        "com.apple.DevToolsNonRelocatableShared.pkg-group"
    );
    PackageIdentifier = "com.apple.pkg.DeveloperToolsCLI";
    PackageVersion = "4.5.0.0.1.1249367152";
    PathACLs =     {
        Library = "!#acl 1\\ngroup:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:delete\\n";
        System = "!#acl 1\\ngroup:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:delete\\n";
    };
}
jnovack
la source
1
J'ai trouvé que l'ouverture de xcode> Préférences> Téléchargements> Composants avait une entrée Outils de ligne de commande qui était dans l'état de mise à jour et lorsque je l'ai mise à jour, elle affiche l'état comme installé
Vivek Nandavanam
7
Plutôt que d'accéder au /var/db/receiptsrépertoire, vous pouvez utiliser l'API pour cela:pkgutil --pkg-info=com.apple.pkg.DeveloperToolsCLI
Rob Napier
8
Je me trompe peut-être, mais le nom du reçu est maintenant CLTools_Executablesau moins tout ce que je trouve sous OS Mavericks. La commande serait alors:pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
Chris
1
remarqué la même chose que Jordan. le xcode-select ne renvoie pas un int, juste le chemin
Damon
1
J'ai entré xcode-select-p, uniquement pour obtenir /Applications/Xcode.app/Contents/Developer. Qu'est-ce que ça veut dire?
étude
77

Yosemite

Vous trouverez ci-dessous quelques étapes supplémentaires sur un nouveau Mac dont certaines personnes pourraient avoir besoin. Cela ajoute un peu à l'excellente réponse de @ jnovack.

Mise à jour: quelques autres notes lors de la configuration de ceci:

Assurez-vous que votre utilisateur administrateur dispose d'un mot de passe. Un mot de passe vide ne fonctionnera pas lors de la tentative d'activation d'un utilisateur root.

System Preferences > Users and Groups > (select user) > Change password

Ensuite, pour activer root, exécutez dsenablerootdans un terminal:

$ dsenableroot
username = mac_admin_user
user password:
root password:
verify root password:

dsenableroot:: ***Successfully enabled root user.

Tapez le mot de passe de l'utilisateur administrateur, puis le nouveau mot de passe root activé deux fois.

Type suivant:

sudo gcc

ou

sudo make

Il répondra avec quelque chose comme ce qui suit:

WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.

To proceed, enter your password, or type Ctrl-C to abort.

Password:


You have not agreed to the Xcode license agreements. You must agree to 
both license agreements below in order to use Xcode.

Appuyez sur Entrée lorsqu'il vous invite à afficher le contrat de licence.

Hit the Enter key to view the license agreements at 
'/Applications/Xcode.app/Contents/Resources/English.lproj/License.rtf'

IMPORTANT: BY USING THIS SOFTWARE, YOU ARE AGREEING TO BE BOUND BY THE 
FOLLOWING APPLE TERMS:

//...

Appuyez sur qpour quitter la vue du contrat de licence.

By typing 'agree' you are agreeing to the terms of the software license 
agreements. Type 'print' to print them or anything else to cancel, 
[agree, print, cancel]

Tapez agree. Et puis cela se terminera par:

clang: error: no input files 

Ce qui en fait signifie que vous n'avez pas donné makeou gcctous les fichiers d'entrée.

Voici à quoi ressemblait le chèque:

$ xcode-select -p
/Applications/Xcode.app/Contents/Developer

Non-conformistes

Avec Mavericks, c'est un peu différent maintenant.

Lorsque les outils n'ont PAS été trouvés, voici ce que la commande de pkgutilcommande a renvoyé:

$ pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
No receipt for 'com.apple.pkg.CLTools_Executables' found at '/'.

Pour installer les outils de ligne de commande, cela fonctionne bien depuis le terminal, avec une belle interface graphique et tout.

$ xcode-select --install

http://macops.ca/installing-command-line-tools-automatically-on-mavericks/

Lorsqu'ils ont été trouvés, voici ce que la pkgutilcommande a renvoyé:

$ pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
package-id: com.apple.pkg.CLTools_Executables
version: 5.0.1.0.1.1382131676
volume: /
location: /
install-time: 1384149984
groups: com.apple.FindSystemFiles.pkg-group com.apple.DevToolsBoth.pkg-group com.apple.DevToolsNonRelocatableShared.pkg-group 

Cette commande a renvoyé la même chose avant et après l'installation.

$ pkgutil --pkg-info=com.apple.pkg.DeveloperToolsCLI
No receipt for 'com.apple.pkg.DeveloperToolsCLI' found at '/'.

De plus, j'avais le composant pour le CLT sélectionné et installé dans la section des téléchargements de xcode auparavant, mais il semble qu'il ne soit pas arrivé au terminal ...

J'espère que cela pourra aider.

phyatt
la source
Pouvez-vous mettre à jour cette réponse pour les derniers systèmes d'exploitation? Merci.
Sparky
J'ai appelé sudo rm -rf / Library / Developer / CommandLineTools, puis xcode-select --install.
Oleksii Kyslytsyn
31

Pour vérifier si les outils de ligne de commande sont installés, exécutez:

xcode-select --version

// if installed you will see the below with the version found in your system
// xcode-select version 1234.

Si les outils de ligne de commande ne sont pas installés, exécutez:

xcode-select --install
user3476766
la source
1
Simple et efficace. Peut-être la meilleure réponse.
Bryan P
12

Sur macOS Sierra (10.12):

  1. Exécutez la commande suivante pour voir si CLT est installé:

    xcode-select -p

    cela renverra le chemin d'accès à l'outil si CLT est déjà installé. Quelque chose comme ça -

    /Applications/Xcode.app/Contents/Developer
  2. Exécutez la commande suivante pour voir la version de CLT:

    pkgutil --pkg-info=com.apple.pkg.CLTools_Executables

    cela renverra les informations de version, la sortie sera quelque chose comme ça -

    package-id: com.apple.pkg.CLTools_Executables
    version: 8.2.0.0.1.1480973914
    volume: /
    location: /
    install-time: 1486372375
sahilabrar
la source
8

Dans macOS Catalina , et éventuellement dans certaines versions antérieures, vous pouvez savoir où les outils de ligne de commande sont installés en utilisant:

xcode-select -p alias xcode-select --print-path

Ce qui, s'il est installé, répondra par quelque chose comme:

/Library/Developer/CommandLineTools

Pour savoir quelle version vous y avez installée, vous pouvez utiliser:

xcode-select -v alias xcode-select --version

Ce qui renverra quelque chose comme:

xcode-select version 2370.

Cependant , si vous essayez de le mettre à niveau vers la dernière version, en supposant qu'il est installé, utilisez ceci:

xcode-select --install

Vous recevrez en réponse:

xcode-select: error: command line tools are already installed, use "Software Update" to install updates

Ce qui donne à tort l'impression que vous devez utiliser Spotlight pour trouver quelque chose appelé «Mise à jour logicielle». En fait, vous devez continuer dans le terminal et utiliser ceci:

softwareupdate -i -a alias softwareupdate --install --all

Qui essaie de mettre à jour tout ce qu'il peut et peut bien répondre avec:

Software Update Tool

Finding available software
No new software available.

Pour savoir quelles versions des différents SDK Apple sont installées sur votre machine, utilisez ceci:

xcodebuild -showsdks

Paul F. Wood
la source
3

Je pense que le moyen le plus simple qui a fonctionné pour moi de trouver les outils de ligne de commande est installé ou non et sa version quelle que soit la version de macOS

$brew config

macOS: 10.14.2-x86_64
CLT: 10.1.0.0.1.1539992718
Xcode: 10.1

Ceci lorsque les outils de ligne de commande sont correctement installés et les chemins correctement définis.

Auparavant, j'avais une sortie sous
macOS: 10.14.2-x86_64
CLT: N / A
Xcode: 10.1

CLT a été montré comme N / A malgré avoir gcc et faire fonctionner correctement et en dessous des sorties

$xcode-select -p              
/Applications/Xcode.app/Contents/Developer
$pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
No receipt for 'com.apple.pkg.CLTools_Executables' found at '/'.
$brew doctor
Your system is ready to brew.

Enfin, faire xcode-select --install a résolu mon problème d'infusion incapable de trouver CLT pour installer les packages comme ci-dessous.

Installing sphinx-doc dependency: python
Warning: Building python from source:
  The bottle needs the Apple Command Line Tools to be installed.
  You can install them, if desired, with:
    xcode-select --install
Jagdish Adusumalli
la source
1

Allez dans Applications> Xcode> préférences> téléchargements

Vous devriez y voir les outils de ligne de commande à installer.

Bruno
la source
0

Comme Xcode englobe les outils CLI s'il est installé en premier, j'utilise l'hybride suivant qui a été validé sur 10.12 et 10.14. J'espère que cela fonctionne sur beaucoup d'autres versions:

installed=$(pkgutil --pkg-info=com.apple.pkg.CLTools_Executables 2>/dev/null || pkgutil --pkg-info=com.apple.pkg.Xcode)

Saler awkau goût de la logique de branchement.

Bien sûr, xcode-select -pgère les variations avec une commande très courte mais ne donne pas les métadonnées détaillées du package, de la version et de la date d'installation.

BaseZen
la source
0

Ouvrez votre terminal et vérifiez si Xcode est déjà installé avec ceci:

xcode-select -p

en retour, si vous obtenez ceci:

/Library/Developer/CommandLineTools

Cela signifie que vous avez installé Xcode.

Une autre façon de vérifier si vous avez installé "HomeBrew" vous pouvez utiliser la commande suivante pour voir si vous avez Xcode et la version:

brew config

Et enfin, si vous n'avez pas le Xcode, suivez ce lien pour télécharger le Xcode depuis l'Appstore. Xcode de l'App Store .

Bonne chance.

ZaMy
la source