How can I change the apt-get install directory

tommywang picture tommywang · Dec 19, 2011 · Viewed 46.4k times · Source

The default install directory of apt-get is /opt. Can I change it to another directory?

Answer

Limited Intelligence picture Limited Intelligence · May 14, 2012

Best way I can think of is to use a symbolic link

note that not all programmes are installed to the same directory and /opt may not be the best thing to move. (see end for example of moving only one folder/program)

This is what I did with EasyPeasy (Ubuntu 10.04)

Follow this code carefully some of the commands can delete important files if used incorrectly.

First you need to make sure /opt (or your distros default apt-get install directory) is empty. If you have data in the opt folder, which you most likely do, you can move it to somewhere else first for safe keeping:

sudo mkdir /New_Location/newtmp                                      # Generates Temporary Folder for Programs 
sudo cp -a /opt/* /New_Location/newtmp                               # Moves Programs to Temp folder

Once backed up you can remove the original directory:

sudo rm -rf /opt/                                                    # Removes opt directory

You can then create your new Program Files folder in a drive with lots of space and create a symbolic link:

sudo mkdir /New_Location/Program-Files                               # Generates New Program Directory
sudo ln -s /New_Location/Program-Files /opt                          # Creates Symbolic Link

Finally move all your old program files to your new folder and clean up the temporary data:

sudo cp -a /New_Location/newtmp/* /New_Location/Program-Files        # Moves Programs to Program Files Folder 
sudo rm -rf /New_Location/newtmp/                                    # Removes Temp folder

If you only wanted to move a single program which is taking up a hunk of your space you could use the same process.

eg: to move Java (JVM approx 300MB) do the following. check directory of java using disk usage analyser. mine is /usr/lib/jvm

sudo mkdir /New_Location/Program-Files/Java                          # Generates New Program Directory
sudo cp -a /usr/lib/jvm/* /New_Location/Program-Files/Java            # Moves Program to new folder
sudo rm -rf /usr/lib/jvm                                             # Removes opt directory
sudo ln -s /New_Location/Program-Files/Java /usr/lib/jvm             # Creates Symbolic Link

Its best at this point to do a restart which should clear the cache.

Happy Hacking Limited Intelligence