• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

rpmbuild: rpm benötigt sich selbst?

Ich versuche gerade auf einer SUSE 9.1 MySQL 4.1.10 zu installieren. Ich dachte mir es ist das einfachste ich nehme das src-rpm von SUSE 9.3 und installier evtl. benötigte Komponeten nach. Ging auch bis auf 3 Abhängigkeiten:
klogd
libzio
libnscd

Die klogd Abhängigkeit versuche ich erstmal mit dem syslogd abzuspeisen.

Dann ebenfalls die src rpms von libzio und libnscd installiert, aaaaber:
Code:
# rpmbuild -bb libnscd.spec
error: Failed build dependencies:
        klogd is needed by libnscd-1.1-4
        libnscd is needed by libnscd-1.1-4
        libzio is needed by libnscd-1.1-4
# rpmbuild -bb libzio.spec
error: Failed build dependencies:
        klogd is needed by libzio-0.1-5
        libnscd is needed by libzio-0.1-5
        libzio is needed by libzio-0.1-5
Die Libs benötigen sich selbst um sich zu compilieren? Und jetzt?
 
Hi,

es sollte normalerweise klappen, wenn du "libzio" und "libnscd" aus den BuildRequires vom mysql spec file löscht. Es sollte keine weiteren probs geben.


Cheers }-Tux-{
 
oc2pus schrieb:
klogd kannst du auch raus nehmen, der hiess bei 9.1 und 9,2 (?) noch logd
Genauer gesagt: Bis einschließlich 9.2 war "klogd" im "syslogd"-Paket enthalten, ein eigenes "klogd"-Paket gibt es erst ab 9.3.

@panamajo: Mach einfach "rpmbuild -bb * --nodeps", das sollte hier problemlos gehen.
 
Ja bei den Dependencies von SUSE Paketen kann man sich immer fragen, was die geraucht haben. So z.B. ist bei allen Paketen meist immer "rcs" als Abhängigkeit angegeben obwohl man es überhaupt nicht braucht. Ganz zu schweigen von aberwitzigen KDE- und GNOME-Abhängigkeiten für z.B. icewm.spec (wenn man KDE/GNOME nicht hat und --nodeps rpmbuild mitgibt, gibt's beim icewm Bauen auch keine Fehler, also "aberwitzig").
 
jengelh schrieb:
Ja bei den Dependencies von SUSE Paketen kann man sich immer fragen, was die geraucht haben.
Was rauchst Du eigentlich? Weißt Du denn, wie das Build-System von SuSE, das übrigens bei jeder SuSE-Distribution inklusive Dokumentation mitgeliefert wird, funktioniert? Wüsstest Du das, müsstest Du keine derartigen "gerade noch fairen" Bemerkungen machen.
jengelh schrieb:
So z.B. ist bei allen Paketen meist immer "rcs" als Abhängigkeit angegeben obwohl man es überhaupt nicht braucht. Ganz zu schweigen von aberwitzigen KDE- und GNOME-Abhängigkeiten für z.B. icewm.spec [...]
Obwohl ich es wesentlich besser fände, wenn Du Dir das selbst anliest, kann ich es Dir gerne erklären:

SuSE trägt, anders als z.B. Mandriva oder RedHat, die Abhängigkeiten nicht von Hand ein, sondern arbeitet mit Meta-Paketgruppen. Das sind die, die in der auskommentierten "# neededforbuild"-Zeile stehen. Da diese Zeile auskommentiert ist, ist sie ja bedeutungslos. Nicht aber im SuSE-Build-System, da wird diese Zeile nämlich expandiert und das Ergebnis der Expansion landet in der "BuildRequires:"-Zeile.

Jetzt kann man sich natürlich fragen, wozu das gut sein soll. Die Erklärung ist ganz simpel: Es macht die Sache einfacher. Anstatt für GNOME-Anwendungen z.B. von hand "gtk2-devel, glib2-devel, libgnomeprintui-devel" einzutragen, können die SuSE-Mitarbeiter einfach "gnome-devel-packages" reinschreiben. Der Rest erledigt sich von selbst.

Dadurch ist garantiert, dass kein erforderliches Paket übersehen werden kann. Der Nachteil ist, dass manchmal eines zuviel dabei ist, aber so tragisch ist das nicht, weil die Pakete bei SuSE sowieso in einer chroot-Umgebung gebaut werden, die bei Start des Builds automatisch installiert und hinterher automatisch wieder gelöscht wird.

Unangenehm ist es, wenn man als Benutzer Pakete selbst rebuilden will und erst recht, wenn man Pakete aus anderen SuSE-Versionen rebuilden möchte. Aber da hilft einfach ein wenig Übung. Nach dem zehnten Paket, das man selbst rebuildet, hat man ein Gefühl dafür entwickelt, welche Pakete man wirklich braucht und welche nicht.

Übrigens: Gerade wegen der manchmal unverständlichen KDE-Abhängigkeiten ist noch eines zu sagen. Sämtliche Hilfedokumente werden während des Builds für das susehelp-System indiziert. Dafür braucht man KDE, weil das Indizierungstool zu KDE gehört. Du kannst aber getrost einfach "--nodeps" verwenden, weil alle Zeilen, in denen dieses Indizierungstool aufgerufen wird, so aussehen:
Code:
bla blubb ... || true
Konkret bedeutet das: Es wird versucht zu indizieren und wenn es nicht geht, passiert einfach gar nichts. Aber intern muss SuSE natürlich trotzdem KDE als Abhängigkeit eintragen, damit die offiziellen Pakete alle indiziert werden.
 
Oben