我可以使用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 / local /中安装它可以使用apt-get或aptitude吗? 我知道我可以从源代码编译它并指定前缀选项来配置脚本或make install但是如果我可以使用apt-get做它会更好(并且更容易),因为我可以使用卸载,升级和其他东西apt-get提供的

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

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

我知道它将安装所需目录的目录是在.deb包中。 如果您需要更改它,则需要完全更改包。 这是因为安装方式和安装位置必须是源自deb包的软件包之间的标准,因此不会进行混乱安装。 deb包的结构,其中每种类型的文件用于确保基于debian的包的软件的正确标准化必须始终相同。 这样每个人都知道某个软件包总是安装软件包中的软件。