Ich möchte das installieren Genial Fenstermanager. In der Umgebung, in der ich es konfigurieren möchte, habe ich keinen Root-Zugriff. Es ist eine gemeinsame Umgebung für alle Benutzer der Fakultät, in der ich studiere.
Ich bin in der Lage, eine virtuelle Maschine (die ich gemacht habe) auf meinem Laptop zu installieren, um root zu sein, wo ich die Dinge einfacher machen kann.
In meinem Fall ist die Umgebung, in der ich den Fenstermanager ausführen möchte, Ubuntu, daher habe ich diese Distribution in einer virtuellen Maschine installiert.
Ich habe Folgendes versucht:
[vm]$ sudo apt-get install awesome
The following packages are about to be installed:
awesome libev3 libid3tag0 libimlib2 liblua5.1-0 libxcb-icccm1 libxcb-image0
libxcb-keysyms1 libxcb-property1 libxcb-randr0 libxcb-xinerama0
libxcb-xtest0 libxdg-basedir1 menu rlwrap
Do you want to continue [Y/n]? n
Ich habe jetzt die Liste der Abhängigkeiten für awesome, also habe ich sie alle heruntergeladen. Dafür habe ich folgendes gemacht.
[vm]$ pkgs="awesome libev3 libid3tag0 libimlib2 liblua5.1-0 libxcb-icccm1 libxcb-image0
libxcb-keysyms1 libxcb-property1 libxcb-randr0 libxcb-xinerama0
libxcb-xtest0 libxdg-basedir1 menu rlwrap" # this is just for not writing it all ;)
[vm]$ sudo apt-get install --download-only $pkgs
....
[vm]$ mkdir -p /tmp/x_debs
[vm]$ for pkg in $pkgs; do cp /var/cache/apt/archives/$pkg* /tmp/x_debs/; done
[ copies all *.deb from my dependencies to /tmp/x_debs ]
Jetzt möchte ich die Abhängigkeiten installieren. Dafür richte ich eine gefälschte dpkg-Installation in meinem Heimordner ein:
[vm]$ mkdir $HOME/root
[vm]$ mkdir -p $HOME/root/var/lib/dpkg/{triggers,updates}
[vm]$ touch $HOME/root/var/lib/dpkg/{available,status}
Jetzt habe ich versucht, mit Dpkg zu installieren, aber ich konnte nicht:
[vm]$ dpkg --force-not-root --root=$HOME/root --recursive -i /tmp/x_debs
Beim Versuch, Berechtigungen für die Pakete festzulegen und chroot auszuführen, ist ein Fehler aufgetreten. Da ich auf diesem Computer root-Zugriff habe, habe ich ihn mit folgenden Berechtigungen ausgeführt:
[vm]$ sudo dpkg --root=$HOME/root --recursive -i /tmp/x_debs
Dann hatte ich eine Menge Sachen (d. H. Alles: Abhängigkeiten und das eigene WM) installiert $HOME/root
.
Insbesondere wurden xcb- * -Bibliotheken in installiert $HOME/root/usr/lib
und die tolle binäre in $HOME/root/usr/bin/awesome
.
Wenn ich versuche, awesome so auszuführen, wie es ist, erhalte ich als Fehler, dass Bibliotheken nicht geladen werden konnten.
Das ist normal, da sie weder in / usr / lib noch in / lib sind. Also rannte ich export LD_LIBRARY_PATH=$HOME/root/usr/lib:$HOME/root/lib:${LD_LIBRARY_PATH}
und super würde versuchen zu laden.
Allerdings konnte ich gdm nicht zum laufen bringen awesome
in gnome oder ersetze es.
Ich habe es so gemacht, damit ich alles in meinen Ordner $ HOME / root kopieren, auf dem anderen Computer einfügen und laufen lassen kann. Gibt es eine andere Möglichkeit (vielleicht weniger verschwendeten Speicherplatz zu haben ..), dies zu tun?
Wie kann ich gdm dazu sagen exec awesome
ohne root-zugriff?
Kann ich außerdem die verdammt hartcodierten Pfade auf Awesome problemlos durch Pfade ersetzen, die zu meiner Installation passen? Am besten mit der Umgebungsvariablen $ HOME im Code.