Dlaczego usunięcie gnome-core nie usuwa wszystkich jego zależności?

9

Zainstalowałem gnome-corepakiet na Ubuntu (minimalna wersja dla kości beagle) i był to prawie 600 MB. Jednak gdy próbuję odinstalować go za pomocą

sudo apt-get autoremove gnome-core 

Usuwa tylko 49 MB. Wszelkie pomysły, jak usunąć całe 600 MB?

Deweloper Android
źródło

Odpowiedzi:

15

gnome-core jest pakietem meta, a przypadek z pakietami meta to -

Ciągną pakiety, aby się zainstalować, ale ich usunięcie nie spowoduje usunięcia wszystkich pobranych pakietów .

Tak więc, chyba że skopiowałeś nazwy pakietów zainstalowanych przez gnome-core, usunięcie wszystkich 600 MB jest praktycznie niemożliwe.

Ale możesz pobrać nazwy ściągniętych pakietów za pomocą polecenia

apt-cache depends gnome-core 

i spróbuj usunąć pakiety jeden po drugim. Zawsze powinieneś sprawdzać, czy usuwa jakieś niezbędne pakiety.

Lub możesz uzyskać listę pakietów w bardziej przydatny sposób, w ten sposób:

apt-cache depends gnome-core | cut -f 2 -d ':'  | tr '\n' ' '

Spowoduje to wyświetlenie wszystkich zależności pakietu gnome-core, zignoruj ​​nazwę pakietu <>tylko w znakach.

Skąd mam wiedzieć, czy jakiś pakiet systemowy jest usuwany?

Kiedy zobaczysz, że z polecenia zwalnia się dużo miejsca (ponad 600 MB) , powinieneś wiedzieć, że usuwasz więcej niż zainstalowałeś. apt-getpoinformuje Cię, ile miejsca ma zostać zwolnione, zanim usuniesz jak w przypadku takiej wiadomości

After this operation, 384 kB disk space will be freed.

A gdy spróbujesz usunąć niezbędny pakiet systemowy, apt-getwyświetli się komunikat ostrzegawczy.

Zalecenie: Sugeruję, aby uzyskać listę pakietów z pierwszego polecenia i spróbować je usuwać jeden po drugim. To jest bezpieczniejsze. Jeśli zobaczysz ostrzeżenie, pomiń usuwanie tego pakietu. Widzę, że większość pakietów w gnome-core jest związanych z GUI, chyba usunięcie tych pakietów nie zaszkodzi twojemu systemowi (jeśli nie chcesz GUI) .

Mam nadzieję że to pomoże!


Kilka uwag na temat usuwania pakietów

W jaki sposób wyciągnięte pakiety są odinstalowywane po usunięciu pakietu głównego?

Po zainstalowaniu pakietu, który zależy od niektórych innych pakietów, pakiety zależności również zostaną zainstalowane i oznaczone jako automatyczne . Oznacza to, że system Apt oznaczy je jako Automatycznie zainstalowane jako zależność innego pakietu . Pomaga systemowi Apt rozpoznać niepotrzebne pakiety.

Po odinstalowaniu pakietu głównego pobrane pakiety są również oznaczane jako przestarzałe lub niepotrzebne w systemie. Możesz je usunąć, podając autoremoveopcję apt-get. (aptitude automatycznie usuwa je z pakietem głównym) .

Wyjątkiem od tej reguły jest to, że jeśli później zainstalujesz inny pakiet, który również zależy od wyciągniętych pakietów, wyciągnięte pakiety nie zostaną oznaczone jako przestarzałe po usunięciu pierwszego pakietu głównego.

Przykład: Zainstalowałeś pakiet, Xktóry zależy od pakietu Y. Po zainstalowaniu X, Yrównież zostanie zainstalowany i oznaczone jako auto. Jeśli nie zainstalujesz innego pakietu, Zktóry również zależy od tego Y, usunięcie Xuczyni Yużyteczność, a system Apt oznaczy go jako przestarzały i możesz go usunąć z autoremoveopcją.

Ale jeśli zainstalujesz pakiet, Zod Xktórego zależy również Yto, usunięcie tylko Xnie oznacza, Yże pakiet jest przestarzały i nie możesz go usunąć z autoremoveopcją

Pamiętaj jednak, że jeśli usuniesz pakiet Ypo instalacji X, usunie on pakiet, w Ytym X, ponieważ Xnie może pozostać bez niego Yi chciałeś go usunąć Y, co oznacza, że ​​również chciałeś usunąć X. Apt usunie się Xautomatycznie podczas usuwania, w Yprzeciwieństwie do oznaczania go jako przestarzałego do późniejszego usunięcia według autoremoveopcji.

Wypróbuj przykłady: ubuntu-desktop pakiet to pakiet meta. Służył do instalacji standardowego pulpitu Ubuntu. Spróbuj go usunąć, tylko ten pakiet zostanie usunięty.

Spróbuj także zainstalować lubuntu-desktoppakiet (możesz go nie chcieć zainstalować, ponieważ jest to duży plik do pobrania) . Ale kiedy spróbujesz go usunąć, tylko niewielki pakiet lubuntu-desktopzostanie usunięty.

Apt obsługuje meta pakiety inaczej

Pakiety meta, takie jak gnome-core, dodatki związane z ubuntu, są również nazywane pakietami wirtualnymi. Nazywane są tak, ponieważ są w zasadzie pustymi paczkami, w zależności od nich pobierają inne paczki. Na przykład dodatki ograniczone przez ubuntu zależą od (w 12.04) następujących pakietów:

ubuntu-restricted-addons
ttf-mscorefonts-installer
unrar
gstreamer0.10-plugins-bad-multiverse
libavcodec-extra-53

Gdzie sam dodatek Ubuntu-ograniczony jest kolejnym pakietem meta. Ponieważ meta paczki są używane tylko do pobierania pakietów, ich instalacja nie oznacza, że ​​pakiety zostały pobrane jako automatyczne , są one oznaczone jako zainstalowane ręcznie. Wynik? Usunięcie tylko głównego pakietu meta nie oznacza, że ​​wyciągnięte pakiety są przestarzałe i nie można ich usunąć według autoremoveopcji. Dlatego musisz ręcznie usunąć każdy pobrany pakiet meta pakietów.

Przykład: Zainstalowałeś meta pakiet, Xktóry zależy od pakietów Yi Z. Po zainstalowaniu pakiety Yi Znie są oznaczane jako automatyczne (instalowane automatycznie jako zależność innego pakietu) , lecz są oznaczone jako zainstalowane ręcznie. Później, gdy chcesz usunąć X, Xusuwany jest tylko pakiet wirtualny . Zarówno Yi Zpozostają w systemie i nie można odinstalować je z autoremoveopcją.

Anwar
źródło
To raczej kłopotliwe. Ale myślę, że to jedyne wyjście, prawda?
Deweloper Android
Jesteś pewien, że apt-cache dependsprzyda ci się tutaj? Wydaje mi się, że sposób sugerowany przez tijybba jest bardziej odpowiedni do tego celu.
@Sab O ile mi wiadomo, tak.
Anwar
@ vasa1 Problem polega na tym, że używam kości beagle i nie mam praktycznie żadnego GUI, nawet przy użyciu przeglądarki vnc
programista Android
@Sab Dodałem kolejne polecenie, aby uzyskać listę w jednym wierszu.
Anwar
2

Instalowanie gnome-core , przynosi wiele pakietów i zależności, ponieważ jest to meta-pakiet.

Jednym ze sposobów jest usunięcie go ręcznie, ale powinieneś wiedzieć, które pakiety należy usunąć, nie powodując żadnych błędów następczych.

Lista zawartych pakietów znajduje się tutaj. Pakiet: gnome-core (1: 3.0 + 6ubuntu3) [wszechświat]

Przejdź do menedżera Synaptic (zainstaluj, jeśli nie jest obecny) , kliknij opcję Początek z lewej do dołu , wybierz obraz

wprowadź opis zdjęcia tutaj

Wybierz pakiet do usunięcia, odwołując się do powyższego linku.

Ostrożnie, jeśli nie wiesz, które pakiety usunąć, to nie postępuj zgodnie z tą metodą. Mogą one powodować błędy zależności .

atenz
źródło
2

Wprowadzenie:

Aby całkowicie usunąć programy za pomocą wiersza polecenia, masz następujące opcje;

Usuwaj i konfiguruj pliki, ale nie zależności za pomocą apt-get

sudo apt-get --purge remove <Package Name>

Usuń nieużywane zależności i pliki konfiguracyjne za pomocą apt-get

sudo apt-get --purge autoremove

Gdy GNOME jest zainstalowany w Ubuntu 12.04, instaluje kilka wymaganych pakietów i bibliotek, a także niektóre pakiety opcjonalne. Nie wszystkie te pakiety i biblioteki są odinstalowywane podczas odinstalowywania GNOME. Kilka pakietów (takich jak Epiphany-browser i gnuchess) nie zostaje odinstalowanych. Szybka dezinstalacja

Nie jest to zalecane, ponieważ spowoduje usunięcie wszystkich pakietów normalnie instalowanych z GNOME. Może to obejmować pakiety, które wcześniej zainstalowałeś (takie jak przeglądarka stron trzecich lub gnuchess) lub pakiety wcześniej zainstalowane przez inne aplikacje.

Uwaga: to polecenie odinstalowania zakłada, że ​​GNOME został zainstalowany na nowym Ubuntu 12.04. 1

Wystarczy nacisnąć Ctrl+ Alt+ Tna klawiaturze, aby otworzyć Terminal. Po otwarciu uruchom poniższe polecenie. (jest bardzo długi i pojedynczy wiersz)

sudo apt-get purge --auto-remove alacarte bogofilter bogofilter-bdb bogofilter-common browser-plugin-gnash cheese  cheese-common cups-pk-helper dconf-tools desktop-base ekiga epiphany-browser  epiphany-browser-data epiphany-extensions evolution evolution-common  evolution-plugins evolution-webcal fonts-cantarell gdebi gdebi-core gdm  gedit-plugins gimp gimp-data gir1.2-accountsservice-1.0 gir1.2-caribou-1.0  gir1.2-clutter-1.0 gir1.2-cogl-1.0 gir1.2-coglpango-1.0 gir1.2-folks-0.6  gir1.2-gdesktopenums-3.0 gir1.2-gee-1.0 gir1.2-gjsdbus-1.0 gir1.2-gkbd-3.0  gir1.2-gucharmap-2.90 gir1.2-json-1.0 gir1.2-mutter-3.0  gir1.2-networkmanager-1.0 gir1.2-panelapplet-4.0 gir1.2-polkit-1.0  gir1.2-telepathyglib-0.12 gir1.2-telepathylogger-0.2 gir1.2-upowerglib-1.0  gir1.2-xkl-1.0 gjs glchess glines gnash gnash-common gnect gnibbles gnobots2  gnome gnome-applets gnome-applets-data gnome-backgrounds gnome-contacts  gnome-core gnome-dictionary gnome-games gnome-games-extra-data  gnome-icon-theme-extras gnome-icon-theme-full gnome-js-common gnome-panel  gnome-panel-data gnome-session-fallback gnome-shell gnome-shell-common  gnome-themes-standard gnome-video-effects gnotravex gnotski gnuchess  gnuchess-book gtali hamster-applet iagno imagemagick imagemagick-common  indicator-applet-complete inkscape libbabl-0.0-0 libblas3gf libbonobo2-0  libbonobo2-common libbonoboui2-0 libbonoboui2-common libboost-iostreams1.46.1  libboost-program-options1.46.1 libboost-signals1.46.1 libboost-thread1.46.1  libcapi20-3 libcaribou-common libcaribou0 libcdt4 libcheese-gtk21 libcheese3  libclutter-1.0-0 libclutter-1.0-common libclutter-gst-1.0-0 libclutter-gtk-1.0-0  libclutter-imcontext-0.1-0 libcluttergesture-0.0.2-0 libcogl-common  libcogl-pango0 libcogl9 libept1.4.12 libevolution libgc1c2 libgdict-1.0-6  libgdict-common libgegl-0.0-0 libgfortran3 libgimp2.0 libgjs0c libglade2-0  libgnome2-0 libgnomecanvas2-0 libgnomecanvas2-common libgnomeui-0  libgnomeui-common libgnomevfs2-extra libgraph4 libgsl0ldbl libgtkhtml-4.0-0  libgtkhtml-4.0-common libgtkhtml-editor-4.0-0 libgtkmm-2.4-1c2a libgvc5  libilmbase6 liblapack3gf liblqr-1-0 libmagick++4 libmagickcore4  libmagickcore4-extra libmagickwand4 libmozjs185-1.0 libmusicbrainz4-3 libmutter0  libmx-1.0-2 libnetpbm10 libodbc1 libopal3.10.2 libopenexr6 libpanel-applet--0  libpathplan4 libpst4 libpt2.10.2 libseed-gtk3-0 libwmf-bin liferea liferea-data  lightsoff menu menu-xdg mutter-common netpbm notification-daemon odbcinst  odbcinst1debian2 perlmagick python-gmenu python-gnome2 python-lxml python-numpy  python-pyorbit python-uniconvertor quadrapassel sound-juicer swell-foop synaptic  unixodbc

Lepszy sposób na całkowite usunięcie pakietu

1) Otwórz plik dziennika aptitude (/var/log/apt/history.log).

2) Znajdź zainstalowane pliki.

3) Usuń pliki za pomocą 1

sudo apt-get remove --auto-remove <file names>

1 Źródło: Jak całkowicie odinstalować / usunąć GNOME

Mitch
źródło