Kompilieren und Ausführen von Awesome in einer Umgebung ohne Rootberechtigung


1

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.


Klingt so, als würden Sie es am besten aus dem Quellcode kompilieren.
Majenko

Entweder aus der Quelle, ich muss das Problem der absoluten Pfade in den Themen und überall durch Awesome beheben
ssice

@Matt Jenikins und übrigens, möchten Sie die Abhängigkeiten lieber einzeln von Hand kompilieren oder aus einer .deb herunterladen? Ich habe es von der Quelle aus versucht, aber die Schritte dauerten noch länger und ich musste für eine viel längere Zeit nach Abhängigkeiten suchen (da sich Deps selbst noch mehr Deps hatten)
ssice

Niemand hat jemals gesagt, dass es einfach ist ...: P
Majenko

@Matt Jenkins die Binaries funktionieren gut. Wenn ich es chrooten könnte, würde es funktionieren. Aber ich kann es nicht chrooten: Ich muss die Pfade ändern, um relativ zu meinem $ HOME ohne chroot zu arbeiten.
ssice
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.