web-dev-qa-db-fra.com

Comment installer Awesome WM sans accès root?

Je veux installer le gestionnaire de fenêtres Awesome . Dans l'environnement où je veux le configurer, je n'ai pas d'accès root.

J'ai une machine où je peux être root (j'utilise pour cela une machine virtuelle dans mon ordinateur portable).

J'ai essayé ce qui suit:

$ 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

J'ai maintenant la liste des dépendances pour awesome, alors je les ai toutes téléchargées. Pour cela, j'ai fait ce qui suit.

$ 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 ;)
$ Sudo apt-get install --download-only $pkgs
....
$ mkdir -p /tmp/x_debs
$ 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 ]

Maintenant, je veux installer les dépendances. Pour cela, j'ai installé une fausse installation de dpkg dans mon dossier personnel:

$ mkdir $HOME/root
$ mkdir -p $HOME/root/var/lib/dpkg/{triggers,updates}
$ touch $HOME/root/var/lib/dpkg/{available,status}

Maintenant, j'ai essayé d'installer avec dpkg, mais je ne pouvais pas:

$ dpkg --force-not-root --root=$HOME/root --recursive -i /tmp/x_debs

Il a échoué lors de la tentative de définition des autorisations pour les packages et de l'exécution de chroot. Comme j'ai un accès root sur cette machine, je l'ai exécuté avec des privilèges:

$ Sudo dpkg --root=$HOME/root --recursive -i /tmp/x_debs

Ensuite, j'ai eu beaucoup de choses (c'est-à-dire tout: les dépendances et le propre WM) installées dans $HOME/root. En particulier, les bibliothèques xcb- * ont été installées dans $HOME/root/usr/lib et le binaire génial dans $HOME/root/usr/bin/awesome.

Si j'essaie d'exécuter génial, je reçois comme erreur que les bibliothèques ne puissent pas être chargées. C'est normal, car ils ne sont ni dans/usr/lib ni dans/lib. J'ai donc lancé export LD_LIBRARY_PATH=$HOME/root/usr/lib:$HOME/root/lib:${LD_LIBRARY_PATH} et génial voudrait essayer de charger.

Cependant, je ne pouvais pas faire que gdm exécute awesome dans gnome ou le remplace.

Je l'ai fait ainsi pour pouvoir tout copier dans mon dossier $ HOME/racine, le coller dans l'autre ordinateur et le faire fonctionner. Y at-il un autre moyen (d’avoir peut-être moins d’espace perdu) pour le faire?

Comment puis-je dire à gdm de exec awesome sans accès root?

5
ssice

Je n'ai pas encore réussi, mais j'ai réussi à en tirer le maximum.

En installant chaque dépendance dans un environnement fakeroot, le système pense que chaque dépendance est correcte. Sauf pour Awesome lui-même.

La configuration est si mal écrite que chaque composant a son chemin codé en dur dans chaque fichier de configuration. Quand j'aurai le temps, j'essaierai de résoudre ce problème de manière "regexly" et de recompiler Awesome.

Si quelqu'un d'autre a une solution que j'aimerais connaître et en discuter, peut-être la marquer comme acceptée.

1
ssice

Créez un script Shell nommé .xsession dans votre $ HOME qui fait le nécessaire pour démarrer votre session et sélectionnez "Session définie par l'utilisateur" dans l'écran de connexion GDM.

0
Florian Diesch