【问题标题】:Debian package, installation of dependenciesDebian包,安装依赖
【发布时间】:2014-06-24 10:51:40
【问题描述】:

我正在构建一个需要其他软件包的 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

【问题讨论】:

    标签: dependencies package debian


    【解决方案1】:

    不要为此使用 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

    【讨论】:

    • 我尝试过使用 Pre-Depends ans Depends,但仍然是同样的问题。 “MyPckg”依赖于 libboost-all-dev,未安装 libboost-all-dev...”这是我的控制文件的摘录:... 部分:base 依赖:libboost-all-dev,libqt4-dev 架构:所有...感谢您的帮助!
    • 能否将控制文件的内容添加到问题中?
    • 完成。如果我使用 Pre-depends 或 Depends 也是一样的。
    • dpkg -i 不会安装依赖项。只有aptaptitude 这样做。使用dpkg -i,您需要手动安装依赖项
    • 您无法使用 apt 安装本地 deb 文件。 apt 与存储库一起使用。 (sources.list)。您需要设置一个 debian 软件包存储库并将其添加到您的 sources.list 或在启动板站点创建一个 ppa(私有软件包存储库)。但是后者是特定于 Ubuntu 的
    猜你喜欢
    • 2012-01-18
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 2017-06-28
    • 2016-09-29
    • 1970-01-01
    相关资源
    最近更新 更多