Dieses Howto zeigt euch, wie ihr mal schnell ein Debian in eurem laufen System installiert um dort in einer Sandbox mal Debian-like zu spielen. Non-Portage Software installieren etc.
Enstanden ist diese Howto auf Basis dieses Threads
stackless python installation?
Die Idee entsand aus der Unsicherheit heraus, wie unbekannte non-portage Software in das System eingreifen. Die Debian Sandbox sollte einem zeigen, wohin sich eine neue unbekannte Software ohne Portage-Unterstützung reinspielen will.
Sind dabei Gentoo System Teile betroffen /usr (im Gegensatz zu /usr/local) ist Vorsicht geboten, da die Software mögl. Teile des Gentoo beschädigen könnte.
1. Platz schaffen für unser kleines, süsses Debian.
An sich Geschmackssache, wie man es macht, ich bevorzuge aber sparse files, da diese a) nur nach Bedarf im System eingehängt werden und so den Rest meines Gentoo Systems nicht verwirren und b) kaum Platz wegnehmen.
Was ist ein "sparse" file? Ein sparse file ist ein File, welche angibt riesengroß zu sein, in Wahrheit aber recht winzig ist. Das geht so:
|
Quellcode
|
1
|
# dd of=debian-file bs=1k count=0 seek=1048576
|
erzeugt eine 1GB Datei.
|
Quellcode
|
1
2
3
4
|
# ls -lh debian-file
-rw-r--r-- 1 root root 1.0G 2007-10-30 17:00 debian-file
# du -h debian-file
0 debian-file
|
ls gibt an, die Datei wäre 1GB groß! du (Disk Usage) sagt, das diese Mega-Datei allerdings 0 bytes auf der Platte braucht
Also eine Mogelpackung *grins*
Nun machen wir mal ein FileSystem dort rein.
|
Quellcode
|
1
|
# mkfs.ext3 debian-file
|
und mounten die "partition":
|
Quellcode
|
1
2
|
# mkdir debian-etch
# mount -o loop debian-file debian-etch
|
2. Einspielen von Debian
Dazu brauchen wir debootstrap. Ich verwende hier die 1.0.6 Version, die ist aber zu diesem Zeitpunkt noch masked. Ergo:
|
Quellcode
|
1
2
|
# echo "=dev-util/debootstrap-1.0.6 ~x86" >> /etc/portage/package.keywords
# emerge debootstrap
|
Und dann starten wir das Teil:
|
Quellcode
|
1
|
# debootstrap --arch i386 etch ./debian-etch ftp://ftp.debian.de/debian
|
Die "--arch" option ist mit der euren zu ersetzen.
Dieser Prozess dauert ein wenig ... aber am Ende habt ihr ein bereits lauffähiges Debian-System. Nun wäre es bsp. an der Zeit dieses Debian-File mal weguzkopieren für spätere Spielereien. Das File sollte jetzt so rnd. 260MB auf der Platte brauchen ...
3. Rein ins Debian
Wir benötigen von innerhalb des Debian Netzzugriff. An sich passt ja alles, bloß wir haben noch keine gültige resolv.conf. Da schieben wir unsere noch rein. Auch will proc gemountet sein.
|
Quellcode
|
1
2
3
|
# cp /etc/resolv.conf debian-etch/etc/
# mount -t proc proc ./debian-etch/proc/
# chroot debian-etch/ /bin/bash
|
Nach diesem Schritt ist man bereits in Debian.
4. Fehlende Build-Chain einspielen
Debian ist jetzt da noch nackt. Holen wir noch Teile der Build-Chain rein (innerhalb des Debian-chroot):
|
Quellcode
|
1
|
# apt-get install autoconf automake libtool make gcc g++ python vim less sudo
|
5. Vorher-Nachher
Ein (innerhalb der Debian-Chroot)
|
Quellcode
|
1
|
# find /usr > usr.pre
|
erstellt die Datei usr.pre, welche alle Dateien auflistet, die *vor* der Installation der Dritt-Software im Debian ist.
Schiebt dann von außen (eurem Host-Gentoo System) den tarball der Software (oder was auch immer) in die Debian-Chroot und läßt die Installation mal laufen.
|
Quellcode
|
1
2
|
# find /usr > usr.post
# diff usr.pre usr.pre
|
gibt alle neuen Teile des Systems durch, welche durch die Software erstellt werden.
... Anmerkung: Software kann sich natürlich auch woanders hin einspielen. Bsp. /opt, ...
Vola! Fertig!
Das dabei erstellte Debian-File läßt sich wegkopieren, backupen und bei Bedarf zigmal instantiieren.
PS: Vergeßt nicht, wenn ihr fertig seid, zuerst das proc und dann das debian-file zu unmounten ...