Ubuntu – use apt-get or aptitude to install software to non standard location


When I install a software using apt-get it installs to default locations i.e to /usr/bin, /usr/lib, /usr/share and etc. For example when I install "Meld Diff Viewer" using

sudo apt-get install meld

and use whereis command to find its location, I get the following output

adnan@adnan-laptop:~$ whereis meld
meld: /usr/bin/meld /usr/lib/meld /usr/share/meld /usr/share/man/man1/meld.1.gz

Is there any way to change the install location. Lets say if I want to install it in /usr/local/ can I do it using apt-get or aptitude? I know I can compile it from source and specify prefix option to configure script or make install but it would be better (and really easier) if I could do it using apt-get as I would be able to use uninstall, upgrade and other stuff that apt-get offers

Best Answer

Most programs are looking for files they need (like config files, GUI ressources, ...) on a few hardcoded places and will refuse to works if those files aren't there. To change this places you usually need to recompile the programs (but sometimes you can use command line options or environment variables instead).

dpkg and apt offer a way to change the install location (as far as I remember it's --root= with dpkg and Dir::Root in the apt config - but check the docs if you really need it). This is so you can mount another systems's root dir on your system and install packages on it (like if you have diskless systems mounting their root via NFS from a server).