debian/control: Depends <> ${shlibs:Depends}

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
smo
Beiträge: 489
Registriert: 19.12.2005 16:34:40
Lizenz eigener Beiträge: MIT Lizenz

debian/control: Depends <> ${shlibs:Depends}

Beitrag von smo » 24.03.2008 13:35:31

Hallo,

ich versuche mich gerade an der Erstellung eines Debian-Pakets. Dabei bin ich nach dem "Debian New Maintainers Guide" (en bzw. de) vorgegangen.

An dieser Stelle bin ich nun unsicher, wie man "richtig" vorgeht:
http://www.debian.org/doc/manuals/maint-guide/ch-dreq.de.html#s-control hat geschrieben:Depends:
Das Paket wird erst installiert, wenn die hier aufgelisteten Pakete ebenfalls installiert sind. Benutzen Sie dies, wenn ihr Programm ohne diese Pakete überhaupt nicht (oder nicht vernünftig) laufen kann.
In meiner naiven Vorstellung bin ich also davon ausgegangen, dass ich im Control-File unter "Depends" alle (zwingenden) Abhängigkeiten zu anderen Paketen (Programme/libs) manuell angebe.
http://www.debian.org/doc/manuals/maint-guide/ch-dreq.de.html#s-control hat geschrieben:Das letzte Feature, das erwähnt werden sollte, ist die Variable ${shlibs:Depends}. Nachdem Ihr Paket gebaut und in das Unterverzeichnis (A.d.Ü.: debian/tmp) installiert wurde, wird es von dh_shlibdeps(1) nach Binär-Dateien und Bibliotheken durchsucht, um Abhängigkeiten zu `shared libraries' festzustellen und herauszufinden, in welchen Paketen diese stecken, wie z.B. libc6 oder xlib6g. Die Liste wird an dh_gencontrol(1) weiter gegeben um sie an die richtige Stelle zu setzen. Darum brauchen Sie sich nicht zu kümmern.
Wenn also ${shlibs:Depends} sowieso alle Abhängigkeiten ermittelt, warum sollte ich dann noch "Depends" angeben?

Ich bin überhaupt erst darüber gestolpert als ich alle meine Depends-Angaben wieder entfernt habe, danach bei der Installation meines Pakets aber trotzdem alle benötigen Pakete als "Depends" vorhanden waren.

Grüsse
smo

Benutzeravatar
Meillo
Moderator
Beiträge: 9267
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: debian/control: Depends <> ${shlibs:Depends}

Beitrag von Meillo » 24.03.2008 14:19:21

smo hat geschrieben:In meiner naiven Vorstellung bin ich also davon ausgegangen, dass ich im Control-File unter "Depends" alle (zwingenden) Abhängigkeiten zu anderen Paketen (Programme/libs) manuell angebe.
so sehe ich das auch.
http://www.debian.org/doc/manuals/maint-guide/ch-dreq.de.html#s-control hat geschrieben:Das letzte Feature, das erwähnt werden sollte, ist die Variable ${shlibs:Depends}. Nachdem Ihr Paket gebaut und in das Unterverzeichnis (A.d.Ü.: debian/tmp) installiert wurde, wird es von dh_shlibdeps(1) nach Binär-Dateien und Bibliotheken durchsucht, um Abhängigkeiten zu `shared libraries' festzustellen und herauszufinden, in welchen Paketen diese stecken, wie z.B. libc6 oder xlib6g. Die Liste wird an dh_gencontrol(1) weiter gegeben um sie an die richtige Stelle zu setzen. Darum brauchen Sie sich nicht zu kümmern.
Wenn also ${shlibs:Depends} sowieso alle Abhängigkeiten ermittelt, warum sollte ich dann noch "Depends" angeben?
sieht so aus, als ob da nur "shared libraries" automatisch eingebunden werden. Wenn dein Programm aber ein anderes Programm verwendet (Aufruf z.B. über system() oder wenn dein Programm ein Shellscript ist), dann musst du diese Abhängigkeiten bestimmt von Hand eintragen.

Ich denke ${shlibs:Depends} bezieht sich auf `ldd'.
Use ed once in a while!

Antworten