Eu quero instalar o gerenciador de janelas Awesome .
No ambiente em que quero configurá-lo, não tenho acesso root.
Eu tenho uma máquina onde eu posso ser root (eu uso para isso uma máquina virtual no meu laptop).
Eu tentei o seguinte:
$ 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
Agora tenho a lista de dependências incríveis, então baixei todas elas.
Para isso, fiz o seguinte.
$ 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 ]
Agora, quero instalar as dependências.
Para isso, eu configurei uma instalação falsa do dpkg na minha pasta pessoal:
$ mkdir $HOME/root
$ mkdir -p $HOME/root/var/lib/dpkg/{triggers,updates}
$ touch $HOME/root/var/lib/dpkg/{available,status}
Agora tentei instalar com o dpkg, mas não consegui:
$ dpkg --force-not-root --root=$HOME/root --recursive -i /tmp/x_debs
Ele falhou ao tentar definir permissões para os pacotes e executar o chroot.
Como eu tenho acesso root nesta máquina, eu corri com privilégios:
$ sudo dpkg --root=$HOME/root --recursive -i /tmp/x_debs
Então eu tinha muitas coisas (isto é, tudo: dependências e o próprio WM) instaladas dentro de $HOME/root
.
Particularmente, as bibliotecas xcb- * foram instaladas em $HOME/root/usr/lib
e o incrível binário em $HOME/root/usr/bin/awesome
.
Se eu tentar executar o máximo, recebo como erro que as bibliotecas não puderam ser carregadas.
Isso é normal, pois eles não estão em / usr / lib nem em / lib. Então eu corri export LD_LIBRARY_PATH=$HOME/root/usr/lib:$HOME/root/lib:${LD_LIBRARY_PATH}
e awesome iria tentar carregar.
No entanto, não consegui fazer o gdm executar awesome
no gnome ou substituí-lo.
Eu fiz desta forma para copiar tudo na pasta $ HOME / root, colá-lo na outra máquina e executá-lo.
Existe alguma outra maneira (de ter menos espaço desperdiçado talvez ...) para fazer isso?
Como posso dizer ao gdm para exec awesome
sem acesso root?