1

I want to install the Awesome window manager. In the environment where I want to configure it I don't have root access. It's a shared environment for all the users in the Faculty I study in.

I am able, tough, to install a virtual machine (which I did) on my laptop so as to be root somewhere I can do things easier in.

In my case, the environment in which I want to execute the window manager is an Ubuntu, so I installed that distro in a Virtual Machine.

I have tried the following:

[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

I do now have the list of dependencies for awesome, so I downloaded them all. For that, I did the following.

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

Now, I want to install the dependencies. For that, I setup a fake dpkg install in my home folder:

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

Now I tried to install with dpkg, but I could not:

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

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

Besides, can I replace the damn-hardcoded paths on Awesome easily with paths that can fit my installation? Preferably with the $HOME environment variable in the code.

  • Sounds like you'd be best off compiling it from source. – Majenko Mar 13 '11 at 16:38
  • Either from source, I need to fix the absolute-paths problem in the themes and everywhere through Awesome – ssice Mar 13 '11 at 17:27
  • @Matt Jenikins and by the way, would you prefer to compile the dependencies by hand one by one or have them downloaded from a .deb? I tried from source, but the steps took even longer and I had to search for dependencies for a much longer time (as deps had themselves even more deps) – ssice Mar 13 '11 at 18:48
  • No one ever said it'd be easy... :P – Majenko Mar 13 '11 at 18:50
  • @Matt Jenkins the binaries work well. If I could chroot it, it would work. But I can't chroot it: I must change the paths to work relatively to my $HOME without chroot. – ssice Mar 13 '11 at 18:55

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.