Wie entferne ich mit apt-get nur ein bestimmtes Paket?

18

Ich habe gerade MySQL-Server und all seine Abhängigkeiten installiert, unter anderem Notwendigkeiten. Aber als es ging, um MySQL-Server zu konfigurieren, schlug es fehl und spuckte einen Fehler aus. Welcher Fehler ist hier nicht relevant, da es mir gelungen ist, das Problem als Abhängigkeitsproblem zwischen mysql-server und mysql-common zu lokalisieren. Mysql-common muss entfernt werden.

Aber wenn ich gehe

apt-get purge remove mysql-common 

Es möchte automatisch alles entfernen, was damit verbunden ist, einschließlich aller mysql-Abhängigkeiten, sogar apache2 und php5.

Welches Argument muss also zum Befehl apt-get hinzugefügt werden, um NUR EIN Paket zu deinstallieren, während alle anderen intakt bleiben.

Schlaflosigkeit
quelle

Antworten:

21

apt-get lässt Sie das nicht zu, da es ein potenziell gefährlicher Schritt für ein Paketverwaltungssystem ist, dies zuzulassen.

Solange Sie wissen, dass es Konsequenzen geben kann, verwenden Sie dpkgdie --removeOption, um dies zu tun. Beispielsweise:

sudo dpkg --remove mysql-common

Hinweis : Auf dem 12,04 - System mit apache2, php5, mysql-serverseparat installiert, mit apt-getentfernen mysql-commonmöchte entfernen NICHT apache2 oder php5 .

Aus dem Kommentar von Insomnia: Wenn Sie die Entscheidung des Abhängigkeitssystems außer Kraft setzen müssen, können Sie (mit größter Sorgfalt und mit dem Wissen, was Sie tun) ein zusätzliches verwenden --force-depends.

sudo dpkg --remove --force-depends mysql-common
ish
quelle
Okay danke. Viele andere behaupteten, es habe funktioniert. Ich meine viele Leute. Aber ja, das passiert auf Ubuntu. Aber ich bin tatsächlich auf Debian. Aber ich fragte hier, weil ich ein Benutzer hier bin, und sie sind sehr ähnlich und das Paketsystem ist das gleiche .. danke Knospe.
Schlaflosigkeit
Mach dir keine Sorgen, Mann. Ich werde dich nicht hängen lassen. Ich akzeptiere immer. Die Leute ignorieren es normalerweise, nachdem ich es akzeptiert habe und es gibt immer noch ein Problem. Aber ich habe es einfach versucht und es würde mich nicht lassen. Gibt es ein Force-Kommando?
Schlaflosigkeit
Tut mir leid, das stimmt - ich denke, Sie müssen eine gewisse Zeit warten, bevor Sie es tun können - 15 Minuten, denke ich? Bitte versuchen Sie es erneut, wenn Sie eine Chance haben, keine Eile. Außerdem habe ich gerade bemerkt, dass Sie erwähnt haben, dass Sie Debian verwenden - beachten Sie, dass Fragen, die Debian betreffen, nicht zum Thema gehören und häufig als solche geschlossen werden. Bitte fragen Sie auf unix.stackexchange.com nach etwas Debian-spezifischem in der Zukunft :)
ish
Ja, ich dachte mir das wäre der Hauptgrund, warum ich es nicht wirklich erwähnte, bis ich es brauchte. Ich meine, ihre Paketmanager sind die gleichen, Ubuntu ist nur Debian. aber in ordnung. Die 15-Minuten-Sache funktioniert jedoch nicht, denn ich habe es viel länger als 15 Minuten später versucht. Aber kann ich nicht etwas Ähnliches wie "dpkg -f --remove mysql-common" eingeben?
Schlaflosigkeit
Wenn plain --removeeine Warnung ausgibt und abbricht, können Sie sie mit erzwingen -f. Übrigens --removeist das gleiche wie -r.
ish
0

Wenn jemand wissen möchte, dass es 2014 debian command its gibt:

dpkg --force-all -r name_of_package

Es hat sich ein bisschen verändert

Es gibt viele --force- Argumente, überprüfen Sie sie daher aus Gründen der Abhängigkeit besser durch:

dpkg --force-help
Michal Sapsa
quelle
--force-allist definitiv nicht sicher, warum nicht vorschlagen --force-dependsUND auch eine entsprechende Warnung geben?
guntbert
Es ist niemals sicher, Pakete zu löschen, die für andere Pakete benötigt werden, ohne das andere zu deinstallieren. - Force-All ist nur schnell und schmutzig Ansatz
Michal Sapsa