当我使用 apt-get 安装软件时,它会安装到默认位置,即 /usr/bin、/usr/lib、/usr/share 等。例如,当我使用安装“Meld Diff Viewer”时
sudo apt-get install meld
并使用 whereis 命令找到它的位置,我得到以下输出
adnan@adnan-laptop:~$ whereis meld
meld: /usr/bin/meld /usr/lib/meld /usr/share/meld /usr/share/man/man1/meld.1.gz
有什么办法可以改变安装位置。假设我想将它安装在/usr/local/中,我可以使用 apt-get 或 aptitude 来安装它吗?我知道我可以从源代码编译它并指定前缀选项来配置脚本或进行安装,但如果我可以使用apt-get来完成它会更好(而且更容易),因为我可以使用卸载、升级和其他东西apt-get 提供
大多数程序都在一些硬编码的地方寻找他们需要的文件(如配置文件、GUI 资源等),如果这些文件不存在,它们将拒绝工作。要更改此位置,您通常需要重新编译程序(但有时您可以使用命令行选项或环境变量)。
dpkg 和 apt 提供了一种更改安装位置的方法(据我所知,它
--root=
在 dpkg 和Dir::Root
apt 配置中 - 但如果你真的需要它,请查看文档)。这样您就可以在您的系统上挂载另一个系统的根目录并在其上安装软件包(例如,如果您有无盘系统通过 NFS 从服务器挂载其根目录)。据我所知,它将安装所需软件的目录位于 .deb 包中。如果您需要更改它,则需要完全更改包。这是因为安装方式和安装位置必须是源自 deb 包的包之间的标准,因此不会进行混乱的安装。deb 包的结构,每种类型的文件用于确保基于 debian 的包的软件的正确标准化必须始终相同。通过这种方式,每个人都知道某个包总是在哪里安装它在包内的软件。