Come verificare se gli strumenti della riga di comando sono installati


103

Ho un macbook pro con OS X 10.8.2. XCode è installato. Lo so come appare nella directory Applicazioni. Ci sono anche i file xcodebuild e xcode-select in / usr / bin che ho bisogno di sapere se gli strumenti della riga di comando sono installati. C'è un comando per questo? Cosa posso fare per vedere se XCode CLT è installato e se sì per trovare la versione installata?


La versione di XCode è 4.6
Vivek Nandavanam

Risposte:


104

10.14 Aggiornamento Mojave:

Vedi Yosemite Update.

10.13 Aggiornamento High Sierra:

Vedi Yosemite Update.

10.12 Aggiornamento Sierra:

Vedi Yosemite Update.

Aggiornamento 10.11 El Capitan:

Vedi Yosemite Update.

Aggiornamento 10.10 Yosemite:

Basta entrare gcco makesulla riga di comando! OSX saprà che non hai gli strumenti della riga di comando e ti chiederà di installarli!

Per verificare se esistono, xcode-select -pstamperà la directory. In alternativa, il valore restituito sarà 2se NON esistono e 0se lo sono. Per stampare solo il valore restituito ( grazie @ Andy ):

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

10.9 Aggiornamento Mavericks:

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

10.8 Aggiornamento:

Opzione 1: Rob Napier ha suggerito di usare pkgutil --pkg-info=com.apple.pkg.DeveloperToolsCLI, che probabilmente è più pulito.

Opzione 2: controlla all'interno /var/db/receipts/com.apple.pkg.DeveloperToolsCLI.plistper un riferimento a com.apple.pkg.DeveloperToolsCLIe elencherà la versione 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";
    };
}

1
Ho scoperto che l'apertura di xcode> Preferenze> Download> Componenti aveva una voce Strumenti della riga di comando che era nello stato di aggiornamento e quando l'ho aggiornata, mostra lo stato come installato
Vivek Nandavanam

7
Invece di accedere alla /var/db/receiptsdirectory, puoi utilizzare l'API per questo:pkgutil --pkg-info=com.apple.pkg.DeveloperToolsCLI
Rob Napier

8
Potrei sbagliarmi, ma il nome della ricevuta ora è CLTools_Executablesalmeno questo è tutto ciò che trovo sotto OS Mavericks. Il comando sarebbe quindi:pkgutil --pkg-info=com.apple.pkg.CLTools_Executables
Chris

1
notato la stessa cosa di Jordan. xcode-select non restituisce un int, solo il percorso
Damon

1
Ho inserito xcode-select-p, solo per ottenere /Applications/Xcode.app/Contents/Developer. Cosa significa?
studio

77

Yosemite

Di seguito sono riportati alcuni passaggi aggiuntivi su un Mac nuovo di cui alcune persone potrebbero aver bisogno. Questo aggiunge un po 'all'eccellente risposta di @jnovack.

Aggiornamento: alcune altre note durante l'impostazione:

Assicurati che il tuo utente amministratore abbia una password. Una password vuota non funzionerà quando si tenta di abilitare un utente root.

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

Quindi per abilitare root, esegui dsenablerootin un terminale:

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

dsenableroot:: ***Successfully enabled root user.

Digita la password dell'utente amministratore, quindi due volte la nuova password root abilitata.

Tipo successivo:

sudo gcc

o

sudo make

Risponderà con qualcosa di simile al seguente:

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.

Premi Invio quando ti viene chiesto di mostrare il contratto di licenza.

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:

//...

Premere qper uscire dalla visualizzazione del contratto di licenza.

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]

Tipo agree. E poi finirà con:

clang: error: no input files 

Il che significa fondamentalmente che non hai fornito makeo gccalcun file di input.

Ecco come appariva il controllo:

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

Mavericks

Con Mavericks, ora è un po 'diverso.

Quando gli strumenti NON sono stati trovati, questo è ciò che il pkgutilcomando ha restituito:

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

Per installare gli strumenti della riga di comando, funziona bene dal Terminale, con una bella interfaccia grafica e tutto il resto.

$ xcode-select --install

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

Quando sono stati trovati, questo è ciò che il pkgutilcomando ha restituito:

$ 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 

Questo comando ha restituito lo stesso prima e dopo l'installazione.

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

Inoltre avevo già selezionato e installato il componente per il CLT nella sezione dei download di xcode, ma sembra che non sia arrivato al terminale ...

Spero che aiuti.


Puoi aggiornare questa risposta per i sistemi operativi più recenti? Grazie.
Sparky

Ho chiamato sudo rm -rf / Library / Developer / CommandLineTools e poi xcode-select --install.
Oleksii Kyslytsyn

31

Per verificare se gli strumenti della riga di comando sono installati, eseguire:

xcode-select --version

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

Se gli strumenti della riga di comando non sono installati, eseguire:

xcode-select --install

1
Semplice ed efficace. Potrebbe essere la risposta migliore.
Bryan P

12

Su macOS Sierra (10.12):

  1. Eseguire il comando seguente per vedere se CLT è installato:

    xcode-select -p

    questo restituirà il percorso allo strumento se CLT è già installato. Qualcosa come questo -

    /Applications/Xcode.app/Contents/Developer
  2. Eseguire il comando seguente per visualizzare la versione di CLT:

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

    questo restituirà informazioni sulla versione, l'output sarà qualcosa del genere -

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

8

In macOS Catalina , e forse in alcune versioni precedenti, puoi scoprire dove sono installati gli strumenti della riga di comando utilizzando:

xcode-select -p aka xcode-select --print-path

Che, se installato, risponderà con qualcosa del tipo:

/Library/Developer/CommandLineTools

Per scoprire quale versione hai installato lì, puoi utilizzare:

xcode-select -v aka xcode-select --version

Che restituirà qualcosa come:

xcode-select version 2370.

Tuttavia , se si tenta di aggiornarlo alla versione più recente, supponendo che sia installato, utilizzando questo:

xcode-select --install

Riceverai in risposta:

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

Il che dà piuttosto erroneamente l'impressione di dover utilizzare Spotlight per trovare qualcosa chiamato "Aggiornamento software". In realtà, devi continuare nel Terminale e utilizzare questo:

softwareupdate -i -a aka softwareupdate --install --all

Che cerca di aggiornare tutto ciò che può e potrebbe rispondere con:

Software Update Tool

Finding available software
No new software available.

Per scoprire quali versioni dei diversi SDK di Apple sono installate sul tuo computer, usa questo:

xcodebuild -showsdks


3

Penso che il modo più semplice che ha funzionato per me per trovare gli strumenti della riga di comando sia installato o meno e la sua versione indipendentemente da quale sia la versione di macOS

$brew config

macOS: 10.14.2-x86_64
CLT: 10.1.0.0.1.1539992718
Xcode: 10.1

Questo quando gli strumenti della riga di comando sono installati correttamente e i percorsi impostati correttamente.

In precedenza ho ottenuto l'output come di seguito
macOS: 10.14.2-x86_64
CLT: N / A
Xcode: 10.1

CLT è stato mostrato come N / A nonostante avesse gcc e facesse funzionare bene e sotto gli output

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

Infine, facendo xcode-select --install ho risolto il mio problema di brew incapace di trovare CLT per l'installazione dei pacchetti come di seguito.

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

1

Vai ad Applicazioni> Xcode> preferenze> download

Dovresti vedere gli strumenti della riga di comando lì per l'installazione.




0

Poiché Xcode include gli strumenti CLI se installati per primi, utilizzo il seguente ibrido che è stato convalidato il 10.12 e 10.14. Mi aspetto che funzioni su molte altre versioni:

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

Sale awka piacere per logica di ramificazione.

Ovviamente xcode-select -pgestisce le variazioni con un comando molto breve ma non fornisce i metadati dettagliati del pacchetto, della versione e della data di installazione.


0

Apri il tuo terminale e controlla se hai già installato Xcode con questo:

xcode-select -p

in cambio, se ottieni questo:

/Library/Developer/CommandLineTools

Ciò significa che Xcode è installato.

Un altro modo in cui puoi controllare se hai "HomeBrew" installato puoi usare il seguente comando per vedere se hai Xcode e la versione:

brew config

Infine, se non hai Xcode segui questo link per scaricare Xcode dall'Appstore. Xcode dall'App Store .

In bocca al lupo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.