[Eisfair] wie fehlende Module nachladen?

Thomas Bork tom at eisfair.org
So Jun 15 20:12:42 CEST 2014


Am 15.06.2014 19:38, schrieb Detlef Paschke:

> Wie müsst ich nun beginnen? Zunächst ein Paket phpsysinfo (wer nicht
> weiß was das ist, auf meiner Homepage http://www.schabau.goip.de unter
> "Mein kleiner Webserver") Gut, das sind fertige Scripte aber die Config
> (phpsysinfo.ini) muss ja aus einer Eisfair-Config erstellt werden können
> bzw. müssen??? Ja und wohin sollen die Dateien Kopiert werden? Ich nehme
> an, dass das Standartverzeichnis /var/www/htdocs/ ist. Was ist, wenn das
> bei jemandem nicht so ist? Und das Unterverzeichnis für phpSysinfo
> bestimme ich als Paketbauer einfach selbst? Gar keine Demokratie ;-)
> Fragen über Fragen...

Die Grundlage ist erst einmal ein ipmi-Paket. Ohne das kannst Du auch 
keine Werte über ipmi auslesen und darstellen. Lege also erst einmal die 
Grundlage.

> Und da sind nun natürlich etliche lib's Module und sonst irgendwas drauf
> und (in diesem Fall) freeipmi macht seine Arbeit. Aber "die eine lib",
> die freeipmi braucht um zu laufen und die ich hier schon "seit Jahren"
> habe muss ja längst nicht jeder auf seinem System haben. Woher weiß ich
> was in diesem Fall freeipmi alles haben möchte? Noch mehr Fragen über
> Fragen....

Schaue Dir die Binär-Dateien an, die Du gebaut hast. ldd gibt Dir die 
Abhängigkeiten aus. Beispiel:

sata # ldd `which lsusb`
         linux-gate.so.1 =>  (0xb7719000)
         libusb-1.0.so.0 => /usr/lib/libusb-1.0.so.0 (0xb7701000)
         libc.so.6 => /lib/libc.so.6 (0xb75c3000)
         librt.so.1 => /lib/librt.so.1 (0xb75bb000)
         libpthread.so.0 => /lib/libpthread.so.0 (0xb75a3000)
         /lib/ld-linux.so.2 (0xb771a000)
sata #

linux-gate, libc, libpthread und /lib/ld-linux sind Bestandteile der 
libc und stecken in der base. Die einzige Abhängigkeit zu einer anderen 
Lib ist hier libusb-1.0.
Da die bei uns auch in der base steckt, hat lsusb keine aufzulösenden 
Abhängigkeiten, sondern funktioniert auch bei einer Neu-Installation sofort.

Zugegeben, ein schlechtes Beispiel - steckt doch lsusb auch schon in der 
base...

Hier ein Beispiel des Ghostscript-Paketes:

sata # ldd `which gs`
         linux-gate.so.1 =>  (0xb76f0000)
         libdl.so.2 => /lib/libdl.so.2 (0xb76e8000)
         libm.so.6 => /lib/libm.so.6 (0xb76c4000)
         libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb768f000)
         libpthread.so.0 => /lib/libpthread.so.0 (0xb7677000)
         libc.so.6 => /lib/libc.so.6 (0xb7538000)
         /lib/ld-linux.so.2 (0xb76f1000)
         libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb74b5000)
         libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb748b000)
         libz.so.1 => /usr/lib/libz.so.1 (0xb7476000)
         libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0xb7466000)
         libpng15.so.15 => /usr/lib/libpng15.so.15 (0xb743a000)
sata #

libfontconfig, libfreetype und libexpat sind externe Abhängigkeiten. 
Deswegen steht im info-File von Ghostscript:

<require-package>base 2.2.5</require-package>
<require-lib>libfontconfig 2.2.1</require-lib>
<require-lib>libexpat 2.2.1</require-lib>
<require-lib>libfreetype2 2.2.1</require-lib>

Und dabei fällt mir gerade auf, dass ich eine externe Abhängigkeit nicht 
angegeben habe:

libpng15 dürfte auf einem nackten System auch nicht existieren.

libz und libbz2 schon (dabei ist auch die Version der base interessant).
Deswegen gibt man bei einer solchen Abhängigkeit auch die 
Mindest-base-Version vor.

> Ich weiß noch nicht... bin ich zu dumm oder denke ich einfach zu
> kompliziert. Gelernt habe ich mit MS-DOS 5.0 (Damals gab es noch ein
> Dickes Buch mit dazu) aber bei den Linux Scripten steige ich einfach
> nicht mehr hinter den Syntax (evtl. doch langsam zu alt).

Zu alt? Blödsinn. Ich habe auch spät angefangen.

-- 
der tom
[eisfair-team]


Mehr Informationen über die Mailingliste Eisfair