Baselayout fornisce un insieme base di file che sono necessari per far
funzionare adeguatamente tutti i sistemi, come ad esempio
OpenRC è un sistema rc basato sulle dipendenze che funziona con qualsiasi init
fornito dal sistema, normalmente
Inizialmente il sistema rc di Gentoo è stato compilato dentro baselayout 1 e scritto interamente in bash. Questo porta a molte limitazioni. Per esempio, certe chiamate di sistema hanno bisogno di essere effettuate durante il boot e ciò ha richiesto l'aggiunta di chiamate basate su C. Ognuna di queste chiamate era linkata staticamente, facendo in modo che il sistema rc ci mettesse più tempo.
Inoltre, siccome Gentoo si è espansa ad altre piattaforme come Gentoo/FreeBSD e Gentoo Embedded, è diventato impossibile mantenere un sistema rc basato su bash. Questo ha portato allo sviluppo di baselayout 2, che è scritto in C e richiede unicamente una shell POSIX-compliant. Durante lo sviluppo di baselayout 2, è stato deciso che era più appropriato che baselayout avesse fornito meramente i file base e il layout del filesystem per Gentoo e il sistema rc fu spostato in un suo pacchetto. Sicché abbiamo OpenRC.
OpenRC è sviluppato principalmente da
La migrazione a OpenRC è piuttosto diretta; sarà introdotta come parte del
proprio processo di aggiornamento dal gestore dei pacchetti. Il passo più
importante attualmente avviene dopo l'installazione dei nuovi pacchetti
Una volta finito di aggiornare i propri file di configurazione, ci sono alcune cose da verificare prima di riavviare.
Il file
Normalmente, quando si vuole che certi moduli del kernel siano caricati
all'avvio, li si mette in
Un esempio di configurazione vecchio stile sarebbe:
ivtv cx88_dvb video_br=2
Convertire l'esempio precedente risulterà nel seguente:
# Moduli caricati automaticamente all'avvio modules_2_6="ivtv cx88_dvb"# Parametri dei Moduli module_cx88_dvb_args_2_6="video_br=2"
Negli esempi precedenti, i moduli e i loro parametri saranno passati soltanto ai kernel della serie 2.6.x. La nuova configurazione permette un controllo più preciso sui moduli e sui parametri basato sulla versione del kernel.
Un esempio approfondito sarà:
# Carica sempre ochi1394 e ieee1394, per qualsiasi versione di kernel modules="ohci1394 ieee1394"# Carica tun e usbserial solo per i kernel della serie 2.6.x modules_2_6="tun usbserial"# Carica cx88_dvb solo per i kernel 2.6.23 modules_2_6_23="cx88_dvb"# Carica ivtv solo per il kernel 2.6.23-gentoo-r5 modules_2_6_23_gentoo_r5="ivtv"# Solo per il kernel 2.6.23-gentoo-r5, passa come argomento video_br=2 # a cx88_dvb module_cx88_dvb_args_2_6_23_gentoo_r5="video_br=2"# Per i kernel della serie 2.6.x passa sempre vendor e product module_usbserial_args_2_6="vendor=0x1410 product=0x2110"# Passa sempre debug a ieee1394 module_ieee1394_args="debug"
Il runlevel di
Con OpenRC, i servizi di gestione del volume per i propri dispositivi a blocchi
non sono più avviati automaticamente al boot. Questo include lvm, raid, swap,
device-mapper (dm), dm-crypt, evms, e il like. Bisogna assicurarsi che
l'initscript appropriato per questi servizi nel runlevel di
Sebbene l'ebuild di OpenRC proverà a fare questa migrazione, si dovrà verificare che migri tutti i servizi di gestione di volume correttamente:
# ls -l /etc/runlevels/boot/
Se non si vede root, procfs, mtab, swap e fsck con il precedente comando,
effettua le seguenti istruzioni per aggiungerli al runlevel
# rc-update add root boot # rc-update add procfs boot # rc-update add mtab boot # rc-update add fsck boot # rc-update add swap boot
Se si utilizza mdraid e lvm ma non li si vede sopra, si
dovranno eseguire le seguenti istruzioni per aggiungere gli initscripts al
runlevel
# rc-update add raid boot # rc-update add lvm boot
Siccome baselayout e OpenRC sono stati divisi in due pacchetti differenti, il proprio initscript net.eth0 può scomparire durante il processo di aggiornamento. Per sostituire questo initscript si eseguano i seguenti comandi:
# cd /etc/init.d # ln -s net.lo net.eth0
Se manca qualsiasi altro initscript di rete, seguire le istruzioni menzionate
sopra per riaggiungerlo. Semplicemente si sostituisca
Inoltre,
config_eth0=( "192.168.1.37 netmask 255.255.255.0 brd 192.168.1.255" ) routes_eth0=( "default via 192.168.1.100" )
config_eth0="192.168.1.37 netmask 255.255.255.0 brd 192.168.1.255" routes_eth0="default via 192.168.1.100"
Le impostazioni dell'orologio sono state rinominate da
Inoltre, la variabile
Il valore appropriato per questo file è il path relativo al proprio timezone
a partire da
America/New_York
La variabile XSESSION non si trova più in
Questa variabile NON sarà migrata di default, quindi bisognerà modificare
La variabile EDITOR non si trova più in
Una volta terminato e aggiornato i propri file di configurazione e gli initscript, l'ultima cosa da fare è reboot. Questo è necessario perchè le informazioni di stato del sistema non sono preservate durante l'aggiornamento, quindi bisognerà fornirle con un nuovo riavvio.