Jak możesz całkowicie usunąć paczkę?

188

Próbuję wykonać czystą instalację octave3.2pakietu.

Aby to zrobić, usunąłem go, a następnie próbowałem ponownie zainstalować.

Podczas ponownej instalacji wystąpił błąd. Może to być błąd w pakiecie, ale chcę się upewnić, że wszystko zostało usunięte, aby móc przeprowadzić czystą instalację.

Czy to wystarczy?

sudo apt-get --purge remove octave3.2
użytkownik1012451
źródło
Czy można ponownie zainstalować pakiet i zwrócić uwagę na listę zależności LUB pakietu ..?
user309924
Zalecamy odwiedzić to
Pandya

Odpowiedzi:

185

To jest bardzo ogólna odpowiedź na pytanie o skutki czyszczenia pakietów. Aby uzyskać porady dotyczące konkretnej sytuacji, musisz zmodyfikować pytanie, aby uwzględnić dodatkowe informacje - w szczególności pełny i dokładny tekst otrzymywanego komunikatu o błędzie.

Usunięcie pakietów za pomocą lub spowoduje usunięcie ich i wszystkich ich globalnych (tj. Ogólnosystemowych) plików konfiguracyjnych. To zwykle mają na myśli ludzie, kiedy mówią o całkowitym usunięciu pakietu.sudo apt purge ...sudo apt --purge remove ...

Ale to nie znaczy, że twój system jest taki sam, jak przed instalacją pakietu. W szczególności:

  • Nie usuwa to pakietów, które zostały zainstalowane jako zależności, gdy instalujesz pakiet, który teraz usuwasz. Zakładając, że te pakiety nie są zależnościami od innych pakietów i że nie zaznaczyłeś ich jako zainstalowanych ręcznie, możesz usunąć zależności za pomocą sudo apt autoremovelub (jeśli chcesz również usunąć ich pliki konfiguracji ogólnosystemowej) sudo apt --purge autoremove.

  • To nie usuwa plików konfiguracyjnych niesystemowych. W szczególności nie usuwa konfiguracji specyficznej dla użytkownika:

    • Nie usuwa plików konfiguracyjnych i katalogów znajdujących się w katalogach domowych użytkowników (lub w .configpodkatalogu ich katalogów domowych), utworzonych przez oprogramowanie dostarczone przez pakiet.

      • Jeśli te pliki / foldery nie są przechowywane .config, zwykle zaczynają się od .siebie. Tak czy inaczej, możesz je zobaczyć lsza pomocą flagi -alub -A, i możesz je zobaczyć w Nautilusie i większości innych przeglądarek / menedżerów plików, naciskając Ctrl+ Hlub wybierając Widok > Pokaż ukryte pliki .
    • Nie odwraca zmian dokonanych w istniejących plikach konfiguracyjnych specyficznych dla użytkownika.

    • Nie usuwa nowy gconflub dconfklucze, rozwiązywała gconflub dconfkonfiguracji zmian.

  • Użycie purgelub --purge removezamiast tego removenie odwraca zmian w istniejących ogólnosystemowych plikach konfiguracyjnych udostępnianych przez inne pakiety lub tworzonych ręcznie przez użytkownika. Czasami jednak takie zmiany są cofane przez odinstalowanie pakietu (niezależnie od tego, czy jest to purgeraczej niż a remove).

Eliah Kagan
źródło
61

Użyj polecenia:

sudo apt-get purge --auto-remove packagename

Oczyści wymagane pakiety wraz z zależnościami zainstalowanymi z tymi pakietami. --auto-removeOpcja działa podobnie do sudo apt-get autoremove.

pl_rock
źródło
1
to rozwiązało mój problem, szczególnie z certbotem
T.Todua
7

Najpierw sprawdź nazwę pakietu, który chcesz usunąć:

dpkg --list

Następnie usuń podany pakiet

sudo apt-get remove package_name

Usuń dowolny powiązany kod

sudo apt-get purge package_name

Następnie Autoremove

sudo apt-get autoremove

Na koniec wykonaj czyszczenie, aby sprawdzić, czy wszystko zostało poprawnie usunięte

sudo apt-get clean

Chcesz sprawdzić na liście pakietów, czy ten, który chcesz usunąć, nie jest już na liście, ale jest opcjonalny.

Miłego dnia,

użytkownik2777677
źródło
4

Lepiej śledź dodatkowe pakiety zależności zainstalowane podczas instalacji.

The following extra packages will be installed: 
    libgssglue1 libnfsidmap2 libtirpc1 nfs-common rpcbind

Jeśli usuniesz tylko oryginalny pakiet, pakiet zależności może pozostać.

Musisz więc ręcznie usunąć każdy za pomocą

apt-get purge package_name
Harikrishnan
źródło
1
Jak mogę uzyskać listę tych pakietów, jeśli moja konsola nie przewija się wystarczająco daleko
Luke Taylor
@LukeTaylor apt-get install package_name > output Następnie, less output aby zobaczyć wszystkie dane wyjściowe z przewijaniem.
Harikrishnan,
2

Zamiast ręcznie usuwać automatycznie instalowane pakiety zależne, użyj następujących:

 zanfilip @ zanfilip-VPCEB3L0E: ~ / jp / eclipse $ sudo apt-get --purge autorove
    Czytanie list pakietów ... Gotowe
    Budowanie drzewa zależności       
    Odczytywanie informacji o stanie ... Gotowe
    Następujące pakiety zostaną USUNIĘTE
      libupstart1 * linux-headers-3.16.0-30 * linux-headers-3.16.0-30-generic *
      linux-image-3.16.0-30-generic * linux-image-extra-3.16.0-30-generic *
    0 do aktualizacji, 0 do nowej instalacji, 5 do usunięcia i 23 do nie do aktualizacji.
    Po tej operacji zostanie zwolnione 279 MB miejsca na dysku.
    Czy chcesz kontynuować? [T / n]

zanfilip
źródło
2

Jeśli chcesz usunąć niektóre pakiety, możesz użyć tych poleceń:

dpkg --get-selections | grep PACKAGE_NAME | awk '{ print $1}'| xargs apt-get -y --purge autoremove

nie zapomnij przełącznika „-y”, ponieważ w przeciwnym razie apt-get będzie pytał o usunięcie poszczególnych pakietów i niczego nie usunie.

Kerem Ersoy
źródło
2
Może to być przydatne, ale może też być destrukcyjne: może łatwo dopasować pakiet, którego tak naprawdę nie chciałeś usunąć, i usunąć jego konfigurację bez potwierdzenia! Na szczęście od nazwy pakietów nie zawierają miejsca, możemy przekształcić go dookoła i upuść -y: apt-get --purge autoremove $(dpkg --get-selections | grep PACKAGE_NAME | awk '{ print $1}'). To byłoby trochę bezpieczniejsze.
joeytwiddle
Być może bezpieczniej byłoby uruchomić komendę jako: dpkg --get-selections | grep PACKAGE_NAME | awk „{print $ 1}” Najpierw uruchom, a następnie uruchom go za pomocą xargs, co jest lepszą praktyką, aby użytkownik zobaczył, co zostanie usunięte w wyniku polecenia.
Kerem Ersoy,
0

Inną dostępną opcją jest użycie debfosterpakietu. To interaktywnie znajdzie i zasugeruje pakiety do usunięcia (i wyczyszczenia) wraz z pakietami zależnymi.

sudo apt install debfoster
sudo debfoster
# and optionally remove debfoster too
sudo purge debfoster
MacroMan
źródło