如果我从源代码构建包,我该如何卸载或完全删除?

如果我从源代码构建包,我该如何卸载或完全删除?

我使用源代码构建了一个如下所示的包:

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib --with-package-name="Myplugin" --with-package-origin="http://www.ubuntu.org/" --enable-gtk-doc --disable-static
make
make install

但不幸的是,我发现它是最新版本,并且有很多错误,所以我需要删除/卸载它。但我该怎么做呢?我试过了,make clean; make uninstall但我仍然看到它存在:

# pkg-config --list-all | grep Myplugin
myplugin-....
$ ls /usr/lib/myplugin/libXYZ.so
exist....

现在如何将其删除?

答案1

通常你可以使用:

make uninstall

或者

sudo make uninstall

如果应用程序以 root 身份安装。

但这只有在软件包的开发人员制定了良好的卸载规则时才会起作用。

您还可以尝试通过运行以下命令来查看安装软件的步骤:

make -n install

然后尝试手动撤销这些步骤。

将来为了避免此类问题,请尝试使用checkinstall而不是make install尽可能地(据我所知,除非您想同时保留编译版本和打包版本,否则总是如此)。它将创建并安装一个 deb 文件,然后您可以使用您最喜欢的包管理器将其卸载。

make clean通常清理构建目录,不会卸载软件包。当你想确保整个东西都被编译,而不仅仅是被更改的文件时,可以使用它。

答案2

我不认为这是一个错误,阅读并学习在从源代码安装时使用 checkinstall 是个好主意。

您可以从存储库中安装 checkinstall,这是该包的简短描述;

CheckInstall 跟踪您的安装脚本(“make install”,“make install_modules”,“setup”等)创建或修改的所有文件,构建标准二进制包并将其安装在系统中,使您能够使用发行版的标准包管理实用程序将其卸载。

以下链接可能有助于更好地理解。 http://en.wikipedia.org/wiki/CheckInstall

http://checkinstall.izto.org/

答案3

这不是一个错误 - 从源代码编译是一种不受支持的安装软件的方法,它完全绕过了包管理系统(由软件中心使用)。

没有标准的方式来安装或卸载从源代码编译的软件,因此 Ubuntu 无法知道该怎么做。该软件甚至没有被列为已安装程序。

您应该遵循分销商的说明来安装和删除此类自定义软件。您也可以联系开发人员,要求他们创建 Debian 软件包,以便使用软件包管理系统。

答案4

这不是一个错误,而是当开发人员通过源代码而不是通过本机打包方法进行分发时发生的情况。

您可以使用 checkinstall 或 dhbuild 将源文件变成 debian 软件包。老实说,在我看来 - 新用户应避免从源代码安装,开发人员应避免仅通过源代码分发。

相关内容