【问题标题】:Spliting debian package - how to handle files correctly?拆分 debian 包 - 如何正确处理文件?
【发布时间】:2014-02-06 09:25:01
【问题描述】:

我正在尝试将 debian 包拆分为更小的包。

原始包MyPackage-1.0.deb 被拆分为几个较小的包(MyPackage-2.0.debMyPackage-config-2.0.deb)。

MyPackage-1.0.deb 包含所有文件,在拆分期间,我将所有文件从目录 /etc 移动到包 MyPackage-config-2.0.deb

dpkg-buildpackage 进程没有错误。

当我尝试通过apt-get upgrade 升级时,我收到了这条消息。

Unpacking MyPackage-config (from .../MyPackage-config-2.0.deb) ...
dpkg: error processing /var/cache/apt/archives/MyPackage-config-2.0.deb (--unpack):
 trying to overwrite '/etc/MyPackage.conf', which is also in package MyPackage 1.0
dpkg-deb: subprocess paste killed by signal (Broken pipe)

这个包没有安装 unitil 我强迫它 apt-get -o Dpkg::Options::="--force-overwrite" upgrade

在文件debian/control 中有:

Source: MyPackage
Section: metapackages
Priority: optional
Maintainer: Just Me <me@example.com>
Standards-Version: 3.9.3
Build-Depends: debhelper (>= 4)

Package: MyPackage
Architecture: i386
Conflicts: gnumeric
Pre-depends: MyPackage-config
Depends: libreoffice-common
Description: This package

Package: MyPackage-config
Essential: yes
Architecture: i386
Depends: openssh-server
Description: config files

我应该如何拆分包以防止错误?

【问题讨论】:

  • 你可能不想要Pre-Depends,而只是一个普通的Depends。我不记得曾经需要Pre-Depends,我会很惊讶您的包裹需要它...

标签: build debian packaging deb


【解决方案1】:

您可能希望将这些行添加到 MyPackage-config:

Breaks: MyPackage (<< 2.0)
Replaces: MyPackage (<< 2.0)

这告诉 dpkg 不允许同时安装 MyPackage 1.0 和 MyPackage-config 2.0(因为很明显,他们都想拥有/etc/MyPackage.conf),而且 MyPackage-config 2.0 也可以接管 MyPackage 1.0 以前拥有的一些文件。

有关详细信息,请参阅 http://www.debian.org/doc/debian-policy/ch-relationships.html

顺便说一句,在 MyPackage-config 上显示“基本:是”可能是个坏主意。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-25
    • 2011-05-12
    • 2017-06-01
    相关资源
    最近更新 更多