Jak usunąć tylko jeden konkretny pakiet za pomocą apt-get?

18

Właśnie zainstalowałem serwer MySQL i wszystkie jego zależności, oprócz innych potrzeb. Ale kiedy poszedł skonfigurować mysql-server, nie zrobił tego i wypluł błąd. Który błąd nie jest tutaj istotny, ponieważ udało mi się zlokalizować problem jako problem zależności między serwerem mysql i mysql-common. Wspólne z MySQL należy usunąć.

Ale kiedy idę do

apt-get purge remove mysql-common 

Automatycznie chce również usunąć wszystko w związku z tym, w tym wszystkie zależności mysql, nawet apache2 i php5 ..

Jaki argument należy dodać do komendy apt-get, aby odinstalować TYLKO JEDEN pakiet, a jednocześnie pozostawić wszystkie pozostałe nienaruszone.

bezsenność
źródło

Odpowiedzi:

21

apt-get nie pozwoli ci tego zrobić, ponieważ jest to potencjalnie niebezpieczny krok dla systemu zarządzania pakietami.

Tak długo, jak jesteś świadomy, że nie mogą być konsekwencje, korzystanie dpkgz --removeopcji, aby to zrobić. Na przykład:

sudo dpkg --remove mysql-common

Uwaga : W moim systemie 12.04 z apache2, php5, mysql-serverzainstalowanym osobno, użycie apt-getdo usunięcia mysql-commonNIE chce usunąć apache2 ani php5 .

Z komentarza bezsenności: Jeśli chcesz pominąć decyzję systemu zależności, możesz (z wielką ostrożnością i upewniając się, że wiesz, co robisz) skorzystać z dodatkowego --force-depends.

sudo dpkg --remove --force-depends mysql-common
ish
źródło
Ok, dzięki. Wielu innych twierdziło, że zadziałało. Mam na myśli wielu ludzi. Ale tak, dzieje się na Ubuntu. Ale tak naprawdę jestem na Debianie. Ale zapytałem tutaj, bo jestem tutaj użytkownikiem, a oni są bardzo podobni, a system pakietów jest taki sam .. dzięki, stary.
bezsenność,
nie martw się człowieku. Nie zostawię cię wiszącego. Zawsze akceptuję. Ludzie zwykle ignorują to po zaakceptowaniu i nadal występuje problem. Ale właśnie spróbowałem i nie pozwoliło mi to. Czy istnieje polecenie siłowe?
bezsenność,
Przepraszam, zgadza się - myślę, że musisz poczekać pewien czas, zanim będziesz mógł to zrobić - 15 minut, tak myślę? Spróbuj ponownie, ilekroć masz szansę, nie spiesz się. Zauważyłem też, że wspomniałeś, że używasz Debiana - pamiętaj, że pytania dotyczące Debiana są nie na temat i często jako takie są zamknięte. Zastanów się, czy nie poprosić w przyszłości na unix.stackexchange.com o coś specyficznego dla Debiana :)
ish
Tak, pomyślałem jako taki ... główny powód, dla którego tak naprawdę nie wspomniałem o tym, dopóki nie potrzebowałem. Mam na myśli to, że ich menedżerowie pakietów są tacy sami, Ubuntu jest po prostu dodatkowym debianem. ale w porządku. 15 minut nie działa, bo próbowałem o wiele dłużej niż 15 minut później. Ale nie mogę wpisać czegoś podobnego do „dpkg -f --remove mysql-common”?
bezsenność,
Jeśli zwykły --removedaje ostrzeżenie i przerywa, na pewno możesz go zmusić -f. BTW, --removejest taki sam jak -r.
ish
0

Jeśli ktoś chciałby się tam dowiedzieć, polecenie debian 2014 to:

dpkg --force-all -r name_of_package

To się trochę zmieniło

Istnieje wiele argumentów --force-, więc ze względu na depresję lepiej je sprawdzić:

dpkg --force-help
Michał Sapsa
źródło
--force-alljest zdecydowanie nie bezpieczne, więc dlaczego nie zasugerować --force-dependsORAZ podać odpowiednie ostrzeżenie?
guntbert
Nigdy nie jest bezpiecznie usuwać pakietu, który jest potrzebny dla innych pakietów, bez odinstalowywania drugiego. --force-all jest po prostu szybkim i brudnym podejściem
Michał Sapsa