我正在构建一个 Debian 软件包,它需要其他软件包,例如 libboost-all-dev 或 libqt4-dev。我尝试过使用 Pre-Depends 并将 apt-get install PKGS 放在 preinst 中,但它不起作用。
如何自动启动依赖项的安装?
编辑:我的控制文件:
Package: myPackage
Version: 1.0
Section: base
Priority: optional
Depends: libboost-all-dev,libqt4-dev,libvtk6-dev,libcppunit-dev,libhdf5-dev,libann-dev,wx-common,libwxbase2.8-dev
Architecture: all
Maintainer: Corentin D <***@***.***>
Description: ...
Homepage: none
我正在尝试使用安装该软件包
dpkg -i package-name.deb
最佳答案
不要为此使用 preinst 脚本!除了因为一次只能运行一个 dpkg 实例而无法工作之外,依赖项的安装是 apt 的工作。使用 control
文件列出您的二进制依赖项,如 Debian 政策中所述:http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps
进一步注意,如果您使用dpkg -i package-name.deb
安装本地软件包,dpkg
将不会(!)安装控制文件中列出的依赖项。您仍然需要手动安装它们。如果您希望正确安装依赖项,您需要:
- 设置 Debian 软件包存储库(或在 Ubuntu 上使用 ppa)
- 将
.deb
放置在那里 - 将存储库添加到您的
sources.list
apt-get update
或aptitude update
apt-get install package-name
或aptitude install package-name
关于dependencies - Debian软件包,依赖的安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23518175/