2012-02-18 1 views
22

Apple ha recentemente rilasciato Command Line Tools:XCode Command Line 4.3 Strumenti

  1. Quali sono gli strumenti forniti nel pacchetto di strumenti di riga di comando?

  2. Esiste una documentazione diversa dalle pagine man?

Si noti che ho installato questi strumenti aggiungendo il componente specifico in Xcode. Inoltre, questo non riguarda un progetto Xcode, ma un pacchetto rilasciato da Apple il 16 febbraio 2012!

+0

Immagino che dovrebbero essere disponibili dalla riga di comando, come al solito. Di solito vengono installati in '/ usr/bin' o symlinked lì. Almeno questo è come è stato nel passato. Ora che non sono presenti nell'installazione per impostazione predefinita, non sono sicuro di quale sia il percorso di installazione. – prodigitalson

+0

Questo è solo un sottoinsieme di strumenti di sviluppo con GCC e intestazioni per la compilazione di software e strumenti di compilazione che potrebbero non essere presenti sul sistema come default, come make llvm, ecc. Dovevi installare Xcode per ottenere tutto il materiale , ora è stato diviso in un componente separato mpkg che è super conveniente per quelli di uso Homebrew o Macports ma in realtà non ha bisogno di XCode. Che cosa stai cercando di trovare/utilizzare esattamente? Se hai già installato Xcode, dovresti già avere questa roba. – prodigitalson

+2

Non so come creare un progetto, ma per costruire si farebbe 'xcodebuild', c'è' xcodeindex' che indicizza una cartella di progetto. e 'xcode-select' che seleziona la posizione della cartella Xcode (presumibilmente se si hanno più versioni di xcode o più versioni di strumenti correlati). Se fai 'man xcode-select 'vedrai un numero di strumenti aggiuntivi che sono correlati elencati alla fine. Puoi quindi fare 'man' per ognuno di questi altri strumenti per l'uso. – prodigitalson

risposta

12

Apre gli strumenti da riga di comando DMG e troverai un meta-pacchetto, che puoi estrarre con il comando pkgutil --expand 'Command Line Tools.mpkg' metapackage. Aprire il file metapackage/Distribution che è stato appena estratto in un editor di testo per vedere i pacchetti che compongono il metapacchetto:

com.apple.pkg.DevSDK 
com.apple.pkg.X11SDK 
com.apple.pkg.QuickTimeSDK 
com.apple.pkg.OpenGLSDK 
com.apple.pkg.WebKitSDK 
com.apple.pkg.FireWireSDK 
com.apple.pkg.BluetoothSDK 
com.apple.pkg.CoreAudioSDK 
com.apple.pkg.JavaSDK 
com.apple.pkg.clang 
com.apple.pkg.llvm-gcc4.2 
com.apple.pkg.X11Documentation 
com.apple.pkg.DeveloperToolsCLI 

I file del pacchetto corrispondenti si trovano in una nascosta Packages directory a fianco del metapacchetto. Il loro contenuto può essere elencato con pkgutil --payload-files.

Se si dispone di un file su disco, e volete sapere quale pacchetto è venuto da:

$ pkgutil --file-info /usr/bin/clang 
volume:/
path: /usr/bin/clang 

pkgid: com.apple.pkg.clang 
pkg-version: 4.3.0.0.1.1249367152 
install-time: 1342021874 
uid: 0 
gid: 0 
mode: 755 

Ora, alcune informazioni bonus che sarà utile se si vuole mai rimozione la strumenti da riga di comando. Apple, nella sua infinita saggezza, si rifiuta di fornire uno strumento per farlo, ma possiamo ottenere le informazioni di cui abbiamo bisogno usando pkgutil per visualizzare le informazioni sui pacchetti installati.

In primo luogo, pkgutil --pkgs elencherà tutti i pacchetti installati. Confronta l'output dell'elenco di pacchetti sopra.

pkgutil --info visualizza informazioni su un pacchetto installato; ad esempio:

$ pkgutil --info com.apple.pkg.clang 
package-id: com.apple.pkg.clang 
version: 4.3.0.0.1.1249367152 
volume:/
location:/
install-time: 1342021874 
groups: com.apple.FindSystemFiles.pkg-group com.apple.DevToolsBoth.pkg-group com.apple.DevToolsNonRelocatableShared.pkg-group 

pkgutil --files visualizzerà il contenuto di un pacchetto installato, relativi alle volume e location campi proposta dal pkgutil --info. Poiché i percorsi assoluti non vengono utilizzati, non è possibile semplicemente reindirizzare l'output di questo comando a xargs rm -f per rimuovere i file di un pacchetto; dovrai sistemare i percorsi tu stesso, magari con qualcosa come pkgutil --files com.example.pkgname | while read line; do rm -f "/install_location/$line"; done.

Una volta che i file di un pacchetto vengono rimossi, pkgutil --forget dovrebbe essere eseguito per rimuovere le informazioni sul pacchetto installato dal database dei pacchetti.

dovrebbe dire che dovresti stare molto attento se provi questo: sei un errore di battitura a rovinare il tuo sistema così male che dovrai reinstallarlo, per non parlare del tuo prezioso dati!

pkgutil ha alcune altre opzioni utili per verificare che i file di un pacchetto siano tutti presenti e per ripristinare le autorizzazioni; vedi its manual page per i dettagli.

In generale, questo funziona per qualsiasi pacchetto, tuttavia si noti che alcuni pacchetti possono avere script incorporati che vengono eseguiti quando il pacchetto viene installato; ovviamente, la semplice rimozione dei file del pacchetto non rimuoverà tutte le tracce del pacchetto dal sistema. Dovrai estrarre il contenuto del pacchetto e leggere il codice sorgente dello script, quindi decidere come annullare al meglio gli effetti dello script.

1

Ho avuto un problema simile: non ho potuto eseguire "make" dopo l'aggiornamento a Xcode 4.3. Per risolvere il problema, ho appena impostato la mia variabile PATH per includere:

/Applications/Xcode.app/Contents/Developer/usr/bin 
/Applications/Xcode.app/Contents/Developer/Tools 

Una volta ho avuto che ha istituito, sostituendo le mie vecchie voci percorso che fa riferimento a/Developer, ho potuto eseguire un "fare" dalla riga di comando di nuovo.

+2

Non si tratta di eseguire 'make' nella riga di comando ... Voglio che questi strumenti siano elencati con la documentazione appropriata e un modo per creare progetti xcode dalla riga di comando. – Alerty

+0

Ho cercato di generare le cartelle * .xcodeproj dalla riga di comando, ma alla fine ho creato solo un nuovo progetto da Xcode. Il comando per costruire il progetto è: 'xcodebuild -configuration Debug' per la versione di debug (ovviamente) e' xcodebuild -configuration Release' per la versione di rilascio. Per quanto riguarda la documentazione, il meglio che posso darti è 'man xcodebuild'. – S2VpdGgA

+0

Questa è la cosa anche se non esiste uno strumento a riga di comando di Apple, a mia conoscenza, che crea un progetto xcode. Per costruire un progetto, hai bisogno di un file di progetto. – Alerty