Problem
Ubuntu 20.04 wurde (erkennbar an der Versionsnummer) im April 2020 veröffentlicht und bringt viele neue Programmversionen mit viel neuer Funktionalität. Aber du willst deinen Rechner gerade nicht auf die neue Ubuntu-Version upgraden, weil du nicht die Zeit hast und ein stabil laufendes System in deinem Arbeitsalltag gerade sehr wichtig ist?
Das Programm, das du nutzen willst, wird über APT (sprich per apt-get/aptitude/apt) angeboten, sprich Docker oder snap sind keine Option? Eine VirtualBox/VMWare VM führt gerade bei grafischen Programmen zu einer zu schlechten Performanz? Ein PPA ("Personal Package Archives", quasi "nicht offizielle APT-Repositories") gibt es entweder nicht oder zieht dir zu viele weitere Abhängigkeiten mit rein?
Lösung
Hier möchte ich schroot ("Securely enter a change root environment") vorstellen. Die darunterliegende Basis ist chroot. Das macht nichts anderes als den sichtbaren Verzeichnisbaum von ausgeführten Programmen einzuschränken.
Zusätzlich mounted es die Ordner /dev, /proc, /sys und - je nach Konfiguration auch - /home mit in die chroot Umgebung.
Hierbei sieht man schon, dass hier keine Sandbox hergestellt wird, weil die chroot Umgebung so bspw. über /dev/sda Zugriff auf die gesamte Festplatte hat!
Beispiel
Setup
Wir machen das Ganze mal am Beispiel GIMP:
- Ubuntu 18.04 hat immer noch GIMP 2.8.22 vom Mai 2017
- Ubuntu 20.04 ENDLICH GIMP 2.10
Wir wollen jetzt also einfach GIMP 2.10 unter Ubuntu 18.04 nutzen:
Starten
Jetzt kann man die erstellte chroot Umgebung betreten.
Die Dateien /etc/passwd, /etc/group und /etc/shadow werden mit kopiert, man kann also mit seinem normalen User per sudo weitere Programme installieren.
# Installing apt packages:
sudo aptitude install schroot debootstrap
# Downloading a minimal Ubuntu installation:
sudo debootstrap focal ~/linux/focal/
# Accessing the created chroot environment
schroot -c focal
# Installing necessary packages (in our case at least GIMP):
(focal)bgebhard@laptop0xxx:~$ sudo aptitude install gimp
/etc/schroot/schroot.conf
[focal]
description=Ubuntu 20.04 Focal Fossa
type=directory
directory=/home/bgebhard/linux/focal
users=bgebhard
(focal)bgebhard@laptop0xxx:~$ DISPLAY=:0 gimp
Weiterführende Aspekte
- Das Ganze kann man auch bei neueren Versionen wie der bald veröffentlichen Version Ubuntu 22.04 anwenden.
- Anstatt debootstrap kann man Methoden anderer Linux-Distributionen nutzen und unter Ubuntu mittels schroot nutzen
---
Autor: Bastian Gebhardt / Senior Software Architect / Business Division Media
Toilet Paper #152 als Download: Darf's etwas weniger virtuell sein? (PDF)
Lust, das nächste ToiletPaper zu schreiben? Jetzt bei jambit bewerben!