Dukungan asli
Sejak Ubuntu 11.04 dan Debian wheezy (7.0), Debian dan Ubuntu memiliki dukungan multiarch: Anda dapat mencampur paket x86_32 (i386) dan x86_64 (amd64) pada sistem yang sama secara langsung. Ini dikenal sebagai dukungan multiarch. Lihat jawaban warl0ck untuk lebih jelasnya.
Dalam rilis yang lebih lama, Debian dan Ubuntu dikirimkan dengan sejumlah perpustakaan 32-bit di amd64. Instal paket untuk memiliki satu set dasar perpustakaan 32-bit, dan mungkin paket lain yang bergantung pada yang satu ini. Eksekusi 32-bit Anda seharusnya dijalankan jika Anda memiliki semua pustaka yang diperlukan. Untuk pengembangan, instal , dan lagi mungkin paket lain yang bergantung padanya seperti . Anda mungkin menemukan berguna juga, dan di Debian. Lewati opsi untuk gcc untuk mengkompilasi untuk ix86.ia32-libs
gcc-multilib
g++-multilib
binutils-multiarch
ia32-libs-dev
-m32
Perhatikan bahwa uname -m
masih akan muncul x64_64
jika Anda menjalankan kernel 64-bit, terlepas dari komponen mode pengguna 32-bit apa yang telah Anda instal. Schroot yang dijelaskan di bawah menangani ini.
Schroot
Bagian ini adalah panduan untuk menginstal distribusi mirip-Debian “di dalam” distribusi Linux lainnya. Itu adalah kata dalam hal menginstal Ubuntu 32-bit di dalam 64-bit Ubuntu, tetapi harus diterapkan dengan modifikasi kecil untuk situasi lain, seperti menginstal Debian tidak stabil di dalam stabil Debian atau sebaliknya.
pengantar
Idenya adalah untuk menginstal distribusi alternatif dalam subtree dan lari darinya. Anda dapat menginstal sistem 32-bit pada sistem 64-bit dengan cara itu, atau rilis distribusi Anda yang berbeda, atau lingkungan pengujian dengan paket paket berbeda yang diinstal.
The chroot
komando dan sistem panggilan dimulai proses dengan pemandangan filesystem yang terbatas pada subtree dari pohon direktori. Debian dan Ubuntu mengirimkan schroot , sebuah utilitas yang membungkus fitur ini untuk membuat sub-lingkungan yang lebih bermanfaat.
Instal schroot
paket ( Debian ) dan debootstrap
paket ( Debian ). Debootstrap hanya diperlukan untuk instalasi distribusi alternatif dan dapat dihapus sesudahnya.
Siapkan schroot
Contoh ini menjelaskan cara mengatur lingkungan alternatif Ubuntu 10.04LTS (lucid lynx) 32-bit. Pengaturan serupa harus bekerja dengan rilis Debian dan Ubuntu lainnya. Buat file /etc/schroot/chroot.d/lucid32
dengan konten berikut:
[lucid32]
description=Ubuntu 10.04LTS 32-bit
directory=/32
type=directory
personality=linux32
users=yourusername
groups=users,admin
Baris directory=/32
memberitahu schroot di mana kita akan meletakkan file instalasi 32-bit. Baris username=yourusername
mengatakan pengguna yourusername
akan diizinkan untuk menggunakan schroot. Baris tersebut groups=users,admin
mengatakan bahwa pengguna dalam kelompok mana pun akan diizinkan untuk menggunakan schroot; Anda juga bisa menaruh users=…
arahan.
Instal distribusi baru
Buat direktori dan mulai mengisinya dengan debootstrap. Debootstrap mengunduh dan menginstal paket inti untuk distribusi dan arsitektur yang ditentukan.
mkdir /32
debootstrap --arch i386 lucid /32 http://archive.ubuntu.com/ubuntu
Anda hampir memiliki sistem kerja; berikut ini adalah peningkatan kecil. Schroot secara otomatis menimpa beberapa file /32/etc
ketika Anda menjalankannya, khususnya konfigurasi DNS di /etc/resolv.conf
dan database pengguna di /etc/passwd
dan file lainnya (ini dapat ditimpa, lihat dokumentasi). Ada beberapa file lagi yang mungkin ingin Anda salin secara manual sekali dan untuk semua:
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
Tidak akan ada file /etc/mtab
atau /etc/fstab
chroot. Saya tidak merekomendasikan menggunakan mount
perintah secara manual di chroot, lakukan dari luar. Tapi jangan buat yang cukup bagus /etc/mtab
untuk membuat perintah seperti df
bekerja dengan wajar.
ln -s /proc/mounts /32/etc/mtab
Dengan directory
jenis, schroot akan melakukan mengikat tunggangan dari sejumlah direktori, yaitu direktori akan dibagi dengan instalasi orangtua: /proc
, /dev
, /home
, /tmp
.
Layanan di chroot
Seperti dijelaskan di sini, schroot tidak cocok untuk menjalankan daemon. Program di schroot akan dibunuh ketika Anda keluar dari schroot. Gunakan schroot "biasa" alih-alih schroot "direktori" jika Anda menginginkannya lebih permanen, dan atur pemasangan ikatan permanen /etc/fstab
pada instalasi induk.
Di Debian dan Ubuntu, layanan mulai secara otomatis saat instalasi. Untuk menghindari hal ini (yang dapat mengganggu layanan yang berjalan di luar chroot, khususnya karena port jaringan dibagikan), buat kebijakan tidak menjalankan layanan di chroot. Letakkan skrip berikut sebagai /32/usr/sbin/policy-rc.d
dan buat itu executable ( 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
Mengisi sistem baru
Sekarang kita bisa mulai menggunakan chroot. Anda ingin menginstal beberapa paket lagi pada saat ini.
schroot -c lucid32
sudo apt-get update
apt-get install lsb-core nano
...
Anda mungkin perlu membuat beberapa lokal, mis
locale-gen en_US en_US.utf8
Jika schroot untuk rilis Ubuntu yang lebih lama seperti 8.04 (hardy), perhatikan bahwa paket standar-ubuntu menarik dalam MTA. Pilih nullmailer
sebagai ganti default postfix
(Anda mungkin ingin chroot mengirim email tetapi Anda jelas tidak ingin menerima).
Melangkah lebih jauh
Untuk informasi lebih lanjut, lihat schroot
manual , FAQ schroot dan
schroot.conf
manual . Schroot adalah bagian dari proyek autobuilder (buildd) Debian . Mungkin ada tips berguna tambahan di halaman komunitas Ubuntu tentang debootstrap .
Mesin virtual
Jika Anda membutuhkan isolasi lengkap dari lingkungan alternatif, gunakan mesin virtual seperti KVM ( qemu-kvm ) atau VirtualBox .