
Ich verwende 64-Bit-Debian Wheezy. In letzter Zeit apt-get upgrade
erhalte ich folgende Meldung:
The following packages have been kept back:
libsmbclient libtevent0 samba-libs
Es macht mich verrückt. Ich dachte, ich entferne einfach Samba, da ich es sowieso nicht verwende, aber irgendein Genie hat Gnome davon abhängig gemacht:
# apt-get remove libsmbclient
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
gnome gnome-core gvfs-backends libgnomevfs2-extra libsmbclient mencoder mplayer
Wie aktualisiere ich diese Pakete sicher?
Es sind nicht viele benutzerdefinierte Dinge installiert:
deb http://ftp.pl.debian.org/debian/ wheezy main
deb-src http://ftp.pl.debian.org/debian/ wheezy main
deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main
# wheezy-updates, previously known as 'volatile'
deb http://ftp.pl.debian.org/debian/ wheezy-updates main
deb-src http://ftp.pl.debian.org/debian/ wheezy-updates main
# wheezy-backports
deb http://ftp.pl.debian.org/debian/ wheezy-backports main contrib non-free
# virtualbox
deb http://download.virtualbox.org/virtualbox/debian/ wheezy contrib
[AKTUALISIEREN]
Was ich versucht habe:
apt-get dist-upgrade
- Ergebnis ist das gleiche (Pakete wurden zurückgehalten).- verwendet
aptitude
, aber es wird lediglich vorgeschlagen, Gnome und einige andere Gnome-bezogene Pakete zu entfernen und eine ganze Menge i386-Pakete zu installieren (sieht aus wie nur Bibliotheken). apt-get install libsmbclient
gibtlibsmbclient : Depends: samba-libs (= 2:4.1.9+dfsg-1~bpo70+1) but it is not going to be installed
apt-get install libtevent0
gibtlibtevent0 : Depends: libtalloc2 (>= 2.1.0) but 2.0.7+git20120207-1 is to be installed
.apt-get install samba-libs
gibtsamba-libs : Depends: samba-dsdb-modules (= 2:4.1.9+dfsg-1~bpo70+1) but it is not going to be installed
[UPDATE 2]
Es scheint, dass die Ursache dieses Problems irgendwo im Backports-Repository liegt. Ich habe einmal mit Bumblebee und auch einigen DVD-Ripping-Sachen experimentiert und ich erinnere mich, dass ich etwas von Backports installieren musste. Ich brauche es nicht mehr. Bumblebee hat bei meiner Hardware sowieso versagt und die DVD wurde am Ende unter Windows gerippt :(
Jetzt habe ich es getan aptitude search '~S ~i ~Abackports'
und das hier bekommen:
i initramfs-tools - generic modular initramfs generator
i A libavutil53 - Libav utility library
i libldb1 - LDAP-like embedded database - shared library
i A libnettle4 - low level cryptographic library (symmetric and one-way cryptos)
i A libntdb1 - New Trivial Database - shared library
i A libopus0 - Opus codec runtime library
i libswscale2 - Libav video scaling library
i A libtdb1 - Trivial Database - shared library
i A libwbclient0 - Samba winbind client library
i A python-talloc - hierarchical pool based memory allocator - Python bindings
i samba-common - common files used by both the Samba server and client
Ich denke, ich sollte diese Pakete downgraden und dann sollte alles in Ordnung sein. Habe ich Recht? Wie soll ich das machen?
[UPDATE 3]
Ich habe versucht, diese Pakete aus dem Backports-Repo zu entfernen oder herunterzustufen, und habe dies nur teilweise geschafft.
Als ich ein Downgrade durchführen wollte, libntdb1
stellte ich fest, dass es im stabilen Repo nicht vorhanden ist. Als ich versuchte, es zu entfernen, wollte apt erneut auch Gnome entfernen. Als ich apt-cache rdepends libntdb1
das tat, stellte sich heraus, dass nur die umgekehrte Abhängigkeit vorhanden ist samba-libs
. Es ist samba-libs
auch im stabilen Repo nicht vorhanden UND ich kann es auch nicht entfernen, weil es erneut versucht, Gnome und eine ganze Menge Zeug zu entfernen. Was zum Teufel ist hier los? Beachten Sie, dass es samba-libs
nicht aufgeführt wird, wenn ich es mache aptitude search '~S ~i ~Abackports'
. Wie werde ich dieses Ding los?
Auch als ich versuchte, ein Downgrade durchzuführen libldb1
, libwbclient0
konnte ich es nicht, weil apt
ich in beiden Fällen Gnome entfernen wollte. Warum?
Jetzt habe ich also drei Pakete aus dem Backports-Repo, die wie folgt aufgelistet sind aptitude search '~S ~i ~Abackports'
:
i libldb1 - LDAP-like embedded database - shared library
i A libntdb1 - New Trivial Database - shared library
i A libwbclient0 - Samba winbind client library
UND samba-libs
das kommt anscheinend auch aus Backports, ist aber nicht aufgeführt beiaptitude search '~S ~i ~Abackports'
Antwort1
Es ist möglich, Deb-Pakete mit folgendem Befehl auf ein bestimmtes Repo herunterzustufen apt
:
# apt-get install libsmbclient/wheezy libtevent0/wheezy samba/wheezy
- Die Konstruktion „[Paket]/Wheezy“ bedeutet, dass der Benutzer ein Paket aus dem Wheezy-Repository möchte.nurund nicht das neueste.
- Es ist wichtig, anzugebenallegewünschte Pakete auf einmal, damit
apt
Abhängigkeiten richtig aufgelöst und andere Wheezy-Pakete abgerufen werden können.
Wenn apt
Sie nicht aufgefordert werden, wichtige Pakete zu löschen, die Sie behalten möchten, können Sie loslegen. Es wird einige Warnungen zu Abhängigkeitsproblemen geben, aber Sie können diese Warnungen ignorieren, solange sie nicht schwerwiegend sind.
Nach einem erfolgreichen Downgrade werden Bibliotheken wie libtevent0, libldb1 usw. nicht mehr benötigt. Sie können apt-get --purge autoremove
und/oder deborphan
(falls installiert) verwenden, um verwaiste Pakete zu finden und zu bereinigen, die auf dem System nicht nützlich sind.
(Meine vorherige Antwort verliert ihre Gültigkeit und wird demnächst gelöscht. Sie ist sowieso falsch – ein Downgrade ist mit möglich apt
.)
Antwort2
Ich verwende den interaktiven Paketsolver von Aptitude:
ausführen sudo aptitude
. Geben Sie dann U
(großes u) ein, um anzugeben, dass Sie alles aktualisieren möchten. Sie werden benachrichtigt, dass ein Konflikt vorliegt, und erhalten einen Lösungsvorschlag. Verwenden Sie , e
um den interaktiven Löser aufzurufen, und dann .
(Punkt) und ,
(Komma), um die verschiedenen gefundenen Lösungen zu durchlaufen, und !
akzeptieren Sie dann eine der Lösungen.
Sie können auch versuchen, ihm bei der Suche nach einer (für Sie) besseren Lösung zu helfen, indem Sie zu einem Teil einer Lösung wechseln (wo beispielsweise vorgeschlagen wird, Gnome zu entfernen) und ihm mitteilen, dass Sie dies akzeptieren (mit A
) oder ablehnen (mit ).R
Antwort3
Schnellste und einfachste Lösung:
Sie müssen jedes Paket einzeln installieren.
Sieh dir das anSuperuserLösung: Lösung für zurückgehaltene Apt-Pakete
Warnung: Renne nicht sudo apt-get dist-upgrade
bis Sie die Pakete, die Sie installieren müssen, vollständig installiert haben. DANACH, und NUR DANACH, können Sie sudo apt-get update
& ausführen.sudo apt-get dist-upgrade
Antwort4
Öffnen Sie ein Terminal und geben Sie ein:
apt-cache rdepends packagename
und ersetzenPaketnamenmit dem Paket, das Sie entfernen möchten. Es werden die Pakete aufgelistet, die das Paket benötigen, das Sie entfernen möchten. Entfernen Sie zuerst diese Pakete und versuchen Sie dann, das eigentliche Paket zu entfernen.