Verwaltung selbst gepatchter Debian - Pakete

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Ensis
Beiträge: 9
Registriert: 05.11.2003 19:38:22

Verwaltung selbst gepatchter Debian - Pakete

Beitrag von Ensis » 15.12.2003 14:09:12

Hi,

ich bin gerade dabei die Source eines Debian-Pakets zu patchen und neu zu kompilieren, weil mir ein paar Features fehlen. Ich möchte das fertige Paket einigen Bekannten zur Verfügung stellen, die es sich dann mit apt-get direkt von meinem Server holen können. Das ist auch alles nicht das Problem.

Ich mache mir aber Gedanken über die spätere Verwaltung von Updates. Wie erreiche ich, dass bei neuen Versionen des Pakets von Debian nicht geupdated wird, wenn ich neue Versionen auf meinen Server lade, allerdings schon? Ich kann das Paket ja nicht einfach umbennen, dann funktionieren Abhängigkeiten von Debian-Paketen auf mein Paket ja nicht mehr. Hat jemand damit Erfahrung und kann mir einen Tip geben?

Gruss
Ensis

Ensis
Beiträge: 9
Registriert: 05.11.2003 19:38:22

Beitrag von Ensis » 16.12.2003 08:56:10

Ok, ich habe das Problem für mich zufriedenstellend mit Pins gelöst. Aber falls jemand über das Thema noch diskutieren will, nur zu.

Gruss
Ensis

Benutzeravatar
suntsu
Beiträge: 2947
Registriert: 03.05.2002 10:45:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: schweiz
Kontaktdaten:

Beitrag von suntsu » 16.12.2003 09:43:54

Das Problem ist imo folgendes:
Wenn du woody hast, und kde3 willst, und noch ne neue Version von mozilla/k3b/cdrecort/beliebig bist du auf einmal an einem Punkt wo du dich um 3 Millionen Backports kümmern musst.
Ist mir zumindest so gegangen, und da hab ich halt auf sid gewechselt.
Ist aber nur als Vorschlag zu sehen wenn es kein kritisches System ist, und du oft genug Backups machst(ich mache alle 3 tage Vollbackup).

gruss
manuel

edit:
Das mit den Backups heisst ned das sid immer alles zerschiesst, aber die Möglichkeit besteht. Und es gibt auch noch HW-Ausfall(Das weis ich :P )

Ensis
Beiträge: 9
Registriert: 05.11.2003 19:38:22

Beitrag von Ensis » 16.12.2003 10:32:01

Hallo Manuel,

ne, Sid ist nichts für diesen Rechner (Server). Das System bleibt zu 99% Woody. Es geht mir nur um einzelne Backports inkl. spezieller Patches die ich einfach brauche, weil Woody nun wirklich schon etwas älter ist. Natürlich muss ich dann auch die Sicherheitsberichte der neuen Versionen lesen, weil die Debian Security ja nicht mehr greift.
Das es bei KDE mit seiner Unmenge an Abhängigkeiten mit Backports zu Chaos kommt glaub ich dir gerne. Ich würde auch keinen Desktop mehr mit Woody aufsetzen.
Zu Hause läuft bei mir ein Sarge zum Arbeiten und ein Sid zum Experimentieren. :D

Gruss
Ensis

linuxdep
Beiträge: 38
Registriert: 04.01.2003 13:12:22

Beitrag von linuxdep » 18.12.2003 18:04:53

hi,
da ich mich etwas mit den .dep bauen beschäftigen möchte und ich hier etwas interessantes gelesen habe, würde mich für deine lösung inter. damit ich auch ein mal das nutzen kann.

gruß
Gruß von
linuxdep

Ensis
Beiträge: 9
Registriert: 05.11.2003 19:38:22

Beitrag von Ensis » 19.12.2003 12:44:52

Klar, Änderungen trage ich in debian/Changelog und in debian/files ein, damit ich die Infos später zur Hand habe und die Datei am Namen erkenne. Also z.B. Datum und welchen Patch.

Ich habe mir ein lokales Verzeichnis angelegt, in das die fertigen Deps kommen. Dazu ein Eintrag in /etc/apt/sources.list:

Code: Alles auswählen

deb file:///verzeichnis/ unterzeichnis/unterverzeichnis/
Wichtig ist dabei eine Basis für dein Deb-Archiv festzulegen, das ist der Adressteil vor der Lücke und Verzeichnisse innerhalb deines Archivs nach der Lücke anzugeben. Dann musst Du alle Pakete mit dpkg-scanpackages (am besten man lesen) indizieren und zwar immer von der oben angegebene Basis aus. Das Ergebnis kommt jeweils in das richtige Verzeichnis als Packages.gz. Jetzt kannst du mit apt-get update bereits deine Deps in die Datenbank laden und mit install speziell installieren.

Komfortabel wirds aber erst jetzt. Erstell dir eine Release - Datei:

Code: Alles auswählen

Archive: Debian
Version: 3.0 (für Woody als Basis)
Component: woody/binary (für Woody als Basis)
Origin: local (z.B.)
Label: Was du willst
Architecture: i386 (Falls das bei dir zutritt)
Die als kommt als Release jeweils zu einer Packages.gz dazu.

Jetzt erstellt du unter /etc/apt/ die Datei preferences und setzt einen Pin:

Code: Alles auswählen

Package: * (alle Pakete)
Pin: release o=local (damit spreche ich die Origin im o.g. Release an)
Pin-Priority: 999
Damit werden die Pakete im lokalen Verzeichnis vor allen anderen vorgezogen. Das kannst du mit 'apt-cache policy Paketname' überprüfen. Der höchste Pin-Wert wird installiert.

Natürlich kann man das wunderbar verfeinern, ich habe bei mir z.B. auf verschiedene Fremdarchive unterschiedliche Pins gesetzt und verwalte auch Woody/Sarge-Systeme so. Falls du mehr über die Prioritäten von Pins wissen willst, entweder das offizielle apt-get HowTo oder einfach fragen-

Gruss
Ensis

Antworten