I want to install the Awesome window manager.
In the environment where I want to configure it I don't have root access.
I do have a machine were I can be root (I use for this a virtual machine in my laptop).
I have tried the following:
$ 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
I do now have the list of dependencies for awesome, so I downloaded them all.
For that, I did the following.
$ 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 ]
Now, I want to install the dependencies.
For that, I setup a fake dpkg install in my home folder:
$ mkdir $HOME/root
$ mkdir -p $HOME/root/var/lib/dpkg/{triggers,updates}
$ touch $HOME/root/var/lib/dpkg/{available,status}
Now I tried to install with dpkg, but I could not:
$ dpkg --force-not-root --root=$HOME/root --recursive -i /tmp/x_debs
It failed while trying to set permissions for the packages and running chroot.
As I do have root access in this machine, I ran it with privileges:
$ sudo dpkg --root=$HOME/root --recursive -i /tmp/x_debs
Then I had a lot of stuff (i.e., everything: dependencies and the own WM) installed inside $HOME/root.
Particularly, xcb-* libraries were installed in $HOME/root/usr/lib and the awesome binary in $HOME/root/usr/bin/awesome.
If I try to execute awesome as is I get as an error that libraries could not be loaded.
That's normal, as they are not in /usr/lib nor in /lib. So I ran export LD_LIBRARY_PATH=$HOME/root/usr/lib:$HOME/root/lib:${LD_LIBRARY_PATH} and awesome would try to load.
However, I could not make gdm to run awesome within gnome or replacing it.
I did it this way so I can copy everything in my $HOME/root folder, paste it in the other machine and have it running.
Is there any other way (to have less wasted space maybe..) to do this?
How can I tell gdm to exec awesome without root access?