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


46

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

但是,似乎apt-get还没有备忘,因为在安装时progB,取决于progAapt-get建议我也安装progA。为什么会这样,我该怎么办?


我认为您也必须progB手动安装...
Parto

11
不能假定您创建的“自定义”版本与软件包相同,即是依赖关系。快捷方式(不建议使用)是安装实际软件包,然后用“特殊”名称覆盖二进制文件。由于您没有具体说明,因此我无法提供进一步的建议。
david6

6
只是不要这样做。始终使软件包管理所管理的软件与自己编译的软件严格分开。
Reinier Post 2015年

Answers:


56

TL; DR 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. 复制猫make install,但* .deb软件包形式除外

  3. 从软件包中进行安装(与make install给定的1点完全一样),也要对其进行apt-get了解,从而覆盖所有文件make install,只要您选择YES即可将所有文件放置make install在主目录中,也包含在软件包中-在此checkinstall过程中有几个选项可以让您选择(很显然,这里有选择,因此您可以根据情况进行选择)

奖励: 您也可以progAmake installmake uninstall按照checkinstall到目前为止概述的过程,删除使用没有支持ode 安装的软件包(再次调用它,然后简单地执行以下操作:

dpkg -r progA

18
checkinstall-世界需要知道这一点!

基于昨天尝试实施的答案以及该元问题的建议,我在您的答案中添加了更多详细信息-请随时对其进行进一步的编辑!

您是说什么细节?
AB

哦,我认为它们还没有出现,因为它正在编辑审阅中-如果您单击该元问题的链接,您将看到它们的含义(最初,我已将它们放在问题正文中,但是建议我应该将它们放在接受的答案正文中)。

软件包文档目录./doc-pak不存在。我应该创建一组默认的软件包文档吗?
n8chz 2015年


1

我建议使用uupdatefrom devscripts并像以前一样构建软件包。

安装所需的软件包

$ sudo apt-get install build-essential devscripts

从官方存储库下载旧软件包(将MediaWiki用作示例),从上游下载新的tar-ball。

$ mkdir ~/Downloads/mediawiki
$ cd ~/Downloads/mediawiki
$ apt-get source mediawiki
$ wget https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz

运行uupdate以从上游tar-ball和旧tar-ball创建一个新的源文件夹debian/control

$ cd mediawiki-1.19.14+dfsg   # depends on your Ubuntu version
$ uupdate ../mediawiki-1.26.0.tar.gz 1.26.0
$ cd ../mediawiki-1.26.0

现在,您应该检查是否需要对debian/controletc文件进行更改。完成后,您可以构建并安装deb软件包

$ dpkg-buildpackage -us -uc
$ cd ..
$ sudo dpkg -i *.deb
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.