(Gelöst) k3b-0.12.12-0.pm.1.i586.rpm Dependency-Fehler

Status
Für weitere Antworten geschlossen.

Rain_Maker

Administrator
Teammitglied
Hallo zusammen,

Eben wollte ich via APT das neue k3b-Paket von Packman aufspielen.

Scheinbar hat der Packer einen Fehler im spec-File, es werden einige sehr seltsame, nicht erfüllte Paketabhängigkeiten angezeigt.


Die folgenden Pakete besitzen unerfülte Abhängigkeiten:
k3b: Hängt ab von: is aber es ist nicht installierbar
Hängt ab von: not aber es ist nicht installierbar
Hängt ab von: installed aber es ist nicht installierbar
Update wird also so nicht funzen. Lädt man das Paket von Hand herunter und installiert das Paket mit --nodeps, dann läuft es zwar, jedoch werden beim nächsten Start von APT defekte Pakete angezeigt. Der Fehler liegt also NICHT im Binary selbst sondern in falschen Dependencies.

Von einem Update würde ich dringend abraten, bis eine fehlerbereinigte Version von Packman vorliegt.

Greetz,


RM

UPDATE: Ich habe aus dem src.rpm mit leicht abgeändertem spec-file neue rpms gebacken, welche sich anstandslos installieren lassen und auch ohne Probleme laufen. Für die, die es auch nicht erwarten können, bis eine neue Version da ist, hier eine Anleitung, wie ich das gemacht habe.

1. src.rpm runtergeladen bei Packman:

http://packman.links2linux.de/?action=219

2. src.rpm installiert:

Code:
rpm -ivh k3b-0.12.12-0.pm.1.src.rpm
3. spec-file editieren in /usr/src/packages/SPECS

Code:
Requires:	cdrdao, cdrecord, mkisofs
Requires:	alsa >= %( rpm -q --queryformat '%{VERSION}' alsa )
Requires:	arts >= %( rpm -q --queryformat '%{VERSION}' arts )
Requires:	flac >= %( rpm -q --queryformat '%{VERSION}' flac )
Requires:	glibc >= %( rpm -q --queryformat '%{VERSION}' glibc )
Requires:	kdelibs3 >= %( rpm -q --queryformat '%{VERSION}' kdelibs3 )
Requires:	lame >= %( rpm -q --queryformat '%{VERSION}' lame )
Requires:	libffmpeg0 >= %( rpm -q --queryformat '%{VERSION}' libffmpeg0 )
Requires:	libgcc >= %( rpm -q --queryformat '%{VERSION}' libgcc )
Requires:	libmpcdec >= %( rpm -q --queryformat '%{VERSION}' libmpcdec )
Requires:	libmusicbrainz >= %( rpm -q --queryformat '%{VERSION}' libmusicbrainz )
Requires:	libogg >= %( rpm -q --queryformat '%{VERSION}' libogg )
Requires:	libsamplerate >= %( rpm -q --queryformat '%{VERSION}' libsamplerate )
Requires:	libsndfile >= %( rpm -q --queryformat '%{VERSION}' libsndfile )
Requires:	libstdc++ >= %( rpm -q --queryformat '%{VERSION}' libstdc++ )
Requires:	libvorbis >= %( rpm -q --queryformat '%{VERSION}' libvorbis )
Requires:	mad >= %( rpm -q --queryformat '%{VERSION}' mad )
Requires:	qt3 >= %( rpm -q --queryformat '%{VERSION}' qt3 )
Requires:	resmgr >= %( rpm -q --queryformat '%{VERSION}' resmgr )
Requires:	taglib >= %( rpm -q --queryformat '%{VERSION}' taglib )
Requires:	zlib >= %( rpm -q --queryformat '%{VERSION}' zlib )
Requires:	dbus-1 >= %( rpm -q --queryformat '%{VERSION}' dbus-1 )
Requires:	dbus-1-qt >= %( rpm -q --queryformat '%{VERSION}' dbus-1-qt )
Requires:	hal >= %( rpm -q --queryformat '%{VERSION}' hal )
Requires:	xorg-x11-libs >= %( rpm -q --queryformat '%{VERSION}' xorg-x11-libs )
Wie man sieht, sind die Trennzeichen scheinbar Tabstopps, Ich habe sie einfach wie weiter oben bei den BuildRequires in 2 Leerzeichen umgewandelt.

Code:
Requires:  cdrdao, cdrecord, mkisofs
Requires:  alsa >= %( rpm -q --queryformat '%{VERSION}' alsa )
Requires:  arts >= %( rpm -q --queryformat '%{VERSION}' arts )
Requires:  flac >= %( rpm -q --queryformat '%{VERSION}' flac )
Requires:  glibc >= %( rpm -q --queryformat '%{VERSION}' glibc )
Requires:  kdelibs3 >= %( rpm -q --queryformat '%{VERSION}' kdelibs3 )
Requires:  lame >= %( rpm -q --queryformat '%{VERSION}' lame )
Requires:  libffmpeg0 >= %( rpm -q --queryformat '%{VERSION}' libffmpeg0 )
Requires:  libgcc >= %( rpm -q --queryformat '%{VERSION}' libgcc )
Requires:  libmpcdec >= %( rpm -q --queryformat '%{VERSION}' libmpcdec )
Requires:  libmusicbrainz >= %( rpm -q --queryformat '%{VERSION}' libmusicbrainz )
Requires:  libogg >= %( rpm -q --queryformat '%{VERSION}' libogg )
Requires:  libsamplerate >= %( rpm -q --queryformat '%{VERSION}' libsamplerate )
Requires:  libsndfile >= %( rpm -q --queryformat '%{VERSION}' libsndfile )
Requires:  libstdc++ >= %( rpm -q --queryformat '%{VERSION}' libstdc++ )
Requires:  libvorbis >= %( rpm -q --queryformat '%{VERSION}' libvorbis )
Requires:  mad >= %( rpm -q --queryformat '%{VERSION}' mad )
Requires:  qt3 >= %( rpm -q --queryformat '%{VERSION}' qt3 )
Requires:  resmgr >= %( rpm -q --queryformat '%{VERSION}' resmgr )
Requires:  taglib >= %( rpm -q --queryformat '%{VERSION}' taglib )
Requires:  zlib >= %( rpm -q --queryformat '%{VERSION}' zlib )
Requires:  dbus-1 >= %( rpm -q --queryformat '%{VERSION}' dbus-1 )
Requires:  dbus-1-qt >= %( rpm -q --queryformat '%{VERSION}' dbus-1-qt )
Requires:  hal >= %( rpm -q --queryformat '%{VERSION}' hal )
Requires:  xorg-x11-libs >= %( rpm -q --queryformat '%{VERSION}' xorg-x11-libs )
und abspeichern als k3b.spec in /usr/src/packages/SPECS

4. Devel-Pakete für den Build-Prozess nachinstallieren.

Das hängt jetzt stark von den bereits installierten Paketen ab.

Einfacher Trick:

Code:
rpmbuild -ba /usr/src/packages/SPECS/k3b.spec
und sich die entsprechenden Fehlermeldungen ansehen, was noch zum Build gebraucht wird. Diese Pakete dann via APT oder Yast nachinstallieren. Vorsicht, das kann eine ganze Menge sein, besonders wenn man vorher noch nie ein Paket selbst kompiliert hat und deshalb keine *-devel-Pakete auf dem Rechner installiert sind.

5. rpm neu bauen:

hier gibt es verschiedene Möglichkeiten, ich habe folgendes gemacht:

Code:
rpmbuild -ba /usr/src/packages/SPECS/k3b.spec
damit werden 2 rpms

k3b-0.12.12-0.pm.1.i586.rpm
k3b-mad-0.12.12-0.pm.1.i586.rpm

und ein neues src.rpm

k3b-0.12.12-0.pm.1.src.rpm

mit angepasstem spec-file gebaut.

Wer NUR die Binaries will, der baut das rpm mit folgendem Parameter:

Code:
rpmbuild -bb /usr/src/packages/SPECS/k3b.spec
Wer ein Paket speziell für eine andere Prozessorarchitektur will (z.B. i686 = PIV) der muß beim rpmbuild noch folgenden Parameter hinzufügen:

Code:
--target=i686
also für obiges Beispiel (nur Binaries aber diesmal speziell für i686-Prozessoren)

Code:
rpmbuild -bb --target=i686 /usr/src/packages/SPECS/k3b.spec
Das ist aber nicht nötig, die i586-Pakete sollten genauso gut laufen, es ist mehr eine weitere Option, da ich diesen Post als Anlaß nehmen möchte, ein paar Tipps zum Bauen von rpms aus src.rpms zu geben. ;)

6. Das Heißgetränk der Wahl holen und gebannt auf den Bildschirm starren, wie die Kiste vor sich hinrattert. (Dauer hängt stark vom Rechner ab, meine etwas betagte Gurke PIV 2.4 GHz 768 MB RAM hat etwa 10-15 Minuten gebraucht)

Wenn alles gut geht, dann sollte am Ende in etwa sowas stehen:

Code:
Wrote: /usr/src/packages/SRPMS/k3b-0.12.12-0.pm.1.src.rpm
Wrote: /usr/src/packages/RPMS/i686/k3b-0.12.12-0.pm.1.i686.rpm
Wrote: /usr/src/packages/RPMS/i686/k3b-mad-0.12.12-0.pm.1.i686.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.54065
+ umask 022
+ cd /usr/src/packages/BUILD
+ cd k3b-0.12.12
+ '[' -d /var/tmp/buildroot-k3b-0.12.12 -a /var/tmp/buildroot-k3b-0.12
.12 '!=' / ']'
+ rm -rf /var/tmp/buildroot-k3b-0.12.12
+ exit 0
Wie man sieht, habe ich sowohl ein src.rpm als auch Binary-Pakete für i686 gebaut, welche man nun unter /usr/src/packages/RPM/i686 bzw. /usr/src/packages/SRPMS findet. Ohne die Option --target=i686 finden sich die i586-Pakete logischerweise in /usr/src/packages/RPM/i586.

7. Installieren/Updaten

a) k3b war schon installiert:

Code:
rpm -Uvh /usr/src/packages/RPMS/i586/k3b-0.12.12-0.pm.1.i586.rpm /usr/src/packages/RPMS/i586/k3b-mad-0.12.12-0.pm.1.i586.rpm
Für die i686 Pakete natürlich:

Code:
rpm -Uvh /usr/src/packages/RPMS/i686/k3b-0.12.12-0.pm.1.i686.rpm /usr/src/packages/RPMS/i686/k3b-mad-0.12.12-0.pm.1.i686.rpm
b) k3b war noch nicht installiert:

Code:
rpm -ivh /usr/src/packages/RPMS/i586/k3b-0.12.12-0.pm.1.i586.rpm /usr/src/packages/RPMS/i586/k3b-mad-0.12.12-0.pm.1.i586.rpm
Für die i686 Pakete natürlich:

Code:
rpm -ivh /usr/src/packages/RPMS/i686/k3b-0.12.12-0.pm.1.i686.rpm /usr/src/packages/RPMS/i686/k3b-mad-0.12.12-0.pm.1.i686.rpm
 

Runlevel5

Member
AW: k3b-0.12.12-0.pm.1.i586.rpm Dependency-Fehler

Hi Rain!

Der Fehler muss bei dir Liegen.
Ich hab die Version schon seit paar Tagen ohne Probleme instaliert.
 

Rain_Maker

Administrator
Teammitglied
AW: k3b-0.12.12-0.pm.1.i586.rpm Dependency-Fehler

Runlevel5 schrieb:
Hi Rain!

Der Fehler muss bei dir Liegen.
Ich hab die Version schon seit paar Tagen ohne Probleme instaliert.
Kann nicht sein, das Paket liegt erst seit heute morgen auf dem Server.

Du meinst wahrscheinlich die Version

k3b_0.12.11-3.pm.0

oder die Version von SuSE selbst:

k3b_0.12.12-2_i586.rpm

Die liegt wirklich schon ein paar Tage auf dem Server, kann allerdings keine mp3 als Audio-CD brennen (deshalb auch das Paket k3b-mad bei Packman ;)).

Schau doch mal genau nach.

Greetz,

RM
 

Rain_Maker

Administrator
Teammitglied
Menno, umsonst kompiliert ;)

Hallo,

Nachdem ich den Fehler entdeckt hatte, habe ich dem Entwickler geschrieben (so gegen 10.30 h).

Eben kam die Antwort:

hat nichts mit den Tabs zu tun, trotzdem danke. Liegt einfach daran, das in
meinem Buildroot libsamplerate fehlte
OK, meine Vermutung war also falsch und kompiliert habe ich auch umsonst *heul* ;)

Denn:

http://packman.links2linux.de/?action=219

Es gibt bereits neue Versionen

k3b-0.12.12-0.pm.2.i586.rpm
und
k3b-mad-0.12.12-0.pm.2.i586.rpm

Tja, so schnell geht das (Mail an den Entwickler ging 10.31 raus Antwort kam 11.04 ;))

Greetz,

RM

P.S. Thema wird geschlossen und vielleicht als kleines "HowTO" zum Thema rpm aus src.rpm enden.
 
Status
Für weitere Antworten geschlossen.
Oben