Szukałem takich informacji w sieci i znalazłem różne wiersze poleceń, takie jak te:
sudo apt-get remove application
sudo apt-get remove application*
sudo apt-get remove --purge application
sudo apt-get remove --purge application*
sudo apt-get purge application
sudo apt-get purge application*
Więc jaki jest właściwy sposób? Czy konieczne jest użycie tego „*”?
Potem znalazłem też następujące polecenia:
sudo updatedb
sudo locate application
sudo rm -rf (file/folder name)
command-line
package-management
użytkownik48949
źródło
źródło
application*
może czasami dać nieoczekiwane wyniki - na przykład, jeśli masz plik w bieżącym katalogu o nazwieapplication_information
, powłoka rozszerzy go, zanim zostanie przekazany do apt-get. Jeśli tak się dzieje i chcesz literalnej gwiazdki, możesz użyćapplication\*
lub'application*'
application*
jest jeszcze bardziej niebezpieczne, gdy w bieżącym katalogu nie ma plików:apt-get
używa wyrażeń regularnych, bez wzorców globów. Ludzie prawie wyczyścili cały system, próbując go usunąćwine*
.application*
nieapplication\*
jest bezpieczny! Cytowanie*
z\
lub'
'
tylko zwiększa ryzyko, upewniając się, że*
jest przekazywane tak, jak jestapt-get
(choć zwykle tak jest!), Powodujeapt-get
interpretację argumentu jako wyrażenia regularnego. W wyrażeniu regularnym*
oznacza „zero lub więcej poprzedniego znaku”. Powszechną formą błędu jest odinstalowaniewine*
, usuwając wszystkie pakiety zwin
(niewine
,win
) nigdzie w swoich nazwach i wszystkich pakietów w zależności od każdego z nich. Zobacz to wyjaśnienie i możliwe poprawki . @IzkataOdpowiedzi:
apt-get remove packagename
usunie pliki binarne, ale nie pliki konfiguracyjne ani pliki pakietu
packagename
. Pozostawi również zainstalowane zależności w czasie instalacji bez zmian.apt-get purge packagename
lubapt-get remove --purge packagename
usunie prawie wszystko dotyczące pakietu
packagename
, ale nie zależności zainstalowane z nim podczas instalacji. Oba polecenia są równoważne.Jest to szczególnie przydatne, gdy chcesz „zacząć wszystko od nowa” w aplikacji, ponieważ pomieszałeś konfigurację. Nie usuwa jednak plików konfiguracyjnych ani danych znajdujących się w domowych katalogach użytkowników, zwykle w ukrytych folderach. Nie ma też łatwego sposobu na ich usunięcie.
apt-get autoremove
usuwa osierocone pakiety, tj. zainstalowane pakiety, które były instalowane jako zależność, ale już nie są. Użyj tego po usunięciu pakietu z zainstalowanymi zależnościami, które już Cię nie interesują.
aptitude remove packagename
lubaptitude purge packagename
(podobnie)spróbuje również usunąć inne pakiety, które były wymagane przez
packagename
on, ale nie są wymagane przez pozostałe pakiety. Pamiętaj, żeaptitude
zapamiętuje tylko informacje o zależnościach dla zainstalowanych pakietów.I istnieje wiele innych.
dpkg
Można używać poleceń niższego poziomu (zaawansowane) lub narzędzi GUI, takich jak Muon, Synaptic, Software Center itp. Nie ma jednego „poprawnego sposobu” usuwania aplikacji lub wykonywania innych zadań współdziałających z zarządzaniem pakietami.Lista, którą znalazłeś, to tylko przykłady. Upewnij się, że rozumiesz znaczenie i wypróbuj, co chce zrobić, zanim zaakceptujesz akcję (musisz nacisnąć,
Y
zanim faktycznie wykona czynności zgodnie z propozycją).Wersja gwiazdki w pytaniu jest prawdopodobnie nieprawidłowa ;
apt-get
przyjmuje jako powłokę wyrażenie regularne, a nie wzorzec globalny. Co się dzieje zjest następujący:
Powłoka próbuje się rozwinąć,
application*
patrząc na pliki w bieżącym katalogu. Jeśli (jak to zwykle bywa) nic nie znajdzie, zwraca niezmieniony wzorzec globalny (zakładając, żebash
zachowanie domyślne tutaj ---zsh
spowoduje błąd).apt-get
usunie pakiety, których nazwa zawiera ciąg , który spełnia wyrażenie regularneapplication*
, to znaczy,applicatio
następnie dowolnej liczbyn
:applicatio
,application
,applicationn
,libapplicatio
, itd.Aby zobaczyć, jak może to być niebezpieczne, spróbuj (bez rootowania dla podwójnego bezpieczeństwa)
apt-get -s remove "wine*"
(-s
symuluje to, zamiast tego robić) - powie, że usunie wszystkie pakiety, które mają „win” w nazwie i zależne, prawie cały system ...Prawdopodobnie polecenie, które miało na myśli, jest naprawdę
(zwróć uwagę na cudzysłowy i kropkę), co spowoduje usunięcie wszystkich pakietów, których nazwa zaczyna się od
application
.Te polecenia,
są całkowicie poza zakresem zarządzania pakietami. Nie usuwaj plików należących do pakietów bez użycia menedżera pakietów! Będzie się mylić i jest to zły sposób robienia rzeczy.
Jeśli nie wiesz, do którego pakietu należy plik, spróbuj tego:
źródło
apt-get-autoremove --purge
Należy również pamiętać, że opcja --purge nie ma wpływu na pliki konfiguracyjne w katalogu domowym. Te będziesz musiał usunąć ręcznie.apt remove -s texlive*
zapt-get
linii zwrotnych lub jej odpowiedniki, takie jakNote, selecting 'texlive-font-utils' for glob 'texlive*'
(co oznacza, że faktycznie akceptują globusy), a następnie zwykłePackage 'texlive-common' is not installed, so not removed
i na końcuRemv
wiersze, takie jakRemv texlive-font-utils [2015.20160320-1] [...]
.apt-get remove packa*
rzeczywiście bierze globpacka*
zamiast patrzeć na niego jako wyrażenie regularne: pasuje,package
ale niepack
.W przypadku systemu Ubuntu 12.04 i nowszych poprawna metoda to:
Jak wyszczególniono tutaj .
Nie używaj,
packagename*
ponieważ może to usunąć niezamierzone pakiety i spowodować więcej problemów niż rozwiązuje. Lub jeśli trzeba, przynajmniej uruchomić go z-s
,--simulate
,--dry-run
flaga najpierw dokładnie sprawdzić, co to zrobi bez robią.źródło
Możesz użyć tego polecenia:
Oczyści wymagane pakiety wraz z zależnościami zainstalowanymi z tymi pakietami.
--auto-remove
Opcja (jako aliasautoremove
) działa podobnie dosudo apt-get autoremove
. Za pomocą tego polecenia możemy uruchomić jedno polecenie:Zamiast:
źródło
sudo apt-get --purge autoremove packagename
. To samo 1 polecenie tutajapt-get autoremove --purge
zamiastapt-get purge --auto-remove
?Możesz bezpiecznie używać
sudo apt-get remove --purge application
lubsudo apt-get remove applications
99% czasu. Kiedy używaszpurge
flagi, po prostu usuwa również wszystkie pliki konfiguracyjne. Które mogą, ale nie muszą być, w zależności od tego, czy chcesz ponownie zainstalować tę aplikację.application*
Będzie pasował do wszystkich aplikacji, które zaczynają sięapplication
, które są zwykle wtyczek, dodatkowe funkcje, itp głównego aplikacji, usuwanie. to znaczybyłoby usunąć
gedit
,gedit-plugins
igedit-common
. Zazwyczaj nie jest to konieczne, ponieważ większość wtyczek / powiązanych programów zależy od głównej aplikacji i zostanie automatycznie usunięta (lub oznaczona do usunięcia) po odinstalowaniu głównej aplikacji.Twoim ostatnim poleceniem jest po prostu usunięcie resztek z aplikacji, o których wiadomo, że mają niechlujne deinstalatory, i to po prostu usunięcie wszelkich pozostałości aplikacji.
źródło
Otrzymałem kilka komunikatów o błędach podczas usuwania pakietu, jedynym sposobem, który działał, było:
Przekonałem się, że chociaż używam tylko
nie usuwa pakietu, pokazuje mi poprawną ścieżkę do pliku, z którym należy się przenieść:
Zastąp pakiet nazwą aplikacji. Używaj sudo w Ubuntu, zostań rootem w Debianie.
źródło
Znalazłem to polecenie w Internecie.
http://www.debian-administration.org/article/Reinstalling_packages_to_fix_problems .
źródło
To zależy od aplikacji, którą chcesz usunąć. Zawsze należy sprawdzić jego zależności przed wydaniem polecenia tak. Gdy usuniesz coś za pomocą wiersza polecenia, czasami wyświetli garść bibliotek, które nie są już potrzebne. Można je usunąć za pomocą apt-get autorove.
Uważaj, używając poleceń takich jak sudo apt-get remove --purge nazwa_aplikacji może usunąć niektóre zależności, które są potrzebne innym aplikacjom, i jako takie może uszkodzić system.
Jeśli chcesz to zrobić w bezpieczniejszy sposób, zawsze możesz go usunąć za pomocą tylko centrum oprogramowania lub apt-get remove nazwa aplikacji. Jeśli zależności nie są już potrzebne, należy wydać apt-get autorove później.
źródło
Chciałem tylko wyjaśnić jedną rzecz, która wydaje się być źródłem zamieszania.
dpkg
Narzędzie nie wiedzieć lub śledzić pakiety zależności w stosunku do siebie, co było ważnym powodem, któryapt
został opracowany wierzę. Możesz o tym przeczytać w sekcji 8.6 na tej stronie FAQ Debiana GNU / Linux - narzędzia do zarządzania pakietami DebianaZ apt: Jeśli chciałbym wyczyścić pakiet A i ma on zależność o nazwie pakiet B, a pakiet B nie miał innych zależnych pakietów, wówczas pakiety A i B zostaną usunięte. Jeśli pakiet B DID ma inne pakiety zależne, tylko pakiet A zostanie wyczyszczony.
Z dpkg: jaka zależność? Właśnie kazałeś mi wyczyścić tę cholerną
paczkę, więc to właśnie zrobiłem! Złe planowanie z twojej strony nie
stanowi zagrożenia z mojej strony.
Powiedziawszy to, oto dwie jednowarstwowe, które można zastosować do każdej metody oczyszczania:
Usuń,
--dry-run
aby wykonać rzeczywistą operację czyszczenia zamiast zgłaszać, jakie działania byś podjął.źródło