相关疑难解决方法(0)

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

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

./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
Run Code Online (Sandbox Code Playgroud)

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

# pkg-config --list-all | grep Myplugin
myplugin-....
$ ls /usr/lib/myplugin/libXYZ.so
exist....
Run Code Online (Sandbox Code Playgroud)

你现在如何删除这个?

package-management uninstall compiling

184
推荐指数
4
解决办法
27万
查看次数

我可以直接更新从源代码安装的软件吗

尽管我开始使用 Ubuntu 已经快一年了,但我还没有尝试从源代码安装软件。我实际上并不觉得有必要这样做。但现在我正在开发一个软件,该软件处于存储库中的候选发布阶段,但最新的稳定版本的源代码可在软件主页上找到。

我了解到如果软件有很多依赖项,从源代码安装可能会很困难。但是,如果我解决了这个问题,我会对最新版本感到满意。但是我一直想知道这样的软件是否可以自动更新,或者我是否必须运行一些脚本来更新包。或者更糟糕的是,我是否必须从头开始重新安装每个更新?

另外,我很想知道从上述以外的源安装是否有任何特定优势。

updates installation packaging source-code backport

16
推荐指数
2
解决办法
6058
查看次数

从源代码构建 .deb 包,而不安装它

假设我有一个安装程序或我想要安装的某个程序的源 tarball。(没有可用的 Debian 软件包。)首先,我想.deb从中创建一个软件包,以便将来能够干净地删除已安装的程序(请参阅卸载从源代码构建的应用程序如果我从源代码构建一个软件包如何我可以完全卸载或删除吗?)。此外,使用包安装可以防止它破坏其他包中的文件,如果您运行安装程序或sudo make install.

检查安装

通过阅读那里和其他地方的答案,我收集到通常的解决方案是使用checkinstall来构建包。不幸的是,它似乎并不能checkinstall阻止其他软件包破坏系统文件。例如,根据Reverting issues Caused by checkinstall with gcc buildmake install

我使用安装创建了一个 Debian 软件包sudo checkinstall -D make install

[...]我使用 Synaptic Package Manager 将其删除。事实证明,[删除]创建的包 checkinstall 试图make install删除安装过程触及的每个文件,包括共享 gcc 库,如 /lib64/libgcc_s.so。

然后我尝试告诉checkinstall构建包而不安装它,希望绕过这个问题。我创建了一个虚拟 Makefile:

install:
    echo "Bogus" > /bin/qwertyuiop
Run Code Online (Sandbox Code Playgroud)

然后跑了sudo checkinstall --install=no。即使未安装该包,该文件也/bin/qwertyuiop 已创建。

就我而言,我不信任安装程序 /make install不会覆盖系统文件checkinstall,因此排除了这种使用。

如何构建该软件包而不 …

package-management packaging install-from-source checkinstall

5
推荐指数
2
解决办法
7053
查看次数