Sie sind nicht angemeldet.

1

30.10.2007, 17:58

Debian over Gentoo Sandbox

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 ... =)
http://www.dyle.org
IM-Account (Jabber!) sind auf meiner HP ...
There is no place like /home

http://www.gentooforum.de
http://www.gentoofreunde.org

<div>how to annoy a web developer?</span>

2

30.10.2007, 22:01

Danke danke danke. Das ging echt schnell :)

Noch ein kleiner Hinweis zu Punkt 1. Falls

Quellcode

1
# mount -o loop debian-file debian-etch
fehlschlägt mit der Meldung, "/dev/loop#" würde nicht existieren, dann fehlt euch das Kernelmodul "loop".
Im besten Fall, wenn es schon vorhanden ist, reicht ein

Quellcode

1
# modprobe loop

Funktioniert das nicht, müsst ihr den Kernel neu kompilieren. Das Modul findet ihr hier:

Quellcode

1
2
device drivers / block devices
<*>Loopback device support
<m> klappt natürlich auch...

Die fehlenden /dev/loops werden dann beim Laden des Moduls generiert.

[edit]Tips & Tricks Konventionen gelesen :rolleyes: :P[/edit]
"When using vi the screen of your terminal acts as a window into the file which you are editing. Changes which you make to the file are reflected in what you see."
Bill Joy 1978

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »rob« (31.10.2007, 12:15)


3

14.04.2008, 22:59

Quellcode

1
2
aptitude install locales
dpkg-reconfigure locales



--edit--

Für Ubuntu hardy:

Wen die Meldung stört

Quellcode

1
2
3
4
5
6
7
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = "en_US.utf8",
        LANG = "en_US.utf8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").


Quellcode

1
locale-gen en_US.UTF-8


Danach kann man sich noch die Datei "/var/lib/locales/supported.d/local" vornehmen und ein

Quellcode

1
dpkg-reconfigure locales

machen.
"Erst nachdem wir alles verloren haben, haben wir die Freiheit, alles zu tun."
"It's only after we've lost everything, that we're free to do anything!"

Jabber: Die ID kann via PN erfragt werden.