使用 apt-get 安装在 /usr/local/

使用 apt-get 安装在 /usr/local/

有没有办法使用 apt-get 专门安装在路径 /usr/local 中?我正在使用 Linux Mint 16,我想在此路径中安装一些库。我安装的所有库都安装在 /usr/ 中,只有其中一些在 /usr/local 中可用

我能够通过 tar.gz 文件安装 boost 库,但是有没有办法使用 apt-get install 来安装呢?

答案1

不应该有任何办法做到这一点,请参阅这个答案

这是因为文件系统层次标准明确保留/usr/local/用于系统范围内使用的程序和数据,但由系统管理员本地安装。请花时间阅读 FHS(其中还提供了理由)。

BT,你经常无法移动二进制文件和相关数据,因为大多数程序都包含内置文件路径。实际上,要将它们安装到 BT 下,/usr/local/ 你通常需要重新配置和重新编译它们。

因此,.deb安装下面的文件的包/usr/local/会违反惯例和标准。

答案2

不,你也没有必要这么做。

的目的/usr/local是区分由当地的管理员可以从随系统分发的软件(即可以通过 安装的软件apt-get)中获取此软件。

通过安装非打包的软件/usr,您可能会面临引发冲突的风险,这甚至可能导致系统包无缘无故地失败(例如,如果您用较新版本或不兼容的版本覆盖了库)。

软件包维护人员在编译软件包时必须做很多额外的工作,以确保它在每次安装时都能完美运行,无论安装了什么其他软件包。这只有当他们可以查看软件包存储库并了解可能安装的每个其他软件包时才有可能。(实际上,他们可能只关心软件包的一小部分;例如 libc 工具链和 SDL 库。)

相比之下,自己编译软件包既快又松散:您不必关心最大化可移植性;您只希望它在您的机器上构建和运行。您不必关心是否与 下的内容不兼容/usr,因为它不会被覆盖,并且您可以自由安装任何库的不兼容副本,只要您留在 下即可/usr/local。您甚至可能有非常具体的要求(例如,利用您机器的特定指令集来提高性能),这些要求不适用于您的 linux 发行版的其他用户。而且,如果它与您尚未安装的其他软件不兼容,您将在尝试安装新软件时处理该问题,而不是提前处理。

相关内容