Letztes Jahr hatte ich mir zu Testzwecken ein Debian-System innerhalb von Ubuntu 10.10 mit Hilfe von Debootstrap installiert, um in diesem abgeschotteten Bereich einen Linuxkernel zu kompilieren. Damit das funktionierte griff ich auf eine typische Linuxfunktion, chroot, zurück.
Der Nachteil des Ganzen war, dass nur Root in so eine Chroot-Umgebung wechseln durfte und ich manuell /proc und /dev hinein mounten musste. Das alles geht einfacher und zwar mit Schroot.
Schroot nimmt einem die ganze Arbeit ab. Ab sofort kann man als normaler Benutzer in die Chroot-Umgebung wechseln und das manuelle Einbinden von Partitionen und Dateisystemen entfällt. Benutze ich einen kachelnden Fenstermanager befindet sich meine Entwicklungsumgebung (Debian Sid) im Terminalfenster auf der linken Seite und Debian Stable oder Testing auf der rechten. Ich kann Pakete innerhalb von Schroot kompilieren und das Experimentelle von meinem stabilen System trennen, muss mich aber nicht verrenken, um Dateien zwischen beiden auszutauschen, denn das beste von allem ist, sowohl die Schroot-Umgebung als auch die reguläre Arbeitsumgebung greifen auf das gleiche Home-Verzeichnis zurück.
Schritte um Schroot einzurichten
aptitude install debootstrap schroot
mkdir -p /home/chroot/sid-amd64
cd /home/chroot/
debootstrap --include=zsh --arch amd64 sid sid-amd64 http://ftp.de.debian.org/debian
- Kaffee holen.
vim /etc/schroot/schroot.conf
[sid] description=Debian sid (unstable) directory=/home/chroot/sid-amd64 type=directory root-users=apo groups=sbuild root-groups=root,sbuild aliases=unstable,default
schroot -c sid
In der schroot.conf lassen sich nach diesem Schema weitere Umgebungen definieren, z.B. für Ubuntu! oder ein i386-System. Da ich [sid] mit dem Alias default versehen habe, kann ich auch direkt nur mit dem Befehl schroot
in die Umgebung gelangen. Ich verwende ZSH als Shell und habe mir dieses Paket schon bei der Installation mit Debootstrap hinzugefügt. Ob ihr Gruppen für euren Benutzer oder gar mehrere anlegt ist Geschmackssache. Zur Zeit experimentiere ich ein wenig damit.
Die Sid-Umgebung lässt sich genauso konfigurieren, wie ihr das von eurem normalen System auch gewohnt seid. Das liegt vor allem daran, dass Schroot die ganze Arbeit erledigt und die Konfiguration in /etc/schroot/default bei diesem Setup abarbeitet. Mein Home-Verzeichnis wird ebenfalls direkt in diesen eigenständigen Bereich eingebunden, so dass ich mich nicht lange mit Kleinarbeit aufhalten muss.
Schroot bietet noch viele weitere interessante Optionen und Möglichkeiten. Siehe auch man schroot und man schroot.conf. Ich muss noch herausfinden, wie ich X-Anwendungen an mein normales System weiterleiten kann. Zum Kompilieren von Paketen ist diese (S)chroot-Umgebung aber schon jetzt eine sehr praktische und auch performante Erleichterung, die eine virtuelle Maschine für die gleiche Aufgabe ersetzen kann.
Cool 😀 Keine Ahnung wozu ich das nutzen würde aber ich finde die Idee einfach so klasse das ich es mal ausprobieren muss mit deiner Anleitung. Vielleicht kann ich ja so mal ein bisschen Umgang mit Debian üben. 🙂
Lass mich wissen, ob sie nicht vielleicht zu kurz geraten ist und ich einen Schritt vergessen habe. Zum Starten sollte es aber reichen. 🙂
Nein ist sie nicht.
Habe die Installation ohne weitere Lektüre hinbekommen, und ich bin ganz sicher kein Profi in Sachen Linux. 😀
Im Prinzip müsste es ja ähnlich unter Debian gehen, oder? Inzwischen bin ich zufriedener Debian-Nutzer, jetzt würde ich gerne mal ein Arch innerhalb meines Debian ausprobieren.
Ja, funktioniert genauso unter Debian. Debian in Arch müsste mit debootstrap gehen, wenn du herausfindest wie es andersherum geht, immer her mit der Info. 🙂
Moin,
ja habs unter Debian auch schon erfolgreich zum laufen bekommen.
LG
Kalle
Moin Apo,
eigentlich bin ich wegen etwas anderem auf deiner Homepage gelandet. Da ich aber schon mal hier war klickte ich mich etwas durch deine Artikel und blieb hier hängen.
Eigentlich wollte ich das nur kurz als Spielerei ausprobieren, aber dann fand ich die Möglichkeit von X11 Anwendungen in einer chroot Umgebung doch sehr interessant.
Da ich gelesen habe, dass du damit auch noch experimentierst, wollte ich eine Möglichkeit vorstellen. Daher habe ich dazu einen kurzen Artikel auf meiner Homepage veröffentlicht.
LG
Kalle
Spitze! Hatte mich in letzter Zeit mit diesem Problem nicht mehr befasst, aber das ist genau das, nach dem ich gesucht habe. Besten Dank.
Gruß
Markus
Wäre nett, wenn du dann auch nen Kommentar bei mir auf der Seite lassen könntest. 🙂
Gute Nacht
Kalle
Könnte heutzutage vielleicht auch systemd-nspawn hilfreich für solche Zwecke sein?
systemd-nspawn klingt nach einer Alternative, aber habe ich bisher noch nicht ausprobiert. Mit schroot arbeite ich jeden Tag und es funktioniert sehr gut. (Debian Sid in schroot, Debian Testing als normale Arbeitsumgebung).