Supporto nativo
Poiché Ubuntu 11.04 e Debian wheezy (7.0), Debian e Ubuntu hanno il supporto multiarch: è possibile combinare i pacchetti x86_32 (i386) e x86_64 (amd64) sullo stesso sistema in modo semplice. Questo è noto come supporto multiarch. Vedi la risposta di warl0ck per maggiori dettagli.
Nelle versioni precedenti, Debian e Ubuntu vengono fornite con un numero di librerie a 32 bit su amd64. Installa il pacchetto per avere un set base di librerie a 32 bit e possibilmente altri pacchetti che dipendono da questo. I file eseguibili a 32 bit devono essere eseguiti semplicemente se si dispone di tutte le librerie richieste. Per lo sviluppo, l'installazione e, eventualmente, altri pacchetti che dipendono da esso come . Potresti trovare utile anche su Debian. Passa l' opzione a gcc per compilare per ix86.ia32-libs 
gcc-multilib 
g++-multilibbinutils-multiarch 
ia32-libs-dev-m32
Si noti che uname -mverrà comunque mostrato x64_64se si esegue un kernel a 64 bit, indipendentemente dai componenti della modalità utente a 32 bit installati. Schroot descritto di seguito si occupa di questo.
schroot
Questa sezione è una guida all'installazione di una distribuzione simile a Debian "all'interno" di un'altra distribuzione Linux. È formulato in termini di installazione di Ubuntu a 32 bit all'interno di Ubuntu a 64 bit, ma dovrebbe applicarsi con lievi modifiche ad altre situazioni, come l'installazione di Debian instabile in Debian stable o viceversa.
introduzione
L'idea è di installare una distribuzione alternativa in una sottostruttura ed eseguire da quella. In questo modo è possibile installare un sistema a 32 bit su un sistema a 64 bit, oppure una diversa versione della propria distribuzione o un ambiente di test con diversi set di pacchetti installati.
Il chrootcomando e la chiamata di sistema avvia un processo con una vista del filesystem che è limitata a una sottostruttura dell'albero delle directory. Debian e Ubuntu forniscono schroot , un'utilità che avvolge questa funzione per creare un sottoambiente più utilizzabile.
Installa il schrootpacchetto
( Debian ) e il debootstrappacchetto
( Debian ). Debootstrap è necessario solo per l'installazione della distribuzione alternativa e può essere rimosso in seguito.
Installa schroot
Questo esempio descrive come configurare un ambiente alternativo Ubuntu 10.04LTS (lucid lynx) a 32 bit. Una configurazione simile dovrebbe funzionare con altre versioni di Debian e Ubuntu. Creare un file /etc/schroot/chroot.d/lucid32con i seguenti contenuti:
[lucid32]
description=Ubuntu 10.04LTS 32-bit
directory=/32
type=directory
personality=linux32
users=yourusername
groups=users,admin
La linea directory=/32dice a Schroot dove inseriremo i file dell'installazione a 32 bit. La riga username=yourusernamedice che all'utente yourusernamesarà permesso usare la schroot. La riga groups=users,admindice che gli utenti di entrambi i gruppi potranno usare la schroot; puoi anche mettere una users=…direttiva.
Installa la nuova distribuzione
Crea la directory e inizia a popolarla con debootstrap. Debootstrap scarica e installa un set principale di pacchetti per la distribuzione e l'architettura specificate.
mkdir /32
debootstrap --arch i386 lucid /32 http://archive.ubuntu.com/ubuntu
Hai quasi già un sistema funzionante; ciò che segue sono miglioramenti minori. Schroot sovrascrive automaticamente diversi file /32/etcquando viene eseguito, in particolare la configurazione DNS /etc/resolv.confe il database utente in /etc/passwde altri file (questo può essere sovrascritto, consultare la documentazione). Ci sono alcuni altri file che potresti voler copiare manualmente una volta per tutte:
cp -p /etc/apt/apt.conf /32/etc/apt/ # for proxy settings
cp -p /etc/apt/sources.list /32/etc/apt/ # for universe, security, etc
cp -p /etc/environment /32/etc/ # for proxy and locale settings
cp -p /etc/sudoers /32/etc/ # for custom sudo settings
Non ci sarà un file /etc/mtabo /etc/fstabnel chroot. Non consiglio di usare il mountcomando manualmente nel chroot, fallo dall'esterno. Ma creane uno abbastanza buono /etc/mtabper eseguire dfragionevolmente comandi come il lavoro.
ln -s /proc/mounts /32/etc/mtab
Con il directorytipo, schroot eseguirà monta bind di una serie di directory, vale a dire queste directory saranno condivisi con l'installazione genitore: /proc, /dev, /home, /tmp.
Servizi nel chroot
Come descritto qui, uno schroot non è adatto per eseguire demoni. I programmi nella schroot verranno uccisi quando si esce dalla schroot. Utilizzare uno schroot "semplice" invece di uno "directory" se si desidera che sia più permanente e impostare montaggi di bind permanenti /etc/fstabnell'installazione padre.
Su Debian e Ubuntu, i servizi si avviano automaticamente all'installazione. Per evitare ciò (che potrebbe interrompere i servizi in esecuzione al di fuori del chroot, in particolare perché le porte di rete sono condivise), stabilire una politica di non eseguire i servizi nel chroot. Inserisci il seguente script come /32/usr/sbin/policy-rc.de rendilo eseguibile ( chmod a+rx /32/usr/sbin/policy-rc.d).
#!/bin/sh
## Don't start any service if running in a chroot.
## See /usr/share/doc/sysv-rc/README.policy-rc.d.gz
if [ "$(stat -c %d:%i /)" != "$(stat -c %d:%i /proc/1/root/.)" ]; then
exit 101
fi
Popolare il nuovo sistema
Ora possiamo iniziare a usare il chroot. A questo punto ti consigliamo di installare qualche altro pacchetto.
schroot -c lucid32
sudo apt-get update
apt-get install lsb-core nano
...
Potrebbe essere necessario generare alcune impostazioni locali, ad es
locale-gen en_US en_US.utf8
Se lo schroot è per una versione precedente di Ubuntu come 8.04 (hardy), si noti che il pacchetto ubuntu-standard inserisce un MTA. Seleziona al nullmailerposto di quello predefinito postfix(potresti volere che il tuo chroot invii posta ma sicuramente non vuoi che ne riceva nessuno).
Andare avanti
Per ulteriori informazioni, consultare il schrootmanuale , le FAQ di Schroot e il
schroot.confmanuale . Schroot fa parte del progetto Debian autobuilder (buildd) . Potrebbero esserci ulteriori utili suggerimenti nella pagina della comunità di Ubuntu su debootstrap .
Macchina virtuale
Se è necessario l'isolamento completo dell'ambiente alternativo, utilizzare una macchina virtuale come KVM ( qemu-kvm
) o VirtualBox .