我想制作一个简单的 Debian 包来安装一个依赖于 Qt4 库的简单工具。
在控制文件中,我已经定义它依赖于 Qt4 库,但是,当我测试包时,它说无法满足依赖关系。
问题:
如何使 Debian 触发器也适合安装依赖项?
找不到该文档,但是我知道 apt-get 可以做到这一点。
如果您想避免创建本地 APT 存储库,您可以执行以下操作:
dpkg -i mypackage.deb
apt-get install --fix-missing
如果你确实想创建一个本地存储库,你可以使用reprepro。
如果您通过dpkg
它安装它,它将无法工作,因为dkpg
不知道在哪里可以找到其他依赖项。如果你建立自己的 repo,你可以通过它来完成apt-get
,但第一次这样做有点费时(这并不难,只是第一次需要一些时间来学习的“新”东西)。
另一方面,您可能正在寻找的解决方案是gdebi
(您可能需要安装它:)apt-get install gdebi-core
。它是一个检查包的依赖关系并调用apt-get
获取和安装它们,然后调用dpkg
安装包的工具。
每个@textshell在这个答案中:
从 apt 1.1 开始(在 Xenial (16.04) 中可用,stretch)
apt install
也允许本地文件:sudo apt install ./foo-1.2.3.deb
如此简单和清洁。
见发布公告
这也将安装依赖项,就像普通的apt install
或apt-get install
.
如果您正在创建Debian 软件包,您可以在debian/
目录控制文件中指定它的依赖项;我相信为此目的debian/control
需要Depends:
指令。
我自己也不太清楚细节,但在http://www.debian.org/doc/manuals/maint-guide/上有说明;特别是,http://www.debian.org/doc/manuals/maint-guide/dreq.en.html#control似乎是开始寻找的正确位置。
一种方法是在您的计算机上创建一个本地软件包存储库并将其添加到 /etc/apt/sources.list。然后,您可以使用 apt-get 从本地存储库安装软件包,并自动解析依赖项。
可能有一种更简单的方法可以做到这一点,但我不知道那会是什么。