Paketbau: Paketaufspaltung. Conffile soll in anderes Paket

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
cornelinux
Beiträge: 2
Registriert: 16.04.2016 21:02:48

Paketbau: Paketaufspaltung. Conffile soll in anderes Paket

Beitrag von cornelinux » 16.04.2016 21:10:44

Hallo,

ich habe ein Paket "basis", das Applikationscode. Dann habe ich ein Paket "basis-apache2", das als Meta-Paket das Paket "basis" 'required' und zusätzlich Apache und Mysql installiert und das ganze konfiguriert, damit man eine laufende Webapplikation hat.

Nun möchte ich aber gerne das Paket "basis-apache2" ein wenig aufteilen, weil es in manchen fällen zu viel macht. Es aktiviert bspw. schon sites-enabled im Apache und deaktiviert andere aktive Webseiten.

Daher möchte ich gerne "basis-apache2" aufteilen in

* basis-apache2-config
* basis-mysql

die lediglich die Konfigurationen bereitstellen und das Paket "basis-apache2" soll dann diese Konfigurationen aktivieren.

Das Problem ist nun, dass ich basis-apache2 (alt), Konfigurationsdateien drinnen sind, die ich nun eigentlich in "basis-apache2-config" haben möchte.
Bei einem Upgrade bekommen ich die Fehlermeldungen

trying to overwrite 'somefile', which is also in package basis-apache2

Ich habe da mal mit dpkg-divert rumprobiert, um bei einem upgrade das "somefile" in Zukunft von basis-apache2-config liefern zu lassen.
Nun habe ich aber gelesen, dass man dpkg-divert bei conffiles nicht verwenden soll.

Was ist da so die Debianige Empfehlung?

Vielen Dank und Gruß
Cornelius

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Paketbau: Paketaufspaltung. Conffile soll in anderes Pak

Beitrag von rendegast » 17.04.2016 00:05:09

Einerseits könntest Du mit 'dpkg --force-all -i' arbeiten.

Falls es um ein Repo geht, vielleicht ein transition-Paket basis-apache2,
Recommends: basis-apache2-config basis-mysql
ansonsten ein leerer dummy.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

cornelinux
Beiträge: 2
Registriert: 16.04.2016 21:02:48

Re: Paketbau: Paketaufspaltung. Conffile soll in anderes Pak

Beitrag von cornelinux » 18.04.2016 06:48:55

Danke für Deine Antwort.

Das ganze liegt in einem Repository und die Benutzer ziehen Ihre updates ganz normal über apt-get upgrade.
Diese Transparenz möchte ich gerne beibehalten, deswegen kann ich da keinen force-Parameter nutzen.

Zur Zeit haben die basis-apache2 installiert. In dem Paket ist eine apache-config und eine mysql-config enthalten.
Nach dem update auf die neue Version soll es die Pakete geben

* basis-apache2 -> hier werden die Konfigurationen aktiviert
* basis-apache2-config -> hier ist nun die apache-config drinnen
* basis-mysql -> hier ist nun die mysql-config drinnen.

Das Problem ist aber, dass basis-apache2 die anderen Pakete requiren muss. Doch die lassen sich nicht installieren, weil zu dem Zeitpunkt apache-config oder mysql-config ja noch in dem alten, bereits installiertem basis-apache2 enthalten ist.

Was meinst Du mit dem transition-Paket?

Schönen Gruß
Cornelius

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Paketbau: Paketaufspaltung. Conffile soll in anderes Pak

Beitrag von rendegast » 18.04.2016 09:24:43

Was meinst Du mit dem transition-Paket?
Ich war davon ausgegangen, daß
Daher möchte ich gerne "basis-apache2" aufteilen in
* basis-apache2-config
* basis-mysql
basis-apache2 wegfallen sollte, was das Paketsystem erstmal nicht macht.

Es gäbe dann die Möglichkeit, das Paket mit einem leeren Dummy höherer Version zu ersetzen,
im Debian-Jargon ein transition-Paket.
Es gäbe es weitere header Conflicts: / Replaces:, Bsp.:

Code: Alles auswählen

$ cat ftp-ssl_0.17.23+0.2-1+b1_amd64/control ftp_0.17-31_amd64/control
Package: ftp-ssl
Conflicts: ftp (>= 0.10)
Replaces: ftp (>= 0.10)
Provides: ftp

Package: ftp
Replaces: netstd

Hier aber soll basis-apache2 wohl gar nicht wegfallen.
Ein 'dist-upgrade' sollte das auflösen können.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten