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

897
ssice

Ich möchte den Awesome Fenstermanager installieren . 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 auch gemacht habe) auf meinem Laptop zu installieren, um an einem Ort root zu sein, in dem ich die Dinge einfacher erledigen kann.

In meinem Fall ist die Umgebung, in der ich den Fenstermanager ausführen möchte, ein Ubuntu, also 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 getan.

[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 ] 

Nun möchte ich die Abhängigkeiten installieren. Dafür installiere ich eine gefälschte dpkg-Installation in meinem Home-Ordner:

[vm]$ mkdir $HOME/root [vm]$ mkdir -p $HOME/root/var/lib/dpkg/ [vm]$ touch $HOME/root/var/lib/dpkg/ 

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 Root-Zugriff auf diesem Computer habe, habe ich ihn mit Privilegien ausgeführt:

[vm]$ sudo dpkg --root=$HOME/root --recursive -i /tmp/x_debs 

Dann hatte ich eine Menge Sachen (dh alles: Abhängigkeiten und das eigene WM) eingebaut $HOME/root. Insbesondere wurden xcb- * -Bibliotheken in $HOME/root/usr/libund die fantastische Binärdatei installiert $HOME/root/usr/bin/awesome.

Wenn ich versuche, awesome auszuführen, bekomme ich als Fehler, dass Bibliotheken nicht geladen werden konnten. Das ist normal, da sie weder in / usr / lib noch in / lib liegen. Also lief ich export LD_LIBRARY_PATH=$HOME/root/usr/lib:$HOME/root/lib:$und genial würde versuchen zu laden.

Ich konnte gdm jedoch nicht dazu bringen, awesomeinnerhalb von gnome zu laufen oder es zu ersetzen.

Ich habe es auf diese Weise gemacht, damit ich alles in meinem $ HOME / root-Ordner kopieren, in den anderen Computer einfügen und ausführen lassen kann. Gibt es eine andere Möglichkeit (um weniger Platz zu verlieren ...), um dies zu tun?

Wie kann ich gdm exec awesomeohne root-Zugriff mitteilen ?

Kann ich außerdem die verdammt hartcodierten Pfade auf Awesome problemlos durch Pfade ersetzen, die zu meiner Installation passen? Vorzugsweise mit der Umgebungsvariable $ HOME im Code.

1
Klingt, als ob Sie es am besten wären, es aus dem Quellcode zu kompilieren. Majenko vor 13 Jahren 0
Entweder von der Quelle aus muss ich das Problem der absoluten Pfade in den Themen und überall in Awesome beheben ssice vor 13 Jahren 0
@Matt Jenikins. Übrigens, möchten Sie es vorziehen, die Abhängigkeiten manuell nacheinander zu kompilieren oder aus einer .deb-Datei herunterzuladen? Ich habe es von der Quelle aus versucht, aber die Schritte dauerten noch länger und ich musste viel länger nach Abhängigkeiten suchen (da deps sich noch mehr deps hatte) ssice vor 13 Jahren 0
Niemand hat jemals gesagt, dass es einfach wäre ...: P Majenko vor 13 Jahren 0
@Matt Jenkins die Binaries funktionieren gut. Wenn ich es chroot könnte, würde es funktionieren. Aber ich kann es nicht chroot: Ich muss die Pfade ändern, um relativ zu meinem $ HOME ohne chroot zu arbeiten. ssice vor 13 Jahren 0

0 Antworten auf die Frage