dependencies - Debian软件包,依赖的安装

标签 dependencies package debian

我正在构建一个 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 updateaptitude update
  • apt-get install package-nameaptitude install package-name

关于dependencies - Debian软件包,依赖的安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23518175/

相关文章:

dependencies - 如何在不指定版本号的情况下安装bower依赖?

java - java中对象的依赖关系

c++ - CMakeLists.txt 子文件夹中的 cmake find_package 相对路径

mysql - debian linux 升级 mysql - 查找差异后继续

java - common.annotations.Beta 的 TransformException 重复条目

java - 是否可以检查哪些 gradle 依赖项包含给定的类?

android - 如何判断节目实名制

c# - C#.NET 中的程序集、模块和包之间的区别

linux - e : Malformed entry 1 in list file/etc/apt/sources. list.d/docker.list(组件)

python - c 程序 SWIG 到 python 给出 'ImportError: dynamic module does not define init function'