The default install directory of apt-get is /opt. Can I change it to another directory?
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.