apt-get的默认安装目录是/ opt。 我可以将其更改为其他目录吗?
答案 0 :(得分:8)
我能想到的最佳方法是使用符号链接
请注意,并非所有程序都安装在同一目录中,而/ opt可能不是最好的移动方式。 (参见结束仅移动一个文件夹/程序的例子)
这就是我对EasyPeasy(Ubuntu 10.04)所做的事情
请仔细遵循此代码,如果使用不当,某些命令可能会删除重要文件。
首先,您需要确保/ opt(或您的发行版默认apt-get安装目录)为空。如果您最有可能在opt文件夹中有数据,您可以先将其移至其他地方以便安全保存:
sudo mkdir /New_Location/newtmp # Generates Temporary Folder for Programs
sudo cp -a /opt/* /New_Location/newtmp # Moves Programs to Temp folder
备份后,您可以删除原始目录:
sudo rm -rf /opt/ # Removes opt directory
然后,您可以在具有大量空间的驱动器中创建新的Program Files文件夹并创建符号链接:
sudo mkdir /New_Location/Program-Files # Generates New Program Directory
sudo ln -s /New_Location/Program-Files /opt # Creates Symbolic Link
最后将所有旧程序文件移动到新文件夹并清理临时数据:
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
如果您只想移动占用空间大小的单个程序,则可以使用相同的过程。
例如: 移动Java(JVM约300MB)执行以下操作。 使用磁盘使用率分析器检查java目录。 我的是/ 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
此时最好进行重启,这应该清除缓存。
快乐黑客 有限的情报
答案 1 :(得分:5)
您不能:安装路径在包中进行硬编码(请参阅例如:http://packages.ubuntu.com/oneiric/i386/mono-runtime/filelist)。此路径通常是/ usr而不是/ opt,但它取决于包。如果要覆盖默认目录,则必须手动提取包的内容。但是,它无法工作:配置文件,有时甚至是二进制文件,将继续使用旧路径。因此,您必须更新它们才能使包正常工作。