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

[Tip] Abhängigkeiten lösen / Fehlermeldungen von apt

oc2pus

Ultimate Guru
EINE BITTE AN ALLE LESER:
hier keine Fragen zu den Problemen und Lösungen direkt stellen. Das soll ein Sammelthread für Probleme und möglich Lösungen werden. DANKE ;)


Nach einem apt install <paket> erhält man manchmal den folgenden Fehler: Die folgenden Pakete besitzen unerfülte Abhängigkeiten: ....

Beispiel:
apt-get install gaim
Lese Paketlisten... Fertig
Erzeuge Abhängigkeitsbaum... Fertig
Einige Pakete konnten nicht installiert werden. Dies könnte bedeuten,
dass Sie eine unmögliche Situation angefordert haben oder, falls Sie die
instabile Distribution verwenden, dass einige benötigte Pakete noch nicht
erzeugt oder aus 'Incoming' verschoben worden sind.

Da Sie nur eine einzelne Operation angefordert haben, ist es extrem
wahrscheinlich, dass das Paket schlichtweg nicht installierbar ist und
ein Bugreport über dieses Paket eingereicht werden sollte.
Die folgende Information könnte helfen die Sitation zu beheben:

Die folgenden Pakete besitzen unerfülte Abhängigkeiten:
gaim: Hängt ab von: gnutls0 aber es wird nicht installiert werden
Hängt ab von: libgcrypt.so.7
Hängt ab von: libgnutls.so.8
Hängt ab von: libgnutls.so.8(GNUTLS_1_0)
E: Fehlerhafte Pakete

in so einem Fall muss die libgcrypt.so.7 und libgnutls.so.8 noch zusätzlich installiert werden. Aber wie findet man nun diese lib ??

1. Lösung:
apt install gaim libgcrypt.so.7 libgnutls.so.8
d.h. apt kann sich den Paketnamen selber ermitteln ...

2.) Lösung
mit dem Tool apt-iselect ( http://www.linux-club.de/viewtopic.php?t=14558 )

3.) Lösung
mit dem Tool kio-apt ( http://www.linux-club.de/viewtopic.php?t=14559 )
 
OP
oc2pus

oc2pus

Ultimate Guru
bei einem apt upgrade erhält man die folgende Meldung

Beispiel:
apt -s upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages have been kept back
xmms
0 upgraded, 0 newly installed, 0 removed and 1 not upgraded.
Das bedeutet meist das an dem Paket (hier xmms) etwas verändert wurde, z.Bsp aufsplittung in mehrere Pakete, oder es wird ein anderes Paket zusätzlich gebraucht oder ein bereits installiertes Paket ist obsolet, da es jetzt in dem aktuellen Paket enthalten ist.

Lösung:
apt install xmms
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
xmms-lib
The following packages will be upgraded
xmms
The following NEW packages will be installed:
xmms-lib
1 upgraded, 1 newly installed, 0 removed and 0 not upgraded.
Need to get 1764kB of archives.
After unpacking 89.1kB disk space will be freed.
Do you want to continue? [Y/n]

d.h apt will zusätzliche NEUE Pakete installieren oder andere entfernen.
Damit wird die Abhängigkeit dann aufgelöst.
Vorsicht: wenn viele Pakete entfernt werden sollen, dann ist meist etwas falsch an der Konfiguration von apt oder das Paket ist falsch konfiguriert bzgl seiner Abhängigkeiten...
 
OP
oc2pus

oc2pus

Ultimate Guru
man erhält die folgene Fehlermeldung:

apt-get install kdelibs3-devel
Lese Paketlisten... Fertig
Erzeuge Abhängigkeitsbaum... Fertig
Einige Pakete konnten nicht installiert werden. Dies könnte bedeuten,
dass Sie eine unmögliche Situation angefordert haben oder, falls Sie die
instabile Distribution verwenden, dass einige benötigte Pakete noch nicht
erzeugt oder aus \'Incoming\' verschoben worden sind.

Da Sie nur eine einzelne Operation angefordert haben, ist es extrem
wahrscheinlich, dass das Paket schlichtweg nicht installierbar ist und
ein Bugreport über dieses Paket eingereicht werden sollte.
Die folgende Information könnte helfen die Sitation zu beheben:

Die folgenden Pakete besitzen unerfülte Abhängigkeiten:
kdelibs3-devel: Hängt ab von: libxslt-devel aber es wird nicht installiert werden
Hängt ab von: libxml2-devel aber es wird nicht installiert werden

Lösung:
apt-get install kdelibs3-devel libxslt-devel libxml2-devel

d.h. man nimmt diese Pakete einfach mit in die Liste auf, diese Pakete ziehen ggfls. weitere Pakete nach ..
 
OP
oc2pus

oc2pus

Ultimate Guru
Meldungen dieser Art
file /opt/kde3/share/services/irc.protocol from install of kdenetwork3-InstantMessenger-3.3.1-3 conflicts with file from package konversation-0.14-3
kommen immer wenn Dateien verschoben wurden innerhalb von Paketen.

Das heist eine Datei irc.protocol war ursprünglich im Paket konversation-0.14-3 ist aber jetzt im Paket kdenetwork3-InstantMessenger-3.3.1-3 enthalten.

Das kann mit der --force Option gelöst werden.
apt install --force kdenetwork3-InstantMessenger
 
OP
oc2pus

oc2pus

Ultimate Guru
bei einem apt update Aufruf erscheint folgende Meldung:
Err http://ftp.gwdg.de SuSE/9.1-i386/xfree86 pkglist
404 Not Found
...
Fetched 2573B in 25s (100B/s)
Failed to fetch http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/9.1-i386/base/pkglist.xfree86 404 Not Found
Reading Package Lists... Done
Building Dependency Tree... Done
W: Release file did not contain checksum information for http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/9.1-i386/base/pkglist.xfree86
W: Release file did not contain checksum information for http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/9.1-i386/base/release.xfree86
W: You may want to run apt-get update to correct these problems
E: Some index files failed to download, they have been ignored, or old ones used instead.

diese WARNUNG(!!) bedeutet, das das Repository (hier xfree86) leer oder nicht vorhanden ist.

Wenn es kein Tippfehler in der sources.list ist, bietet sich als Lösung an dieses Repository zu deaktivieren in der sources.list, oder man ignoriert diese Meldung einfach.
 
OP
oc2pus

oc2pus

Ultimate Guru
Manchmal will apt ein Paket nicht updaten, obwohl man genau weiss, das es eine neue Version gibt.
Oder man will ein downgrade auf eine andere Version eines Paketes durchführen und will die Versionsnummer ermitteln.

Mit dem Befehl mit apt policy <paketname> kann man diese Information ganz einfach ermitteln:
Code:
apt policy gaim
gaim:
  Installed: (none)
  Candidate: 0.77-7
  Version Table:
     0.77-7 0
        500 http://ftp.gwdg.de SuSE/9.1-i386/gnome pkglist
     0.77-2.1 0
        500 http://ftp.gwdg.de SuSE/9.1-i386/suse-people pkglist
     0.75-79.4 0
        500 http://ftp.gwdg.de SuSE/9.1-i386/update pkglist
     0.75-79.2 0
        500 http://ftp.gwdg.de SuSE/9.1-i386/update pkglist
     0.75-77 0
        500 http://ftp.gwdg.de SuSE/9.1-i386/base pkglist

Wenn die gewünschte Version hier nicht angezeigt wird, dann fehlt etwas in der sources.list ;)

Im Beispiel, Paket gaim liegt in 5 Versionen vor, im Repository gnome, suse-people, update(2x) und base. apt wird die 0.77-7 (Candidate) installieren wollen.

Wenn man eine andere haben will, erreicht man das mit:
apt install gaim=0.75-79.4
 
OP
oc2pus

oc2pus

Ultimate Guru
apt findet ein Paktet nicht, folgende Meldung erscheint:
apt install dvdrip
Reading Package Lists... Done
Building Dependency Tree... Done
E: Couldn't find package dvdrip

dann liegt es meist am falschen Paketnamen. Probiert dann einfach:
apt search dvdrip
Video-DVDRip - Video-DVDRip - perl frondend for transcode
eh, voila der korrekte Paketname lautet Video-DVDRip ;)
 
OP
oc2pus

oc2pus

Ultimate Guru
apt install opera
Reading Package Lists... Done
Building Dependency Tree... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.

Since you only requested a single operation it is extremely likely that
the package is simply not installable and a bug report against
that package should be filed.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
opera: Depends: libXm.so.1 but it is not installable
E: Broken packages
Das ist eine sehr schöne Fehlermeldung ;)
Sie besagt, zur Installation von opera wird die libXm.so.1 benötigt.

Wenn apt-cache search libXm.so.1 jetzt auch keinen Treffer liefert ... was tun? woher diese lib bekommen?
Jetzt gibt es ein kleines Problem ... diese libXm.so.1 gibt es nicht.
==> Das RPM hat einen Fehler, eine falsche "require"-Anweisung im Bauplan.

Wie löst man dieses Problem jetzt?
a.) in der /etc/apt.conf.d/apt.conf eine fake-provide eintragen:
in der Sektion
RPM
{
...
Fake-Provides { "libXm.so.1"; };
..
}
auf exakte Schreibweise und die vielen ";" achten ;)
oder
b.) ein virtuelles RPM erstellen und installieren (siehe http://www.linux-club.de/viewtopic.php?t=13336)

und wer ganz besonders nett ist schreibt dem Packager des Paketes eine kleine email und bittet um Korrektur ;)
Der Packager kann mit dem Befehl
rpm -qip <paketname> ermittelt werden.
apt show opera
Package: opera
Section: Productivity/Networking/Web/Browsers
Installed Size: 15000
Maintainer: http://www.suse.de/feedback
Version: 7.54-7.1
Pre-Depends: rpmlib(PayloadFilesHavePrefix) (<= 4.0-1), rpmlib(CompressedFileNames) (<= 3.0.4-1), rpmlib(PayloadIsBzip2) (<= 3.0.5-1)
Depends: libSM.so.6, libX11.so.6, libXext.so.6, libXm.so.1, libXm.so.2, libXm.so.3, libXt.so.6, libc.so.6, libc.so.6(GLIBC_2.0), libc.so.6(GLIBC_2.1), libdl.so.2,libdl.so.2(GLIBC_2.0), libdl.so.2(GLIBC_2.1), libm.so.6, libm.so.6(GLIBC_2.0), libpthread.so.0, libpthread.so.0(GLIBC_2.0), libpthread.so.0(GLIBC_2.1)
Provides: libnpp.so, libnpp.so(GCC.INTERNAL), libnpp.so(libnpp.so), opera (= 7.54-7.1)
Architecture: i586
Size: 5507960
MD5Sum: 1bd70a2540cf14e5663ec34ff5b0a37e
Filename: opera-7.54-7.1.i586.rpm
Description: Fast Web Browser
Opera is user-friendly, secure, and exceptionally fast. The browser is
small, yet full-featured and functions well on systems with limited
resources. Opera supports all common Web standards and implements them
according to the official recommendations.

...
in diesem Fall: Maintainer: http://www.suse.de/feedback
 

pawe

Member
Ergänzung zu fehlerhaften Abhängigkeiten:

hat ein Packet fehlerhafte Abhängigkeiten kann man es zur Installation zwingen (durch rpm -nodep; oder auch in yast). Der Hacken:
apt prüft die Abhängigkeiten immer neu und wird sich weigern weitere Packete zu installieren, auch wenn sie mit dem ersten nichts zu tun haben.

BSP:
Der Treiber von Lexmark (Packet: z600cups) benötigt cups mit der Version 1:1.1.15-10 oder höher. 1:1.1.15 ist vermutlich ein schreibfehler des Autors. Mit cups 1.1.20-108 läuft der Drucker wunderbar.
Aber apt erkennt darin unerfüllte Abhängikeiten. Es gibt eine Fehlermeldung, auch wenn man z.B. Mplayer installiert oder ein upgrade durchführt.
Code:
Lese Paketlisten... Fertig
Erzeuge Abhängigkeitsbaum... Fertig
Sie werde `apt-get -f install' ausführen wollen um diese zu beheben.
Die folgenden Pakete besitzen unerfülte Abhängigkeiten:
  z600cups: Hängt ab von: cups (>= 1:1.1.15-10) aber 1.1.20-103 ist installiert
E: Unerfüllte Abhängigkeiten. Versuche -f zu benutzen.
Bei der Option -f wie apt vorschlägt will er den Treiber löschen. Auch nicht der Sinn der Sache.

Lösung:
in der Datei
/etc/apt/apt.conf.d/apt.conf
kann man mit ignore Packete aus der Abhängikeitsprüfung ausschließen:
Code:
RPM
{
...
Ignore {"gpg-pubkey";"z600cups"; };
...
}

dann meckert apt nur, wenn man cups upgraden will. Aber sonst läft apt wie gewohnt.
 
OP
oc2pus

oc2pus

Ultimate Guru
wer diese Fehlermeldung erhält:
error: unpacking of archive failed: cpio: Bad magic

der sollte seine sources.list überprüfen.
Wenn dort update-prpm oder security-prpm enthalten sind, diese entfernen und anschliessend apt update aufrufen.

Evtl bereits downgeloadete prpm RPMS aus dem cache löschen nicht vergessen! Der cache steht in /var/cache/apt/archives.

Danach sollte der Fehler nicht mehr auftauchen.

Diese prpm-RPMs sind sogennante patch-RPMs, damit kann apt nicht so gut.

Gleiches gilt übrigends auch für die *-dprm seit SuSE-9.2
 
Oben