Warum werden durch das Entfernen von gnome-core nicht alle Abhängigkeiten entfernt?

9

Ich habe ein gnome-corePaket unter Ubuntu installiert (Minimalversion für den Beagle Bone) und es war fast 600 MB groß. Wenn ich jedoch versuche, es mit zu deinstallieren

sudo apt-get autoremove gnome-core 

Es werden nur 49 MB entfernt. Irgendwelche Ideen, wie man die gesamten 600 MB entfernt?

Entwickler Android
quelle

Antworten:

15

gnome-core ist ein Metapaket und der Fall bei Metapaketen ist -

Sie ziehen Pakete, um installiert zu werden, aber wenn sie entfernt werden, werden nicht alle gezogenen Pakete entfernt .

Wenn Sie also nicht die Namen der von gnome-core installierten Pakete kopiert haben, ist es praktisch unmöglich, alle 600 MB zu entfernen.

Mit dem Befehl können Sie jedoch die Namen der gezogenen Pakete abrufen

apt-cache depends gnome-core 

und versuchen Sie, die Pakete einzeln zu entfernen. Sie sollten immer überprüfen, ob erforderliche Pakete entfernt werden.

Oder Sie können die Liste der Pakete auf nützlichere Weise abrufen:

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

Dadurch werden alle Abhängigkeiten des Gnome-Core-Pakets aufgelistet. Ignorieren Sie den Paketnamen nur in <>Markierungen.

Woher weiß ich, ob ein Systempaket entfernt wird?

Wenn Sie sehen, dass viel Speicherplatz aus dem Befehl freigegeben wird (mehr als 600 MB) , sollten Sie wissen, dass Sie mehr entfernen, als Sie installiert haben. apt-getLassen Sie Sie wissen, wie viel Speicherplatz freigegeben wird, bevor Sie wie bei einer solchen Nachricht entfernen

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

Wenn Sie versuchen, das wesentliche Systempaket zu entfernen, apt-getwird eine Warnmeldung angezeigt.

Empfehlung: Ich empfehle Ihnen, eine Liste der Pakete aus dem ersten Befehl abzurufen und sie nacheinander zu entfernen. Es ist sicherer. Wenn eine Warnung angezeigt wird, überspringen Sie das Entfernen dieses Pakets. Ich sehe, die meisten Pakete in Gnome-Core beziehen sich auf die GUI. Ich denke, das Entfernen dieser Pakete schadet Ihrem System nicht (wenn Sie keine GUI möchten) .

Hoffe das hilft!


Einige Hinweise zum Entfernen von Paketen

Wie werden gezogene Pakete deinstalliert, wenn Sie das Master-Paket entfernen?

Wenn Sie ein Paket installieren und dieses Paket von einigen anderen Paketen abhängt, werden die Abhängigkeitspakete ebenfalls installiert und als automatisch markiert . Das heißt, das Apt-System markiert sie als automatisch installiert als Abhängigkeit von einem anderen Paket . Es hilft dem Apt-System, unnötige Pakete zu erkennen.

Wenn Sie das Master-Paket deinstallieren, werden die gezogenen Pakete auch als veraltete oder unnötige Pakete im System markiert. Sie können sie entfernen, indem Sie die autoremoveOption angeben apt-get. (Eignung entfernt sie automatisch mit dem Master-Paket) .

Eine Ausnahme von dieser Regel besteht darin, dass, wenn Sie später ein anderes Paket installieren, das auch von den gezogenen Paketen abhängt, die gezogenen Pakete beim Entfernen des ersten Master-Pakets nicht als veraltet markiert werden.

Beispiel: Sie haben ein Paket installiert, Xdas vom Paket abhängt Y. Wenn Sie installiert haben X, wird Yauch installiert und als automatisch markiert. Wenn Sie kein anderes Paket installieren, Zdas ebenfalls davon abhängt Y, wird das Entfernen Xdie YNützlichkeit des Renderings rendern und das Apt-System wird es als veraltet markieren und Sie können es mit der autoremoveOption entfernen .

Wenn Sie jedoch ein Paket installieren, Zvon Xdem dies auch abhängt Y, wird das Entfernen nur Xnicht Yals veraltetes Paket markiert und Sie können es nicht mit der autoremoveOption entfernen

Beachten Sie jedoch, dass beim Entfernen des Pakets Ynach der Installation Xdas Paket entfernt wird, Yeinschließlich X, da Xes nicht ohne bleiben kann Yund Sie es entfernen möchten. Dies bedeutet, dass Sie auch das Paket entfernen Ymöchten X. Apt wird beim Entfernen Xautomatisch entfernt, im YGegensatz zur Markierung ist es für eine spätere autoremoveoptionale Entfernung veraltet .

Probieren Sie Beispiele aus: ubuntu-desktop package ist ein Metapaket. Es wurde verwendet, um den Standard-Ubuntu-Desktop zu installieren. Versuchen Sie es zu entfernen, nur das Paket wird entfernt.

Versuchen Sie auch, das lubuntu-desktopPaket zu installieren (Sie möchten dieses möglicherweise nicht installieren, da es sich um einen großen Download handelt) . Wenn Sie jedoch versuchen, es zu entfernen, wird nur das winzige Paket lubuntu-desktopentfernt.

Apt behandelt Metapakete unterschiedlich

Die Metapakete wie Gnome-Core, Ubuntu-Restricted-Extras werden auch als virtuelle Pakete bezeichnet. Sie werden so genannt, weil sie im Grunde genommen leere Pakete sind. Sie ziehen andere Pakete, indem sie von ihnen abhängen. Zum Beispiel hängen Ubuntu-Restricted-Extras (in 12.04) von folgenden Paketen ab:

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

Wobei Ubuntu-Restricted-Addons selbst ein weiteres Metapaket sind. Da Metapakete nur zum Abrufen von Paketen verwendet werden, werden sie bei der Installation nicht als automatisch markiert, sondern als manuell installiert. Das Ergebnis? Wenn Sie nur das Master-Metapaket entfernen, werden die gezogenen Pakete nicht als veraltet markiert, und Sie können sie nicht autoremoveoptional entfernen . Aus diesem Grund müssen Sie jedes gezogene Paket der Metapakete manuell entfernen.

Beispiel: Sie haben ein Metapaket installiert, Xdas von Paketen Yund abhängt Z. Bei der Installation werden die Pakete Yund Znicht als automatisch markiert (automatisch als Abhängigkeit von einem anderen Paket installiert) , sondern als manuell installiert. In einem späteren Zeitpunkt, wenn Sie entfernen möchten, Xwird nur das virtuelle XPaket entfernt. Beide Yund Zbleiben im System und können nicht mit der autoremoveOption deinstalliert werden .

Anwar
quelle
Das ist ziemlich umständlich. Aber ich denke, es ist der einzige Ausweg, oder?
Entwickler Android
Sind Sie sicher, dass apt-cache dependsdies hier nützlich sein wird? Ich bin der Meinung , dass der von Tijybba vorgeschlagene Weg für diesen Zweck besser geeignet ist.
@ Sab Soweit ich weiß, ja.
Anwar
@ vasa1Das Problem ist, dass ich einen Beagle-Bone laufen lasse und praktisch keine GUI habe, selbst wenn ich vnc viewer
Developer Android
@ Sab Ich habe einen weiteren Befehl hinzugefügt, um die Liste in einer Zeile zu erhalten.
Anwar
2

Die Installation von gnome-core bringt viele Pakete und Abhängigkeiten mit sich, da es sich um ein Metapaket handelt.

Eine Möglichkeit besteht darin, es manuell zu entfernen. Sie sollten jedoch wissen, welche Pakete entfernt werden müssen, ohne dass Nachwirkungen auftreten.

Die Liste der enthaltenen Pakete ist hier aufgeführt. Paket: gnome-core (1: 3.0 + 6ubuntu3) [Universum]

Gehen Sie zum Synaptic Manager (Installieren Sie ihn, falls nicht vorhanden) , klicken Sie auf Ursprung aus der Auswahl unten links, siehe Abbildung

Geben Sie hier die Bildbeschreibung ein

Wählen Sie das zu entfernende Paket unter dem obigen Link aus.

Vorsicht , wenn Sie nicht wissen , welche Pakete zu entfernen, dann Sie nicht diese Methode folgen. Diese können Abhängigkeitsfehler verursachen .

atenz
quelle
2

Einführung:

Um Programme über die Befehlszeile vollständig zu entfernen, haben Sie folgende Möglichkeiten:

Entfernen und konfigurieren Sie Dateien, aber keine Abhängigkeiten mit apt-get

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

Entfernen Sie nicht verwendete Abhängigkeiten und Konfigurationsdateien mit apt-get

sudo apt-get --purge autoremove

Wenn GNOME in Ubuntu 12.04 installiert ist, werden mehrere erforderliche Pakete und Bibliotheken sowie einige optionale Pakete installiert. Nicht alle diese Pakete und Bibliotheken werden deinstalliert, wenn Sie GNOME deinstallieren. Einige Pakete (wie Epiphany-Browser und Gnuchess) werden nicht deinstalliert. Schnelle Deinstallation

Dies wird nicht empfohlen, da alle normalerweise mit GNOME installierten Pakete entfernt werden. Dies kann Pakete umfassen, die Sie zuvor installiert haben (wie Epiphany-Browser oder Gnuchess), oder Pakete, die zuvor von anderen Anwendungen installiert wurden.

Hinweis: Bei diesem Deinstallationsbefehl wird davon ausgegangen, dass GNOME auf einem neuen Ubuntu 12.04 installiert wurde. 1

Drücken Sie einfach Ctrl+ Alt+ Tauf Ihrer Tastatur, um das Terminal zu öffnen. Führen Sie beim Öffnen den folgenden Befehl aus. (es ist sehr lang und eine einzelne Zeile)

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

Ein besserer Weg, um ein Paket vollständig zu entfernen

1) Öffnen Sie die Aptitude-Protokolldatei (/var/log/apt/history.log).

2) Suchen Sie die installierten Dateien.

3) Entfernen Sie die Dateien mit 1

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

1 Quelle: So deinstallieren / entfernen Sie GNOME vollständig

Mitch
quelle