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
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/
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