[packman] Packmanrobot: automatische Requires

Rainer Lay Rainer.Lay at informatik.uni-erlangen.de
Sun Jul 4 09:37:04 CEST 2004


Moin,


Ralf Corsepius wrote:
> On Sat, 2004-07-03 at 09:42, Rainer Lay wrote:
> 
>>Moin,
>>
>>nachdem immer wieder mal ein paar requires fehlen, habe ich den Robot so 
>>erweitert, dass er abhängig von den neu kompilierten RPMS ein Liste mit 
>>requires Statements aufstellt.
> 
> Ich halte diesen Ansatz für grundfalsch.
bin für konstruktive Kritik offen :-).
Nochmal kurz mein Hintergrund: Ein User wollte vlc installieren. VLC hat 
von Haus aus eine RPM Dependency Liste von ~20 RPMs. Da mein RPM nicht 
alle auflistet, hat sich sein RPM beschwert, dass z.B. liffmpeg.so.0 und 
libavcodec.so.0 und einige andere (file requires) fehlen. Da er nicht 
wusste, dass avcodec in ffmpeg0.rpm ist, hat er 2 Pakete gesucht.
Das mit den File Requires ist von der Sache richtig, es ist aber 
manchmal schon schwer, herauszubekommen, in welchen RPMS diese Files 
dann wirklich sind! Vor allem für Leute, die sich mit RPM Details nicht 
auskennen, den Kommandozeilen RPM nicht mit allen -q Optionen kennen und 
keine Lust haben, über rpm -q --whatprovides ... google ein einzelnen 
Paket zu installieren!

> 
> Du ersetzt File-Requires durch Packet-Requires. Dies sind funktionell 
> grundlegend verschiedene Dinge.
Verstanden. Macht auch Sinn. Aber für einen einfachen User schlecht 
nachvollziehbar.

> 
> Beispiele: 
> * "Requires: /bin/csh" ist funktionell etwas grundlegend anderes als ein
> "Requires: tcsh"
> * "Requires: Mesa" ist etwas völlig anderes als ein "Requires:
> libGL.so.1"
Völlig richtig. (ich mach das übrigens eh nur für "lib*so*" Dateien).

> 
> Darin verborgene Unterprobleme:
> * Du verhinderst, dass Programme/Libs zwischen Paketen verschoben werden
> können.
> * Du verhinderst, dass Progs/Libs von unterschiedlichen Paketen bereit
> gestellt werden können.

Die Konsequenzen sind richtig. Man könnte natürlich einfach ein neues 
Paket bauen. Auch nicht schön.
Wenn ich es nicht so mache, bleibt trotzdem die Frage, wie ich dem VLC 
User beibringe, dass libavcodec.so.0 in libffmpeg0 vorhanden ist!

> * Du gehst davon aus, dass die "Build-RPM-Umgebung" mit der
> "Laufzeit-RPM-Umgebung" übereinstimmt.
Naja, ich setzte auf jeden Fall vorraus, dass ich auf meinem SuSE System 
für Leute mit SuSE baue :-)

> 
> Etwas mathematischer formuliert: Du gehst davon aus, dass es eine für
> alle Zeit gültige, eineindeutige Abbildung Prog/Lib <-> RPM gibt.
> Diese Annahme ist falsch.

richtig.
Aber wie löse ich sonst das Problem?

Gruß
Rainer




More information about the Packman mailing list