Abhängigkeiten lösen / Fehlermeldungen von apt
Inhaltsverzeichnis
- 1 Nach einem apt install <paket> erhält man manchmal den folgenden Fehler:
- 2 bei einem apt upgrade erhält man die folgende Meldung
- 3 man erhält die folgene Fehlermeldung:
- 4 Meldungen dieser Art
- 5 bei einem apt update Aufruf erscheint folgende Meldung:
- 6 Manchmal will apt ein Paket nicht updaten, obwohl man genau weiss, das es eine neue Version gibt.
- 7 apt findet ein Paktet nicht, folgende Meldung erscheint:
- 8 Was tun bei unauflösbaren Abhängigkeiten?
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 )
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...
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 ..
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
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.
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:
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
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
Was tun bei unauflösbaren Abhängigkeiten?
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
oc2pus