从源软件安装的软件会被自动更新覆盖吗?

从源软件安装的软件会被自动更新覆盖吗?

作为示例,我使用其教程从源代码安装了 libcurl v7.30:

./configure --disable-ipv6 --enable-ares
 make
 make install

在此之前,我已经从官方存储库安装了 libcurl。

安装会被自动更新覆盖吗?如果会,那么从源代码安装而不干扰官方安装的正确方法是什么。

如果该包已安装,是否应该在新安装之前将其删除?

我想另一种方法是安装在不同的文件夹中,但是这如何改变用法?(就我而言)编译) 并且这是否会导致引用出现问题?

答案1

在大多数情况下,从存储库安装的软件可能会(有时)覆盖源代码构建的软件。如果您想阻止这种情况发生(即让另一个源代码构建版本停留在您的系统中,并且易于删除),请继续阅读。始终建议设置源代码构建,以便它安装到不同的目录。如果您想恢复软件的 Ubuntu 版本,请运行

sudo apt-get install --reinstall libcurl3

首先,你应该阅读源代码的 README 或 INSTALL 文件了解参数。这样,​​您就绝对知道要解析的参数以及应该将其发送到哪个命令。但以下是一种通用方法,在我(诚然)有限的经验中,它适用于大多数源代码构建

从源代码编译

由于最佳实践是使用checkinstall,我们将首先安装它:

sudo apt-get install checkinstall

正如 apmouse 所说,这将使您在删除编译包时更加轻松。

的参数通常./configure如下--prefix <directory>使用:

auto-apt run ./configure --prefix=/opt/libcurl

然后完成其余的源构建过程:

make
sudo checkinstall

make命令将为您创建目录并安装文件。

删除构建的包

如果您需要删除源文件,只需运行:

sudo dpkg -r libcurl

如果你需要从终端访问文件,请查看这个 AskUbuntu问题有关如何将新路径添加到$PATH变量的一些想法。

相关内容