Ubuntu – How to install a package without root access

software installation

I have no root access on this machine.

I would like to know if there is a way I can download Ubuntu packages and install them as non-root?

Probably in my ~/bin or ~/usr/share or something like that? Would that work?

Best Answer

  • Apt doesn't support it directly, but there are ways to do it.

    One is to use schroot to create a non-root chroot. This is a somewhat involved process, but one you should be able find community help for as many developers set up chroot environments for compiling code.

    The second way I know of is to install from a .deb package. You may be able to download this from a web site or if it's in the Ubuntu repositories you can download with.

    apt-get download package
    

    Replace package with the name of the package

    Once you have your deb file call dpkg directly from the command line. The following example will install package.deb into your home directory.

    dpkg -i package.deb --force-not-root --root=$HOME 
    

    The disadvantage to using dpkg like this is that error messages are likely to be cryptic; dpkg doesn't automatically resolve dependencies or create the directory structure it expects.

    Finally, you could use the apt-get source command to fetch the source of the package and configure it to install locally. Usually this looks something like:

    apt-get source package
    cd package
    ./configure --prefix=$HOME
    make
    make install
    

    The disadvantage to this approach is that you need the development environment available for this approach to work at all, and you might find yourself compiling dozens of packages in order to resolve all the dependencies.

    EDIT:

    As dpkg -i doesn't work (see comments), I suggest this alternative:

    dpkg -x package.deb dir
    

    This will extract the .deb package to dir. Then you can export the PATH where the binary is. As long as all dependencies of the binary are installed, it should run as normal.