Paketabhängigkeiten manipulieren

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
pixel24
Beiträge: 143
Registriert: 28.06.2005 13:26:41

Paketabhängigkeiten manipulieren

Beitrag von pixel24 » 11.07.2015 12:17:44

Hallo zusammen,

ist es eigentlich mit einfachen Mitteln möglich die Abhängikeiten von Debian-Paketen anzupassen bzw. zu steuern welche Abhängikeiten aufgelöst werden?

Hintergrund ist der. Ich habe einen gesonderten Datenbankserver (MySQL / PostgreSQL), der Webserver läuft auf einem anderen Host und die Daten die per NFS,SMB,FTP bereit gestellt werden wieder auf einem Anderen.

Wenn ich nun z.B. OwnCloud über das Paketsystem auf einem Host installiere werden automatisch Apache, MySQL etc mit installiert. Ich würde es gerne vermeiden alle Dienste doppelt und mehrfach im Netz laufen zu haben. Die Software dann immer aus den Qullen selbst zu bauen halte ich auf Dauer einfach zu aufwendig da man zum einen immer selbst schauen muss ob eine neue Version verfügbar ist und dann immer wieder neu bauen muss.
Zumindest soweit ich das weiß.

Ich denke der Wunsch die Dienste auf verschiede Hosts zu verteilen ist nicht neu, wie handhabt ihr das?

Viele Grüße
pixel24

Benutzeravatar
smutbert
Beiträge: 8342
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Paketabhängigkeiten manipulieren

Beitrag von smutbert » 11.07.2015 13:21:08

In solchen Situationen habe ich schon Pakete entpackt, in der Datei DEBIAN/control die Abhängigkeiten nach Wunsch geändert und schließlich das Paket wieder gepackt. Das unangenehme dabei ist, dass spätestens bei dem nächsten Update wieder das Originalpaket mit den Originalabhängigkeiten installiert wird.

Bei der Installation mit dpkg ließen sich mit dem Schalter --force-depends nicht erfüllte Abhängigkeiten in Warnungen herabstufen, aber apt will dann später die nicht erfüllten Abhängigkeiten reparieren, ist also eher keine Lösung.


Das beste wäre es wohl mit Debianequivs ein leeres Paket zu erstellen, das nur dazu da ist die gewünschten Abhängigkeiten zu erfüllen:
https://debian-handbook.info/browse/de- ... ckage.html

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

Re: Paketabhängigkeiten manipulieren

Beitrag von rendegast » 11.07.2015 16:17:11

Ich würde es gerne vermeiden alle Dienste doppelt und mehrfach im Netz laufen zu haben.
"Installiert" muß nicht heißen "laufend".

Code: Alles auswählen

$ aptitude -s install apache2
Die folgenden NEUEN Pakete werden zusätzlich installiert:
  apache2 [2.4.10-10]  apache2-bin{a} [2.4.10-10]  
  apache2-data{a} [2.4.10-10]  apache2-utils{a} [2.4.10-10]  
  libapr1{a} [1.5.1-3]  libaprutil1{a} [1.5.4-1]  
  libaprutil1-dbd-sqlite3{a} [1.5.4-1]  libaprutil1-ldap{a} [1.5.4-1]  
0 Pakete aktualisiert, 8 zusätzlich installiert, 0 werden entfernt und 0 nicht aktualisiert.
1.869 kB an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 5.557 kB zusätzlich belegt sein.
Möchten Sie fortsetzen? [Y/n/?] 
Pakete würden heruntergeladen/installiert/entfernt werden.
5MB

Code: Alles auswählen

$ aptitude -s install mysql-server
Die folgenden NEUEN Pakete werden zusätzlich installiert:
  libdbd-mysql-perl{a} [4.028-2+b1]  libdbi-perl{a} [1.631-3+b1]  
  libmysqlclient18{a} [5.5.43-0+deb8u1]  
  mysql-client-5.5{a} [5.5.43-0+deb8u1]  mysql-common{a} [5.5.43-0+deb8u1]  
  mysql-server [5.5.43-0+deb8u1]  mysql-server-5.5{a} [5.5.43-0+deb8u1]  
  mysql-server-core-5.5{a} [5.5.43-0+deb8u1]  
Die folgenden Pakete werden EMPFOHLEN, aber NICHT installiert:
  libhtml-template-perl  
0 Pakete aktualisiert, 8 zusätzlich installiert, 0 werden entfernt und 0 nicht aktualisiert.
8.764 kB an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 94,4 MB zusätzlich belegt sein.
Möchten Sie fortsetzen? [Y/n/?] 
Pakete würden heruntergeladen/installiert/entfernt werden.
Naja, 100MB,
aber was heißt das bei TB-Platten.

Allermeistens funktioniert es mit equivs-dummys.
Dabei sollte bei der Konstruktion etwas auf Benennung, Versionierung, Kommentare geachtet werden,
um die equivs-dummys auch vernünftig vom normalen Bestand differenzieren zu können.
Ich präferiere sowas

Code: Alles auswählen

Package: blafoo-dummy
Provides: blafoo
Version: datum-dummy
Description: ... ... ...
Das funktioniert bei den einfachen versionslosen Abhängigkeiten.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

pixel24
Beiträge: 143
Registriert: 28.06.2005 13:26:41

Re: Paketabhängigkeiten manipulieren

Beitrag von pixel24 » 13.07.2015 07:41:18

Prima, vielen Dank! equivs kannte ich gar nicht und denke dass ist wohl die beste Lösung. Ich werde mir das anschauen und es probieren.

Antworten