Como instalar o Awesome WM sem acesso root?

5

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?

    
por ssice 09.03.2011 / 01:40

2 respostas

1

Eu ainda não tinha sucesso, mas, por enquanto, consegui a maior parte.

Ao instalar cada dependência dentro de um ambiente fakeroot, o sistema acha que toda dependência está correta. Exceto pelo próprio Awesome.

A configuração está tão mal escrita que cada componente tem seu caminho codificado em cada arquivo de configuração. Quando tiver tempo, tentarei "regexly" resolver esse problema e recompilar o Awesome.

Se alguém mais tiver uma solução que eu gostaria de conhecer e discutir, talvez a marque como aceita.

    
por ssice 07.06.2011 / 21:35
0

Crie um script de shell chamado .xsession em seu $ HOME que faça o que for necessário para iniciar sua sessão e selecione "Sessão definida pelo usuário" na tela de login do GDM.

    
por Florian Diesch 03.06.2011 / 04:51