Chroot-miljö
Föregående
Nästa

Chroot-miljö

En chroot-miljö används ofta för utvecklingsarbete och är i grund och botten en installation av bygg-relaterade program. Det är alltid en bra idé att utföra utvecklingsarbete i en chroot-miljö, eftersom det ofta kräver att du installerar utvecklingspaket (som har som huvudsyfte att bygga paket). Ett exempel är när ett speciellt program kärver headerfiler och utvecklingsversionen av ett program för att det ska gå att bygga (t ex libabc-dev). En normal användare skulle inte behöva utvecklingsversionen av libabc). Därför är det bättre att installera sådana paket i en chroot, för att lämna den vanliga användarmiljön ren och klotterfri. Installera först de paket som behövs:

sudo apt-get install dchroot debootstrap

Viktigt

Se till att du installerar minst den versionen av debootstrap som följer med den Ubuntu-utgåvan du försöker skapa ett chroot för. Du kanske måtse ladda ner det från packages.ubuntu.com och manuellt installera det med dpkg -i.

De här stegen är för att skapa, konfigurera och sedan komma in i chroot-miljön.

sudo mkdir /var/chroot
echo "minchroot /var/chroot" | sudo tee -a /etc/dchroot.conf
sudo debootstrap --variant=buildd dapper /var/chroot/ http://archive.ubuntu.com/ubuntu/

Notera

Det tar ett tag att skapa chroot-miljön eftersom debootstrap laddar ner och konfigurerar en minimal Ubuntu-installation.

sudo cp /etc/resolv.conf /var/chroot/etc/resolv.conf
sudo cp /etc/apt/sources.list /var/chroot/etc/apt/
sudo chroot /var/chroot/

För att kunna använda apt i chroot:en, lägg till Ubuntus källor till chroot:ens apt-källor. Ignorera för stunden alla eventuella varningar om paketautentiering:

echo "deb http://archive.ubuntu.com/ubuntu dapper main restricted \
	universe multiverse" > /etc/apt/sources.list
echo "deb-src http://archive.ubuntu.com/ubuntu dapper main restricted \
	universe multiverse" >> /etc/apt/sources.list
apt-get update
apt-get install build-essential dh-make automake pbuilder gnupg lintian \
	wget debconf devscripts gnupg sudo
apt-get update
exit

Kör följande kommando för att konfigurera locales:

sudo chroot /var/chroot/
apt-get install locales dialog
dpkg-reconfigure locales
exit

Fixa sedan användarnamn och lösenord för chroot-miljön. Den sista raden nedan är för att undvika varningar när du slår upp i chroot-miljön:

sudo cp /etc/passwd /var/chroot/etc/
sudo sed 's/\([^:]*\):[^:]*:/\1:*:/' /etc/shadow | sudo tee /var/chroot/etc/shadow
sudo cp /etc/group /var/chroot/etc/
sudo cp /etc/hosts /var/chroot/etc/

För att aktivera sudo, ställ in ditt root-lösenord och den första sudo-användaren i admin-gruppen (för chroot-miljön). Byt ut "användare" mot det användarnamet du kommer använda i chroot-miljön:

sudo cp /etc/sudoers /var/chroot/etc/
sudo chroot /var/chroot/
dpkg-reconfigure passwd
passwd användare
exit

Systemets fstab behöver modifieras så att chroot-miljön får tillgång till systemets hemkataloger, tempmapp osv. Notera att systemets vanliga hemkataloger används i chroot-miljön.

sudo editor /etc/fstab

Lägg till de här raderna:

/home /var/chroot/home none bind 0 0
/tmp /var/chroot/tmp none bind 0 0 
proc-chroot /var/chroot/proc proc defaults 0 0 
devpts-chroot /var/chroot/dev/pts devpts defaults 0 0 

Montera de nya fstab-posterna

sudo mount -a

Standarprofilen för bash inkluderar chroot-information i prompten. För att göra det här synligt:

sudo chroot /var/chroot/
echo minchroot > /etc/debian_chroot
exit

Använd nu din chroot (du kan hoppa över -c minchroot om det bara finns en eller om du vill loggas in i den första i /etc/dchroot.conf). Parametern -d betyder att din miljö kommer att sparas. Parametern är oftast användbar om du vill använda chroot:ade program med din X-server, din sessionshanterare osv.

dchroot -c minchroot -d
Föregående
Nästa
Hem