Devo ringraziare “LuNa” per quest’intuizione - d’accordo, piuttosto banale, ma non ci avevo proprio pensato! -, comunicatami tramite un commento piuttosto “criptico”: effettivamente, su Ubuntu/Hardy, l’unico modo per far girare Adobe AIR è un ambiente chroot a 32-bit. Come dicevo… non sono abituato a “lavorare” su questi ambienti: peraltro, le operazioni richiedono un paio d’ore e una certa dose di pazienza.
Requisiti, questi, di cui non sono “particolarmente” provvisto: eppure - complice il weekend? - sono riuscito ugualmente nel mio intento. Seguendo più o, meno “alla lettera” le istruzioni che seguono, forse potreste accorciare i tempi d’esecuzione. Non è necessario compilare e il bootstrap non richiede moltissimo tempo! Entrate nell’ottica che occorre essere (relativamente) dei “power user“ per comprendere al meglio tutto ciò che sarà impostato.
Per prima cosa - al solito! - dobbiamo risolvere le dipendenze per la creazione del chroot: non si tratta di tantissimi pacchetti, ad ogni modo.
$ sudo aptitude install debootstrap sbuild schroot
A questo punto, dobbiamo creare la directory per la “root“ del nuovo sistema¹: ricordate di “settare” il path in una posizione che sia indicativa dell’utilizzo e che l’indirizzo locale /path/to/chroot dovrete sostituirlo (qualora sia diverso) in tutti gli esempi. E non sono pochi.
$ sudo mkdir /var/chroot32
Attenzione: quella di cui sopra non è la cartella “definitiva” per l’ambiente che andiamo a costruire. Dal momento che è possibile creare più di un chroot (a seconda degli utilizzi) per ogni macchina, tutti i sotto-sistemi andranno a insediarsi in questo percorso, prendendo il nome impostato nel file che vedremo ora. Aprite schroot.conf e aggiungete (non commentate, ovviamente) le seguenti righe:
$ sudo gedit /etc/schroot/schroot.conf[hardy]description=Ubuntu hardylocation=/var/chroot32priority=2users=federicogroups=sbuild,rootroot-groups=root,sbuildpersonality=linux32aliases=hardy,default
Prestate una particolare attenzione alla sintassi: i termini in grassetto sono “personalizzati” per la mia distribuzione (ovvero, Ubuntu/Hardy)… mentre quelli in corsivo si riferiscono al mio sistema. Dal momento che con il browser si nota poco la differenza, vi consiglio di dare un’occhiata al sorgente della pagina! Con la configurazione di cui sopra, il path definitivo sarà /var/chroot32/hardy. Come accennavo, se cambiate queste sarete costretti a “rivedere” tutti i comandi che seguono!
$ sudo debootstrap --variant=buildd --arch i386 hardy \/var/chroot32/hardy http://archive.ubuntu.com/ubuntu/
Ricordando quanto ho detto sulla sintassi, effettuate il bootstrap come sopra: si tratta dell’operazione più lunga di tutto il processo, ma - se avete impostato tutto con criterio - una volta terminata sarà tutto più “liscio”. Nel nostro caso, sarà sufficiente copiare alcuni file per configuare il sistema.
$ sudo cp /etc/resolv.conf /var/chroot32/hardy/etc/resolv.conf && \sudo cp /etc/apt/sources.list /var/chroot32/hardy/etc/apt/
Si tratta di file “validi” a prescindere dall’architettura, quindi non abbiamo la necessità di modificarli. Possiamo, quindi, “loggarci” nel nuovo sistema…
$ sudo chroot /var/chroot32/hardy
A questo punto, siamo nella shell del chroot: come suggerito dal nome stesso dell’applicazione, abbiamo i privilegi da amministratore (quindi, è bene fare attenzione a ciò che si digita): dobbiamo configurare apt e altri aspetti “nevralgici”.
# apt-get update && apt-get install wget debconf devscripts gnupg \nano && apt-get update
Non servono molti altri “pacchetti”, oltre a questi: non preoccupatevi se inizialmente avrete un errore di validazione per le chiavi pubbliche. A breve “sistemeremo” anche questo.
# apt-get install locales dialog sudo ubuntu-keyring# locale-gen it_IT.UTF-8# tzselect; TZ='Europe/Italy'; export TZ# exit
Ed ecco che abbiamo “superato” il problema degli archivi (per la validazione dei repository di Ubuntu) e impostato la localizzazione e il fuso orario. Qualora vi dovesse dare problemi con tzselect, i “numeri” per l’Europa e l’Italia sono, rispettivamente, 8 e 23. Ora, possiamo procedere con la personalizzazione di fstab per automatizzare alcuni processi in avvio:
$ sudo gedit /etc/fstab/proc /var/chroot32/hardy/proc none rbind 0 0# /dev /var/chroot32/hardy/dev none rbind 0 0/sys /var/chroot32/hardy/sys none rbind 0 0/tmp /var/chroot32/hardy/tmp none rbind 0 0# /home /var/chroot32/hardy/home none rbind 0 0/media /var/chroot32/hardy/media none rbind 0 0/lib/modules /var/chroot32/hardy/lib/modules none rbind 0 0/var/run/dbus/ /var/chroot32/hardy/var/run/dbus/ none rbind 0 0
Specie se, come il sottoscritto, avete un sistema “instabile”… è buona norma, dopo questa modifica, fare una copia di backup di fstab. Non si sa mai! Come potete notare, alcuni mountpoint sono “commentati”: non è necessario aggiungerli (anche gli altri sono opzionali). Copiamo, ora, altri file di sistema, per avere gli stessi utenti e gruppi (con le relative password) nel chroot.
$ sudo cp /etc/passwd /var/chroot32/hardy/etc/$ sudo sed 's/\([^:]*\):[^:]*:/\1:*:/' /etc/shadow | sudo tee \/var/chroot32/hardy/etc/shadow$ sudo cp /etc/group /var/chroot32/hardy/etc/$ sudo cp /etc/hosts /var/chroot32/hardy/etc/$ sudo cp /etc/sudoers /var/chroot32/hardy/etc/
Se siete arrivati fin qui, non preoccupatevi: abbiamo quasi terminato tutte le operazioni! Dobbiamo tornare nell’ambiente chroot e impostare fstab per il sistema. Praticamente, il contenuto sarà il medesimo di cui sopra…
$ sudo chroot /var/chroot32/hardy# sudo editor /etc/fstab²/home /var/chroot32/hardy/home none bind 0 0/tmp /var/chroot32/hardy/tmp none bind 0 0/media/cdrom /var/chroot32/hardy/media/cdrom none bind 0 0/dev /var/chroot32/hardy/dev none bind 0 0proc-chroot /var/chroot32/hardy/proc proc defaults 0 0devpts-chroot /var/chroot32/hardy/dev/pts devpts defaults 0 0
Dal momento che, senza rendervene conto, avete installato anche sudo, potete procedere configurandolo: montiamo le partizioni (dal momento che non avete installato alcun desktop environment, etc., alcuni punti di mount non saranno ancora disponibili) e terminiamo - finalmente! - la preparazione di base.
# mount -a# echo hardy > etc/debian_chroot# exit
Da questo momento, potrete connettervi alla chroot con un semplice comando, ovvero schroot -c hardy -d: attenzione, perché - sebbene le operazioni “preliminari” siano concluse - non si tratta ancora di un sistema “completo”. A seconda di ciò che andrete a installare, dovrete soddisfare le dipendenze, ricordando di non avere installato/configurato un manager per X. Ma, di questo, parleremo un’altra volta…
[1] Non basterebbe un intervento “ad hoc“ per spiegare cosa sia un ambiente chroot: vi basti sapere che otterrete un sistema (completo) a 32-bit, “sotto” quello predefinito a 64-bit. ↑
[2] Questo comando aprirà l’editor predefinito: abbiamo installato nano, che è piuttosto “leggero”. Per uscire, usate [ctrl]+[x] e premete [y] per salvare! ↑



0 Responses to “Preparare un ambiente a 32-bit (schroot) per Adobe AIR”