Xcode 4.3

La scorsa settimana (io sono abituato ad iniziare la settimana di domenica come gli anglosassoni, non so perché) Apple ha rilasciato la nuova versione di Xcode, il pacchetto di programmi per gli sviluppatori. Ormai giunto alla release 4.3, Xcode è uno strumento indispensabile per chiunque abbia dimestichezza con la compilazione dei sorgenti: quello che la filosofia UNIX tramanda come "configure && make && make install". Fino alla release precedente, Xcode era un mastodonte di 4.3 Gb, che richiedeva una connessione ad internet professionale e anche mezz'ora di installazione. Ora non più: Xcode 4.3 è un singolo programma del peso informatico di meno di 2 Gb, sebbene i cosiddetti "Command-line tools" debbano essere prelevati a parte dalla rete. Mentre prima tutti i pacchetti erano installati in /Developer, ora il programma principale può essere installato in /Applications, e questo tende a generare una notevole confusione con le variabili di ambiente. Ma generalmente si risolvono in fretta, a patto di essere un po' smaliziati con la linea di comando.

Il vero dramma è che Xcode 4.3 non funziona con MacPorts, uno dei sistemi di packaging del software open source per sistemi Apple Mac. Io l'ho sempre usato molto per mutt, fetchmail, alpine, slrn, e altri programmi open source che "girano" nel terminale: è un evidente sintomo di vecchiaia.

Stamattina, fresco fresco cacchio cacchio, rimuovo i vecchi programmi per ricompilarli con i nuovi compilatori. Sorpresa: una valanga di errori e il panico totale. Sul sito di MacPorts leggo che Xcode 4.3 non è compatibile con MacPorts, a causa dei profondi cambiamenti che Apple ha introdotto nel programma. E adesso, che fare? Da vero nerd, utente fanatico di ArchLinux, provo a scaricare i sorgenti dei principali programmi che mi servono, e con parecchia fatica riesco ad installarli come facevano i pionieri. Sono molto soddisfatto, ma questo approccio ha la spiacevole conseguenza che non potrò aggiornare automaticamente i programmi come facevo con i MacPorts.

Dopo qualche ricerca, mi sono imbattuto in Homebrew, una recente alternativa a MacPorts basata sul linguaggio Ruby (che in questo caso non ha zii in politica). I repository di Homebrew sono alquanto poveri, se paragonati a quelli di MacPorts, ma un buon 70% delle mie esigenze trovano soddisfazione comunque. Dopo due ore di sudori freddi, il mio computer è tornato come prima. Come al solito, le mie soluzioni sono paurosamente da bricoleur, e l'approccio ideale consiste forse nell'attendere qualche giorno e confidare in un aggiornamento del sistema MacPorts. Una soluzione ancora più conservatrice è riportata nel post di un utente di MacUpdate.com, che copio di seguito a vantaggio di chi legge.
OK, let's see now:

1. Xcode 4.3 can co-exist with previous versions of Xcode. I suggest that you do NOT uninstall the old version, until major issues have been resolved with this one.

2. Xcode 4.3 does NOT have to live in the /Applications directory. You can place it anywhere. You can put it in a separate directory along with all the optional downloadable utilities. There is no need to clutter your /Applications directory.

3. Xcode 4.3 does not have to be downloaded from the Mac App Store. You can also download it using a free developer account from connect.apple.com .

4. It is recommended that you install the commandline tools using the separate installer available from connect.apple.com, rather than from within the Xcode program.

5. After you've installed the commandline tools and decided where you want to place Xcode 4.3, run the following command in terminal to insure that the proper path is set (change the path accordingly if you've installed it somewhere else):

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

Check to make sure the path is set correctly by running this command:

xcode-select -print-path && xcodebuild -version

The output should look like this:

/Applications/Xcode.app/Contents/Developer
Xcode 4.3
Build version 4E109

Insomma, è possibile anche reinstallare Xcode 4.2.1 parallelamente a Xcode 4.3. Mi resta un dubbio sulla sovrapposizione dei Command-line Tools, che potrebbero essere diversi per le due release ma che vengono sovrascritti in /usr/bin. Resta il fatto che Homebrew sta diventando un ambiente di packaging più solido e più maneggevole di MacPorts, e vale la pena di fare un tentativo.

Novità del 27 febbraio 2012. Sebbene il sito di MacPorts continui a ripetere che Xcode 4.3 è incompatibile con il sistema di pacchetti in questione, un utente segnala qui che è molto facile recuperare i MacPorts mediante un paio di link simbolici. La soluzione consiste nell'eseguire i seguenti comandi da terminale:

$ sudo xcode-select -switch /Applications/Xcode.app

$ sudo ln -s /usr/bin/clang /Applications/Xcode.app/Contents/Developer/usr/bin/clang

$ sudo ln -s /usr/bin/clang++ \\ /Applications/Xcode.app/Contents/Developer/usr/bin/clang++

La mia esperienza è positiva.

Commenti

  1. Io sapevo che il comando giusto era "configure && make &&smadonna&&smadonna ancora&&make install"...
    Da notare che il risultato è "Dopo due ore di sudori freddi,
    il mio computer è tornato come prima". Cioè, in parole povere,
    un aggiornamento del sistema che poteva essere sostituito
    con una sana passeggiata!

    RispondiElimina
  2. Infatti. Ma ogni aggiornamento è un potenziale motivo di disperazione. Il fatto è che la Apple crede che i propri utenti non sappiano nemmeno aprire un terminale, dunque cambiano le cose senza pensare alle conseguenze per gli utenti meno stupidi. Vedrai che fra qualche giorno ci sarà una nuova release di MacPorts che sistema (quasi) tutto. Ma l'utente Apple è impaziente e masochista :-)

    RispondiElimina

Posta un commento

Post più popolari