当前位置: 首页>>技术教程>>正文


我通过获取源代码安装程序,然后运行`sudo make install`;如何让’apt-get`了解它?

, , ,

问题描述

我通过从源代码构建程序,然后最终调用sudo make installsudo ldconfig来安装程序(例如,调用它,例如,progA)。

但是,似乎apt-get还没有得到备忘录,因为在安装依赖于progAprogB时,apt-get建议我也安装progA。为什么这样,我该怎么办?

最佳解决方案

长话短说 checkinstall是你的朋友;)

sudo apt-get install checkinstall

使用sudo make install安装后,包管理器对此安装一无所知。但它知道Ubuntu存储库或PPA中具有相同名称的包的所有内容。

使用sudo checkinstall而不是sudo make install并使用更高版本作为存储库中的版本,以确保您的包管理器接受此版本作为ProgB的正确依赖项。


更多的信息:

checkinstall真的很漂亮,因为它遵循make install命令所做的,以便弄清楚如何构建一个包。

这意味着如果您使用make install安装程序,但是想要为您的罪悔改,那么您所要做的就是sudo checkinstall -D make install,该命令将:

  1. 按照make install来弄清楚它的作用

  2. copy-cat make install,* .deb包装形式除外

  3. 从包中安装(与make install一样,给定第1点))除了让apt-get知道它,因此只要你选择YES包括make install放置的文件,就会覆盖make install所放置的所有文件。在包中的主目录中 – 在checkinstall过程中的几个选项将允许您选择(显然,选择就在那里,因此您可以在case-to-case的基础上进行操作)

额外奖励:您还可以使用make install删除已安装的软件包(再次称为progA),该软件包没有make uninstall支持,遵循到目前为止概述的checkinstall流程,然后简单地执行:

dpkg -r progA

次佳解决方案

三种选择:

  1. progA创建一个假包:How to fake a package version installed?(有一个extensive example for TeXlive)

  2. progA创建一个包,如果它有一个checkinstall选项则更容易:如何欺骗apt依赖?

  3. 从源头构建progB

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1734.html,未经允许,请勿转载。