2014-02-06 17 views
1

我想分裂debian包到較小的包。分割debian包 - 如何正確處理文件?

原始包MyPackage-1.0.deb被拆分爲幾個小包(MyPackage-2.0.deb,MyPackage-config-2.0.deb)。

MyPackage-1.0.deb包含的所有文件,拆分過程中,我從目錄/等感動了所有的文件打包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 <[email protected]> 
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 

我應該如何分開包裝,防止錯誤?

+0

你可能不希望「預先取代」,但只是一個普通的「取決於」。我不記得曾經需要'Pre-Depends',我會很驚訝你的軟件包需要它... –

回答

2

你可能想加入這一行MyPackage的-配置:

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

這告訴dpkg的不要讓MyPackage的1.0和MyPackage的,配置2.0在同一時間(因要安裝,很明顯,他們會都希望自己擁有/etc/MyPackage.conf),而且MyPackage-config 2.0可以接管以前由MyPackage 1.0擁有的部分文件。有關詳細信息,請參閱http://www.debian.org/doc/debian-policy/ch-relationships.html

作爲一個毫不相干的人,MyPackage-config上的「Essential:yes」可能是一個壞主意。