Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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.

share|improve this question
    
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
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.