Guida all'installazione ed all'uso di Gentoo per Mac OS X
1.Installazione
Requisiti di sistema
Per installare Gentoo per Mac OS X si richiesti i seguenti programmi:
- Mac OS 10.3 o seguenti
- XCode Tools 1.2 o seguenti
Nota:
Il programma XCode Tools può essere scaricato dall'Apple Developer Connection, previa registrazione gratuita.
|
Importante:
Si consiglia caldamente d'installare l'X11 SDK contenuto in XCode.
|
Il programma d'installazione
Per prima cosa è necessario scaricare il programma d'installazione di Gentoo per Mac OS X. Una volta terminato il download si dovrà fare doppio clic sull'icona del file dmg appena scaricato. In questo modo i suoi contenuti saranno mostrati all'interno di una finestra di finder e sarà visibile l'icona del programma d'installazione. Cliccare quindi sull'icona del programma d'installazione e seguire le istruzioni che compariranno sullo schermo.
Terminal.app
Dopo che il programma d'installazione avrà completato il suo lavoro è necessario eseguire il programma Terminal.app (o un qualsiasi emulatore di terminale). Se Terminal.app è già in esecuzione sarà opportuno aprire una nuova shell/finestra affinchè siano trovati i programmi appena installati.
Attenzione:
L'uso di una shell diversa dalla bash non è attualmente supportato, molto probabilemente essa non funzionerà. Per cambiare la shell predefinita usata da Terminal.app è necessario seguire il seguente percorso: Terminal->Preferences (nella barra del menu), selezionare l'opzione "Execute this command" e impostare come valore /bin/bash.
|
Aggiornare il Portage
E' indispensabile mantenere aggiornate le informazioni relative ai programmi forniti dal portage; esse sono contenute all'interno di una struttura (chiamata portage-tree) posta all'interno della directory /usr/portage. Queste informazioni indicano al portage i programmi disponibili e le loro modalità d'installazione. Per essere sempre aggiornati sugli ultimi programmi disponibili è quindi importante mantenere sincronizzato il portage-tree.
Per continuare l'installazione è necessario ottenere i privilegi di root.
Per farlo basta essere un amministratore del computer ed eseguire sudo.
Esempio 1: Acquisire i privilegi di root |
$ sudo su
Password:
|
Per essere sicuri d'avere le ultime informazioni sui programmi disponibili sarà necessario sincronizzare il portage-tree con quello messo a disposizione da uno dei server di gentoo.
Esempio 2: Aggiornamento del portage |
# emerge --sync
|
Configurazione
Per prima cosa si deve indicare al portage la versione di OSX che è in uso. Il portage usa i file contenuti in /etc/make.profile per determinare quali programmi siano già forniti da Mac OS X, quali siano masked per la versione di OSX in esecuzione e per conoscere le opzioni di configurazione di default. Basterà scegliere uno dei profili forniti dal programma d'installazione creando il collegamento simbolico /etc/make.profile che punterà ad un profilo pre-costruito.
Questa operazione è facile quanto l'esecuzione dello script di bootstrap.
Esempio 3: Esecuzione dello script di bootstrap |
# sh /usr/portage/scripts/bootstrap-macos.sh
|
Per collegare il file di profilo manualmente si digiti il seguente comando, precisando il profilo che più si adatta al sistema.
Esempio 4: Creare un link simbolico al profilo per Jaguar/Panther |
# ln -s /usr/portage/profiles/default-darwin/macos/10.3 /etc/make.profile
|
Esempio 5: Creare un link simbolico al profilo per Tiger |
# ln -s /usr/portage/profiles/default-darwin/macos/10.4 /etc/make.profile
|
Nota:
Degli utenti esperti possono anche azzardarsi a configurare ulteriormente il portage modificando le opzioni contenute in /etc/make.conf. Tutto ciò è altamente sconsigliato per gli utenti di livello medio.
|
Installare i programmi di sistema
A questo punto è necessario fare un emerge dei programmi di sistema. In questo modo saranno installati i programmi che permetteranno al portage di funzionare correttamente.
Esempio 6: Installare il sistema |
# emerge system
|
Ora Gentoo per Mac OS X dovrebbe essere pronto per l'uso.
2.Installare applicazioni usando il Portage
Installare applicazioni
Per installare un programma presente nel portage si deve semplicemente fare il suo emerge.
Il portage si preoccuperà di risolvere tutte le dipendenze richieste dal programma. In conclusione l'unica cosa da sapere è il nome del programma.
Esempio 7: Installare Lynx |
# emerge lynx
|
Pacchetti masked
Sarà possibile installare una qualsiasi combinazione di programmi che siano già stati testati ed aggiornati per macos. Attualmente solo un piccolo numero di programmi non sono masked. Se l'ebuild di un programma non ha ancora la parola chiave ppc-macos aggiunta si otterrà un messaggio simile a questo:
Esempio 8: Esempio di un programma masked |
# emerge -p cowsay
These are the packages that I would merge, in order:
Calculating dependencies
!! all ebuilds that could satisfy "cowsay" have been masked.
!! possible candidates are:
- games-misc/cowsay-3.03 (masked by: missing keyword)
|
Testare dei programmi
E' possibile ignorare lo stato di masked di un programma, controllando di persona se è in grado di funzionare. Si sconsiglia agli utenti medi di eseguire queste operazioni, sono invece raccomandate alle persone che intendono aiutare gli sviluppatori testando personalmente dei programmi masked.
Per farlo si deve semplicemente aggiungere la parola chiave "ppc-macos" all'interno dell'ebuild del programma. Per aggiungere la parola chiave "ppc-macos" ad un ebuild basta usare il comando 'ekeyword', fornito all'iterno del pacchetto 'gentoolkit-dev'.
Esempio 9: Installare gentoolkit-dev |
# emerge gentoolkit-dev
|
Esempio 10: Aggiungere la parola chiave ppc-macos a un ebuild |
# cd /usr/portage/games-misc/cowsay
# ekeyword ppc-macos cowsay-3.03.ebuild
# ebuid cowsay-3.03.ebuild digest
|
Se il programma si compila e funziona correttamente è buona norma segnalarlo su Gentoo Bugzilla (previa registrazione gratuita). La procedura consiste nell'apertura di un bug, assegnandolo al team di sviluppo di Gentoo per Mac OS X. Nel caso in cui il programma non funzionasse si consiglia comunque di seguire la medesima procedura, specificando gli errori riscontrati (solitamente si ottengono molti messaggi d'errore, si consiglia di copiare tutto il testo a partire dalla prima segnalazione d'errore).
Per la maggior parte dei programmi il cui funzionamento richiede X11 è necessario installare il pacchetto di sviluppo di X11. Se non lo si vuole installare durante la procedura d'installazione di XCode si può comunque effettuare l'operazione in seguito: esso è infatti installabile facendo doppio clic sul file X11SDK.pkg contenuto nella directory Packages del cdrom di XCode. Non è ancora possibile fare un emerge del portage usando il relativo ebuild. Per l'installazione di programmi che dipendono dal portage (come gentoolkit) è presente un metodo per aggirare il problema.
Attenzione:
La keyword "macos" è obsoleta e ne è sconsigliato l'uso.
|
Programmi già installati
Nel caso sia trovato un programmi già installato da Mac OS X si consiglia di segnalare il fatto aprendo un bug su Gentoo Bugzilla (previa registrazione gratuita). Sul proprio sistema è possibile aggiungere il nome del programma a /etc/portage/profile/package.provided, in questo modo il portage realizza che il programma è già installato.
Esempio 11: Aggiungere un programma a package.provided |
# mkdir -p /etc/portage/profile/
# echo cat-name/package-x.y.z >> /etc/portage/profile/package.provided
|
Nota:
Per vedere un elenco dei programmi che sono già installati dalla propria versione di Mac OS X si può consultare il file /etc/make.profile/package.provided.
|
Attenzione:
La modifica di /etc/make.profile/package.provided non è consigliata, dato che il file è sovrascritto ogni volta che si aggiorna il portage-tree (usando il comando 'emerge --sync').
|
3.Usare il CVS
Problemi con i file system HFS
Gli script nel CVS hanno problemi con i file system che non fanno distinzioni tra maiuscole e minuscole (detti quindi case insensive, l'opposto del case sensity). Si consiglia quindi di creare un file immagine con un file system case sentity in cui provare il portage tree del CVS (si consiglia di riservagli almeno 750 Mb di spazio). Per creare questa immagine di file system si può usare uno dei seguenti comandi:
Esempio 12: Creazione di un file immagine con file system UFS case-sensitive |
$ hdiutil create -size 750m gentoo-cvs.dmg -volname Gentoo-CVS -fs UFS
|
Esempio 13: Creazione di un file immagine con file system HFS+ case-sensitive |
$ hdiutil create -size 750m gentoo-cvs.dmg -volname Gentoo-CVS -fs HFSX
|
Attenzione:
Per gli sviluppatori: repoman non funzionerà se ci sono degli spazi ne percorso del portage tree, non è consigliato l'uso di spazi nel nome del volume dell'immagine del CVS.
|
4.Disinstallazione
Script di disinstallazione
Per disinstallare Gentoo per Mac OS X si può usare uno script di disinstallazione che permette di scegliere se rimuovere o meno i programmi installati con il portage di Gentoo per MacOs.
Esempio 14: Uninstalling Gentoo for Mac OS X |
# sudo perl uninstall.pl
|
Nota:
Per eseguire lo script di disinstallazione sono richiesti i privilegi di root.
|
5.Programmi disponibili
Panoramica
Ci sono molti modi per vedere la lista dei programmi che sono stati marcati con la parola chiave 'ppc-macos', e che sono quindi considerati stabili su Mac OS X. Dato che lo sviluppo del portage per Mac OS X è molto attivo si consiglia di controllare frequentemente questa lista.
Ebuild recenti per Gentoo Mac OS X
Presso il sito Gentoo Linux
Fresh Mac OS X Ebuilds (che è fa parte del sito ufficiale Fresh Gentoo Ebuilds) si possono trovare svariate informazioni. Sono infatti disponibili, oltre alle informazioni di ogni ebuild, uno strumento di ricerca (con vari filtri applicabili) ed un servizio RSS che riporta gli ultimi ebuild disponibili (una lista dei possibili file RSS è disponibile presso Fresh Gentoo Ebuilds Feeds List).
Gentoo-Portage.com
Gentoo-Portage.com è un sito non ufficiale che fornisce informazioni relative al portage tree (proprio come Fresh Gentoo Ebuilds), ma soprattutto mostra informazioni ancora più dettagliate per ogni pacchetto (come tutte le sue dipendenze).
6.Caratteristiche avanzate e problematiche
Protezione delle collisioni
Gentoo per Mac OS X fornisce automaticamente una protezione dalle collisioni che evita al portage di sovrascrivere i file che non ha creato. Questa caratteristica può essere disattivata con la variabile d'ambiente FEATURES="-collision-protect".
Esempio 15: Consentire al portage di sovrascrivere file appartenenti a Mac OS X |
# FEATURES="-collision-protect" emerge autoconf
|
Attenzione:
Disattivare la protezione alle collisioni è molto pericoloso e può portare al non funzionamento dell'intero sistema.
|
emerge: command not found
Il programma d'installazione di Gentoo per Mac OS X aggiorna il file /etc/profile aggiungendo /usr/lib/portage/bin alla variabile d'ambiente PATH. Per potere digitare emerge ... è necessario digitare source /etc/profile oppure, più semplicemente, uscire dalla shell e rientrarvi. Solo in questi modi sarà possibile eseguire tutti i programmi basilari del portage.
Errori con <library>.a
Mentre si installano i file di <library>.a, è eseguito runlib per garantire che tutti i riferimenti alla libreria siano nel percorso appropriato. Quando un ebuild esegue il make install, tutti i files sono installati in /var/tmp/portage<package>/image piuttosto che nel file system principale (livefs). Questo significa che le librerie installate da un programma fanno riferimento a dei percorsi sbagliati. Questo problema sussiste solo con il kernel darwin e con i sui file <library>.a, attualmente il team di Gentoo per Mac OS X sta cercando una soluzione al problema.
Secondo la politica di sviluppo di Gentoo per Mac OS X, gli ebuild che installano librerie devono essere analizzati accuratamente prima di ricevere la parola chiave 'ppc-macos'. La maggior parte delle volte se una libreria non funziona ciò è dovuto a dei percorsi di riferimento errati. Per gli utenti più esperti ed intraprendenti c'è un piccolo trucco che risolve il problema: il comando ranlib. Esso infatti si preoccupa di sistemare, tra le altre cose, anche i riferimenti errati illustrati precedentemente.
Esempio 16: Usare ranlib per fare funzionare una libreria corrotta |
# ranlib /usr/lib/libjpeg.a
|
Le dipendenze del portage
Alcuni programmi per essere installati richiedono la presenza del portage. Attualmente c'è un problema che impedisce al portage di riconoscersi come programma installato. Mentre il team di sviluppo di Gentoo per Mac OS X lavora per risolvere questo problema, c'è una soluzione temporanea. Infatti è possibile fare l'emerge di un programma senza installare le sue dipendenze; questo permette quindi di risolvere il problema indicato precedentemente. Si tratta però di un'operazione sconsigliata per qualsiasi altra dipendenza che non sia il portage.
Esempio 17: Ignorare le dipendenze durante un emerge |
# emerge --nodeps gentoolkit
|
|