Compile e execute o Awesome em um ambiente não-root

1

Eu quero instalar o gerenciador de janelas Awesome . No ambiente em que quero configurá-lo, não tenho acesso root. É um ambiente compartilhado para todos os usuários da Faculdade em que eu estudo.

Eu sou capaz, difícil, de instalar uma máquina virtual (que eu fiz) no meu laptop, de modo a ser o root em algum lugar que eu possa fazer as coisas mais fáceis.

No meu caso, o ambiente no qual eu quero executar o gerenciador de janelas é um Ubuntu, então eu instalei essa distro em uma máquina virtual.

Eu tentei o seguinte:

[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

Agora tenho a lista de dependências incríveis, então baixei todas elas. Para isso, fiz o seguinte.

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

Agora, quero instalar as dependências. Para isso, eu configurei uma instalação falsa do dpkg na minha pasta pessoal:

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

Agora tentei instalar com o dpkg, mas não consegui:

[vm]$ 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:

[vm]$ 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?

Além disso, posso substituir facilmente os caminhos gravados no Awesome por caminhos que podem caber na minha instalação? De preferência com a variável de ambiente $ HOME no código.

    
por ssice 13.03.2011 / 17:25

0 respostas