5

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?

2 Answers 2

1

I didn't still success, but as for now I managed to get most of it.

By installing each dependency within a fakeroot environment the system thinks every dependency is right. Except for Awesome itself.

The config is so poorly written that every single component has its path hardcoded in every config file. When I have time later I'll try to "regexly" solve that problem and recompile Awesome.

If anybody else does have a solution I'd like to know and discuss it, maybe mark it as accepted.

0

Create a shell script named .xsession in your $HOME that does whatever it needs to startyour session and select "User defined session" at the GDM login screen.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .