[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