Linux 如何使Debian软件包安装依赖项?
我想制作一个简单的Debian包来安装一个依赖于Qt4 libs的简单工具 在控制文件中,我定义了它依赖于qt4libs,然而,当我测试包时,它表示无法满足依赖关系 问题: 如何使Debian触发器也易于安装依赖项Linux 如何使Debian软件包安装依赖项?,linux,package,debian,apt,depends,Linux,Package,Debian,Apt,Depends,我想制作一个简单的Debian包来安装一个依赖于Qt4 libs的简单工具 在控制文件中,我定义了它依赖于qt4libs,然而,当我测试包时,它表示无法满足依赖关系 问题: 如何使Debian触发器也易于安装依赖项 找不到文档,但我知道apt get可以做到这一点。一种方法是在您的计算机上创建本地包存储库,并将其添加到/etc/apt/sources.list。然后,您可以使用apt get从本地存储库安装包,并自动解决依赖关系 可能有一种更简单的方法,但我不知道会是什么。如果您通过dpkg安装
找不到文档,但我知道apt get可以做到这一点。一种方法是在您的计算机上创建本地包存储库,并将其添加到/etc/apt/sources.list。然后,您可以使用apt get从本地存储库安装包,并自动解决依赖关系
可能有一种更简单的方法,但我不知道会是什么。如果您通过
dpkg
安装它,它将无法工作,因为dkpg
不知道在哪里可以找到其他依赖项。如果你建立自己的回购协议,你可以通过apt get来完成,但是第一次这样做有点费时(这并不难,只是第一次“新”的东西,需要一些时间来学习)
另一方面,您可能正在寻找的解决方案是gdebi
(您可能需要安装它:apt get install gdebi core
)。它是一种检查软件包依赖关系的工具,调用apt get
获取并安装软件包,然后调用dpkg
安装软件包。如果要创建Debian软件包,请在Debian/
目录控制文件中指定其依赖关系;我相信debian/control
需要依赖于:
指令来实现这一目的
我自己也不太清楚细节,但是有一些说明;特别是,似乎是开始查找的正确位置。如果您希望避免创建本地APT存储库,可以执行以下操作:
dpkg -i mypackage.deb
apt-get install --fix-missing
如果确实要创建本地存储库,可以使用。每英寸:
从apt 1.1(Xenial(16.04)中提供)开始,stretch)apt安装也允许本地文件:
sudo apt install ./foo-1.2.3.deb
更简单更干净
见
这也将安装依赖项,就像正常的apt安装
或apt get安装
您是否依赖发行版附带的正常Qt4库?您能否发布准确的详细信息,即“依赖”规范和带有错误的apt get调用?我觉得您的包是正确的,但您使用的apt镜像中不存在依赖关系。请发布完整的错误消息。dpkg
是一个低级工具,不考虑依赖关系。Carlos对于使用gdebi有正确的想法,因为当您运行gdebi时,它会引入依赖项,而不必使用apt
,正如Thomas所指出的,您也可以使用它。只需将所需的包添加到PreDepends部分和cinst文件中。我懂了。。。事情是这样的。我需要做一个安装程序。例如当你下载Skype时,它以.deb格式出现。它是否带来了它所需要的所有LIB?我应该包括我需要的所有LIB吗?我应该如何依靠apt获取依赖项?打包依赖项的问题是,它们可能会干扰目标系统。您关于当地代表的建议是否适用于分销。想法:我可以在运行.deb时创建本地代表,然后调用apt进行后期安装。。。但这似乎不是一个有效的解决方案……在安装过程中,从apt repo安装gdebi,然后执行gdebi-your-package.deb
。它将从该机器中配置的apt存储库中获取所有依赖项(如果它们在repo中可用)。或者还有其他我不明白的问题吗?gdebi会将已安装的软件包标记为我要安装的软件包的依赖项吗?您想要的是“gdebi核心”,而不是“gdebi”软件包;但是,命令行实用程序称为“gdebi”.#apt get install-f--fix missing我应该再次运行sudo dpkg-I mypackage.deb
吗?不。在Debian stretch中至少mypackage.deb
安装了apt get install--fix missing
。第一行应该是dpkg--unpack*。deb
这不会出错,并且会将包留在状态apt get install--fix missing
安装所有内容并配置您的deb文件。您好,我认为依赖:
将只检查依赖项是否已安装,并相应地停止deb包的安装。我正在寻找的解决方案是作为deb isn安装的一部分自动安装这些依赖项。请看一看这个问题:当使用Ansibleapt
模块并为其提供一个deb
文件时,这也有效。