Yerel destek
Ubuntu 11.04 ve Debian wheezy (7.0) 'ten beri, Debian ve Ubuntu çoklu erişim desteğine sahip: Aynı sistemdeki x86_32 (i386) ve x86_64 (amd64) paketlerini kolay bir şekilde karıştırabilirsiniz. Bu multiarch desteği olarak bilinir Daha fazla bilgi için warl0ck'in cevabına bakınız.
Eski sürümlerde, Debian ve Ubuntu amd64'te bir dizi 32-bit kütüphaneyle birlikte gelir. Temel bir 32-bit kitaplık grubuna ve muhtemelen buna bağlı olan başka paketlere sahip olmak için paketi yükleyin . Gerekli tüm kütüphanelere sahipseniz, 32 bitlik çalıştırılabilir dosyalarınız çalıştırılmalıdır. Geliştirme, yükleme ve yine muhtemelen buna bağlı olan diğer paketleri . Ayrıca Debian'da da yararlı bulabilirsiniz . Geçiş ix86 için derlemeye gcc seçeneği.ia32-libs
gcc-multilib
g++-multilib
binutils-multiarch
ia32-libs-dev
-m32
Hangi 32 bit kullanıcı modu bileşenini yüklediğinizden bağımsız olarak 64 bit çekirdek çalıştırıp çalıştırmadığınızı uname -m
göstermeye devam edeceğini unutmayın x64_64
. Aşağıda açıklanan Schroot bununla ilgileniyor.
SCHROOT
Bu bölüm, başka bir Linux dağıtımının içine "Debian" benzeri bir dağıtım yüklemek için bir rehberdir. 64 bitlik bir Ubuntu içine 32 bitlik bir Ubuntu takma anlamında ifade edilir, ancak Debian'ın içinde kararsız veya Debian'ın içinde kararsız hale gelmesi gibi diğer durumlarda küçük değişiklikler yapılması gerekir.
Giriş
Fikir, alt ağaçlara alternatif bir dağıtım kurmak ve bundan kaçmaktır. Bu şekilde 64 bit bir sisteme 32 bitlik bir sistem ya da dağıtımınızın farklı bir sürümünü ya da kurulu farklı paket kümeleriyle birlikte bir test ortamı kurabilirsiniz.
chroot
Komuta ve sistem çağrısı dizin ağacının bir alt ağaç için kısıtlanmış olan dosya sisteminin manzaralı bir süreci başlatır. Debian ve Ubuntu , daha kullanışlı bir alt ortam oluşturmak için bu özelliği tamamlayan bir yardımcı program olan schroot'u gönderiyor .
Yükleme schroot
paketi ( Debian ) ve debootstrap
paket ( Debian ). Debootstrap sadece alternatif dağıtımın kurulumu için gereklidir ve daha sonra çıkarılabilir.
Schroot'u ayarla
Bu örnekte, 32 bit Ubuntu 10.04LTS (lucid lynx) alternatif bir ortamın nasıl kurulacağı açıklanmaktadır. Benzer bir kurulum diğer Debian ve Ubuntu sürümleriyle de çalışmalıdır. /etc/schroot/chroot.d/lucid32
Aşağıdaki içeriğe sahip bir dosya oluşturun :
[lucid32]
description=Ubuntu 10.04LTS 32-bit
directory=/32
type=directory
personality=linux32
users=yourusername
groups=users,admin
Satır directory=/32
, schroot'a 32 bit kurulumun dosyalarını nereye koyacağımızı söyler. Çizgi username=yourusername
, kullanıcının yourusername
schroot kullanmasına izin verileceğini söylüyor . Çizgi groups=users,admin
, her iki gruptaki kullanıcıların schroot kullanmasına izin verileceğini söylüyor; ayrıca bir users=…
yönerge de koyabilirsiniz .
Yeni dağıtımı yükle
Dizini oluşturun ve debootstrap ile doldurmaya başlayın. Debootstrap, belirtilen dağıtım ve mimari için temel bir paket kümesini indirir ve yükler.
mkdir /32
debootstrap --arch i386 lucid /32 http://archive.ubuntu.com/ubuntu
Neredeyse çalışan bir sisteminiz var; takip eden küçük geliştirmelerdir. Schroot /32/etc
, çalıştırdığınız sırada, özellikle de DNS yapılandırmasında /etc/resolv.conf
ve kullanıcı veritabanında /etc/passwd
ve diğer dosyalarda otomatik olarak çalıştırır (bu geçersiz kılınabilir, belgelere bakın). Bir kez ve tümü için manuel olarak kopyalamak isteyebileceğiniz birkaç dosya daha var:
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
Bir dosyada /etc/mtab
veya /etc/fstab
chroot'ta olmayacak . mount
Komutu chroot içinde manuel olarak kullanmanızı tavsiye etmiyorum, dışarıdan yapın. Ancak, /etc/mtab
bu tür komutları df
makul şekilde yerine getirmek için yeterince iyi şeyler yaratın .
ln -s /proc/mounts /32/etc/mtab
İle directory
türüne, SCHROOT gerçekleştirecek bağlama bağlar bu dizinleri ana tesisin paylaşılacaktır yani dizinleri bir dizi: /proc
, /dev
, /home
, /tmp
.
Chroot'taki hizmetler
Burada tarif edildiği gibi, bir schroot daemon çalışan için uygun değildir. Schroot'taki programlar, schroot'tan çıktığınızda öldürülecek. Daha kalıcı olmasını istiyorsanız, “dizin” schroot yerine “plain” bir schroot kullanın /etc/fstab
ve üst kurulumda kalıcı bağlama bağları kurun .
Debian ve Ubuntu'da hizmetler kurulum sırasında otomatik olarak başlar. Bunu önlemek için (özellikle ağ bağlantı noktaları paylaşıldığı için chroot dışında çalışan hizmetleri bozabilecek), chroot'ta hizmet çalıştırmama politikası uygulayın . Aşağıdaki betiği farklı koyun ve /32/usr/sbin/policy-rc.d
yürütülebilir ( chmod a+rx /32/usr/sbin/policy-rc.d
) yapın.
#!/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
Yeni sistemi doldur
Şimdi chroot kullanmaya başlayabiliriz. Bu noktada birkaç paket daha yüklemek isteyeceksiniz.
schroot -c lucid32
sudo apt-get update
apt-get install lsb-core nano
...
Örneğin, birkaç yerel alan oluşturmanız gerekebilir
locale-gen en_US en_US.utf8
Schroot, 8.04 (hardy) gibi eski bir Ubuntu sürümü içinse, ubuntu standard paketinin bir MTA'yı çektiğini unutmayın. Seç nullmailer
varsayılan yerine postfix
(eğer posta göndermek için chroot'u isteyebilir ama kesinlikle herhangi almak istemiyorum).
Daha ileri gidiyor
Daha fazla bilgi için schroot
kılavuza , schroot SSS ve
schroot.conf
kılavuza bakın . Schroot, Debian autobuilder (buildd) projesinin bir parçasıdır . Ubuntu topluluk sayfasında debootstrap ile ilgili ek yararlı ipuçları olabilir .
Sanal makine
Alternatif ortamın tamamen izole edilmesine ihtiyacınız varsa, KVM ( qemu-kvm ) veya VirtualBox gibi bir sanal makine kullanın .