我可以使用 apt-get 或 aptitude 将软件安装到非标准位置吗?

我可以使用 apt-get 或 aptitude 将软件安装到非标准位置吗?

当我使用 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/本地/我可以使用 apt-get 或 aptitude 来做到这一点吗?我知道我可以从源代码编译它并指定前缀选项配置脚本或进行安装但如果我可以使用apt-get因为我可以使用 apt-get 提供的卸载、升级和其他功能

答案1

大多数程序都会在几个硬编码的地方寻找它们需要的文件(如配置文件、GUI 资源等),如果这些文件不存在,它们就会拒绝工作。要更改这些位置,通常需要重新编译程序(但有时您可以使用命令行选项或环境变量来代替)。

dpkg 和 apt 提供了一种更改安装位置的方法(据我记得它是--root=使用 dpkg 和Dir::Rootapt 配置 - 但如果您确实需要它,请查看文档)。这样您就可以在您的系统上安装另一个系统的根目录并在其上安装软件包(就像您有无盘系统通过 NFS 从服务器安装其根目录一样)。

答案2

据我所知,安装所需软件的目录位于 .deb 包内。如果您需要更改该目录,则需要更改整个包。这是因为安装方式和安装位置必须是源自 deb 包的包之间的标准,这样就不会出现混乱的安装。deb 包的结构(每种类型的文件都位于其中,以确保基于 debian 的包的软件正确标准化)必须始终相同。这样,每个人都知道某个包总是将其包内的软件安装在哪里。

相关内容