Lingkungan Chroot

Lingkungan chroot umumnya digunakan untuk pekerjaan yang berhubungan dengan pengembangan dan pada dasarnya adalah perangkat lunak yang berhubungan dengan pembangunan. Ide yang bagus untuk selalu melakukan pekerjaan pengembangan di lingkungan chroot, karena sering membutuhkan instalasi paket pengembangan (dimana tujuan utamanya adalah untuk pembangunan paket). Contohnya adalah ketika sebuah aplikasi membutuhkan header dan versi pengembangan dari sebuah pustaka untuk membangun (misalnya libabc-dev). Pengguna biasa tidak membutuhkan versi pengembangan dari libabc. Maka akan lebih baik bila menginstal paket pengembangan seperti itu dalam chroot, membiarkan lingkungan operasi normal bersih dan tidak berantakan. Pertama, kita perlu mengsintal paket yang dibutuhkan:

sudo apt-get instal dchroot debootstrap
[Penting]

Pastikan untuk menginstal versi terakhir dari debootstrap yang berasal dari rilis Ubuntu dimana Anda sedang mencoba membuat chroot sekarang. Anda perlu men-download-nya dari packages.ubuntu.com dan menginstal secara manual dengan perintah dpkg -i.

Langkah berikut adalah untuk membuat, mengkonfigurasi dan memasuki lingkungan chroot.

sudo mkdir /var/chroot
echo "mychroot /var/chroot" | sudo tee -a /etc/dchroot.conf
sudo debootstrap --variant=buildd edgy /var/chroot/ http://archive.ubuntu.com/ubuntu/
[Catatan]

Membuat lingkungan chroot memerlukan waktu beberapa saat karena debootstrap akan men-download dan mengkonfigurasi instalasi Ubuntu minimal.

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

Agar dapat menggunakan apt dalam chroot, tambah source Ubuntu ke source apt chroot. Untuk sementara, abaikan setiap peringatan mengenai autentifikasi paket:

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

Jalankan perintah berikut untuk mengkonfigurasi locales:

sudo chroot /var/chroot/
apt-get instal dialog language-pack-en
exit
[Catatan]

Jika Anda ingin dukungan bahasa selain dari Inggris ganti en dalam language-pack-en dengan kode bahasa yang diinginkan.

Lalu, perbaiki kata sandi pengguna dan root untuk lingkungan chroot. Baris akhir di bawah adalah untuk menghindari peringatan sudo saat resolving dalam lingkungan chroot:

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/

Untuk mengaktifkan sudo, set up kata sandi root Anda dan pengguna pertama sudo dalam grup admin (untuk lingkungan chroot). Dalam perintah berikut, ganti "<user>" dengan nama pengguna yang akan digunakan dalam lingkungan chroot:

sudo cp /etc/sudoers /var/chroot/etc/
sudo chroot /var/chroot/
dpkg-reconfigure passwd
passwd <user>
exit

Berkas fstab harus dimodifikasi agar lingkungan chroot dapat mengakses direktori home sistem, direktori temp, dll. Catatan bahwa direktori home sistem yang sesungguhnya digunakan dalam lingkungan chroot.

sudo editor /etc/fstab

Tambahkan baris ini:

/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 

Mount entri baru fstab

sudo mount -a

Profil standar bash menyertakan informasi chroot dalam prompt. Untuk mengaktifkannya:

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

Sekarang gunakan chroot Anda (Anda dapat menghilangkan opsi -c mychroot jika hanya ada satu entri atau Anda hanya ingin mengunakan baris pertama dalam /etc/dchroot.conf). Parameter -d artinya lingkungan chroot sudah di-preserved. Parameter ini biasanya berguna jika Anda ingin chroot aplikasi yang menggunakan server X, manajer sesi Anda, dll.

dchroot -c mychroot -d