Ich habe eine ältere Debian 7-VM zum Testen. Ich versuche, die Größe des VM-Footprints zu reduzieren, da ich fast keinen Platz mehr habe. Ich wollte Iceweasel entfernen, da ich es nicht wirklich verwende und normalerweise mit auskomme wget
. Als ich es ausführte, Apt
wurde mir mitgeteilt, dass auch GNOME entfernt wird:
$ sudo apt-get remove iceweasel*
...
The following packages were automatically installed and are no longer required:
hyphen-en-us libfs6 task-desktop x11-apps x11-session-utils x11-xfs-utils
xinit xorg
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
icedove iceowl-extension
Suggested packages:
apparmor calendar-google-provider
The following packages will be REMOVED:
gnome gnome-core iceweasel task-gnome-desktop
The following NEW packages will be installed:
icedove iceowl-extension
0 upgraded, 2 newly installed, 4 to remove and 0 not upgraded.
Need to get 44.7 MB of archives.
After this operation, 100 MB of additional disk space will be used.
...
Warum wird GNOME durch das Entfernen von Iceweasel zerstört?
Nach dem Entfernen von Iceweasel und anschließendem Durchführen eines autoclean
And- autoremove
Passes wurde dies angezeigt. Ich bin ziemlich sicher, dass diese VM unbrauchbar geworden ist.
The following packages will be REMOVED:
aisleriot ant ant-optional argyll at-spi2-core baobab browser-plugin-gnash
ca-certificates-java caribou caribou-antler cheese dconf-tools default-jre
default-jre-headless empathy empathy-common espeak-data file-roller finger
fonts-cantarell fonts-opensymbol fonts-sil-gentium fonts-sil-gentium-basic
gcalctool gdebi gdm3 gedit gedit-common gedit-plugins gir1.2-atspi-2.0
gir1.2-gdata-0.0 gir1.2-gnomekeyring-1.0 gir1.2-goa-1.0 gir1.2-gtop-2.0
gir1.2-gucharmap-2.90 gir1.2-javascriptcoregtk-3.0 gir1.2-rb-3.0
gir1.2-tracker-0.14 gir1.2-webkit-3.0 gir1.2-wnck-3.0 glchess glines gnash
gnash-common gnect gnibbles gnobots2 gnome-backgrounds gnome-color-manager
gnome-dictionary gnome-disk-utility gnome-documents gnome-font-viewer
gnome-games gnome-games-data gnome-games-extra-data gnome-icon-theme-extras
gnome-mag gnome-nettool gnome-orca gnome-packagekit gnome-packagekit-data
gnome-screenshot gnome-shell-extensions gnome-sudoku gnome-system-log
gnome-tweak-tool gnome-video-effects gnomine gnotravex gnotski gnuchess
gnuchess-book grilo-plugins-0.1 gtali gucharmap guile-2.0-libs
hamster-applet hyphen-en-us iagno icedtea-6-jre-cacao icedtea-6-jre-jamvm
icedtea-netx icedtea-netx-common inkscape iputils-tracepath java-common
libapache-pom-java libatk-adaptor libatk-adaptor-data libatk-bridge2.0-0
libatk-wrapper-java libatk-wrapper-java-jni libatspi1.0-0 libatspi2.0-0
libavahi-gobject0 libavahi-ui-gtk3-0 libblas3gf
libboost-program-options1.49.0 libboost-thread1.49.0 libcaribou-gtk-module
libcaribou-gtk3-module libcmis-0.2-0 libcolamd2.7.1 libcolorblind0
libcommons-beanutils-java libcommons-collections3-java
libcommons-compress-java libcommons-digester-java libcommons-logging-java
libcommons-parent-java libdb-java libdb-je-java libdb5.1-java
libdb5.1-java-jni libdee-1.0-4 libdiscid0 libdmapsharing-3.0-2 libdotconf1.0
libespeak1 libexttextcat-data libexttextcat0 libfs6 libgail-common
libgdict-1.0-6 libgdict-common libgdu-gtk0 libgeocode-glib0 libgexiv2-1
libgnome-mag2 libgpod-common libgpod4 libgraphite2-2.0.0 libgrilo-0.1-0
libgtk-vnc-2.0-0 libgupnp-av-1.0-2 libgupnp-dlna-1.0-2 libgvnc-1.0-0
libhsqldb-java libhyphen0 libicc2 libicu4j-java libimdi0 libjaxp1.3-java
libjline-java libjtidy-java liblinear-tools liblinear1 liblouis-data
liblouis2 liblucene2-java libmagick++5 libminiupnpc5 libmtp-common
libmtp-runtime libmtp9 libmythes-1.2-0 libnatpmp1 libplot2c2 libpstoedit0c2a
libraw5 libregexp-java libreoffice libreoffice-base libreoffice-base-core
libreoffice-calc libreoffice-common libreoffice-core libreoffice-draw
libreoffice-emailmerge libreoffice-evolution libreoffice-filter-binfilter
libreoffice-filter-mobiledev libreoffice-gnome libreoffice-gtk
libreoffice-help-en-us libreoffice-impress libreoffice-java-common
libreoffice-math libreoffice-report-builder-bin libreoffice-style-galaxy
libreoffice-style-tango libreoffice-writer librhythmbox-core6 libsctp1
libservlet2.5-java libsofia-sip-ua-glib3 libsofia-sip-ua0 libsonic0
libspeechd2 libstlport4.6ldbl libsvm-tools libtelepathy-farstream2
libunique-3.0-0 libvisio-0.0-0 libwnck-common libwnck22 libwpd-0.9-9
libwpg-0.2-2 libwps-0.2-2 libxalan2-java libxerces2-java
libxml-commons-external-java libxml-commons-resolver1.1-java libxss1
libxz-java lightsoff lksctp-tools lp-solve mahjongg media-player-info
minissdpd mobile-broadband-provider-info mythes-en-us network-manager-gnome
nmap openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib openjdk-7-jre
openjdk-7-jre-headless p7zip-full perlmagick pstoedit python-brlapi
python-louis python-mako python-markupsafe python-pyatspi python-pyatspi2
python-speechd python-uno python-wnck python-zeitgeist quadrapassel rdesktop
rhythmbox rhythmbox-data rhythmbox-plugin-cdrecorder rhythmbox-plugins rygel
rygel-playbin rygel-preferences rygel-tracker seahorse shotwell
shotwell-common simple-scan sound-juicer sound-theme-freedesktop
speech-dispatcher swell-foop task-desktop telepathy-gabble telepathy-idle
telepathy-logger telepathy-rakia telepathy-salut transmission-common
transmission-gtk ttf-liberation ttf-sil-gentium-basic tzdata-java uno-libs3
unoconv ure vinagre vino x11-apps x11-session-utils x11-xfs-utils xbrlapi
xdg-user-dirs-gtk xfonts-mathml xinit xorg xul-ext-adblock-plus
zeitgeist-core
0 upgraded, 0 newly installed, 278 to remove and 0 not upgraded.
Antwort1
Wie andere bereits erklärt haben, sind die Desktop-Metapakete – wie task-desktop
odergnome-core
— installieren Sie heutzutage einen Webbrowser (naja, eigentlich schon seit ziemlich langer Zeit). Sie erwarten vielleicht, gnome-core
Epiphany zu installieren oder es zumindest als Alternative zu Iceweasel zuzulassen, aberaus Sicherheitsgründen nicht. In der gnome-core
Beschreibung wird die Browserabhängigkeit erwähnt:
Dies sind die Kernkomponenten der GNOME-Desktopumgebung, einem intuitiven und attraktiven Desktop.
Dieses Metapaket hängt von einem grundlegenden Satz an Programmen ab, darunter ein Dateimanager, ein Bildbetrachter, ein Webbrowser, ein Videoplayer und andere Tools.
Es enthält die offiziellen „Kern“-Module des GNOME-Desktops.
Es gibt also zwei Gründe, warum es von Iceweasel abhängt:
- es wird als abhängig von einem Webbrowser definiert;
- Der einzige sinnvolle Browser für den GNOME-Desktop ist Iceweasel, da Epiphany nicht über genügend Sicherheitsunterstützung verfügt und Chromium sich nicht richtig in den Desktop integrieren lässt.
Früher gab es eine alternative Abhängigkeit von gnome-www-browser
, aber das war2011 entfernt(soweit ich weiß, ohne Erklärung). Es wäre vielleicht sinnvoll, die Betreuer zu bitten, es erneut einzuführen, aber es würde Ihnen bei der Installation gnome-core
ohne Browser nicht helfen.
Die Mechanismen, die dazu führen, dass GNOME entfernt wird, wenn Sie Iceweasel entfernen, sind relativ unkompliziert. Wenn Sie GNOME auffordern, apt-get
etwas zu tun, versucht es wirklich, es zu tun – wenn Sie also ein Paket entfernen, wird alles entfernt, was davon abhängt (nachdem Sie dazu aufgefordert wurden).gnome-core
hängt davon ab iceweasel
, undgnome
hängt davon ab gnome-core
, also
apt-get remove iceweasel
entfernt auch gnome-core
und gnome
.
Das Entfernen dieser Metapakete führt dazu, dass alle Pakete, von denen sie abhängen, zu Kandidaten für die Entfernung mit werden autoremove
, da das Verpackungssystem sie nun als unnötig erachtet (kein als nicht automatisch installiert markiertes Paket hängt von ihnen ab). Das Verpackungssystem geht davon aus, dass der Benutzer diese Pakete, die als explizit installiert markiert sind, wirklich haben möchte, und alles andere nur installiert wird, um diese Pakete zu unterstützen. Wenn also irgendetwas gnome
oder entfernt gnome-core
, wird es beim nächsten Ausführen apt-get autoremove
von berücksichtigen, dass viele der installierten Pakete unnötig sind...
Es gibt einige Problemumgehungen:
gnome-core
wenn Sie die Installation ohne Iceweasel beibehalten möchten , verwenden Sieequivs
oderapt-holepunch
(Letzteres ist in diesem Fall viel einfacher zu verwenden, dankeJosua!) um ein gefälschtesiceweasel
Paket zu erstellen und das zusammen mit zu installierengnome-core
;gehen Sie alle Pakete durch, die
gnome
Undgnome-core
abhängig sind, entscheiden Sie, welche davon Sie verwenden möchten und/oder benötigen (z.Bgdm3
,gnome-session
,nautilus
...) und markieren Sie diese mitapt-mark manual ...
oder mithilfe
aptitude
der GUI von (was viel einfacher ist).
Auf jeden Fall kann man nichtbrechenIhre VM, indem Sie Pakete entfernen, es sei denn, Sie beginnen mit dem Entfernen wichtiger Pakete (und apt-get
werden sich lautstark beschweren, bevor Sie dies tun dürfen) oder des Kernels. Möglicherweise müssen Sie sich bei einer Textkonsole anmelden, aber Sie können die Dinge von dort genauso gut beheben wie von einem X-Terminalemulator aus.
Antwort2
Aufgaben werden bei der Installation ausgewählt ( tasksel
), und es gibt keine separate Aufgabe für „Webbrowser“ … Theoretisch könnte sie desktopspezifisch sein, wie in den Tagen von KDE3. Die Leute erwarten, dass der Standarddesktop einen Webbrowser enthält, wenn nicht aus anderen Gründen, um Hilfe auf ihrem neuen System zu erhalten :). Daher enthält die Desktop-Aufgabe einen Standard-Webbrowser, QED.
Außer dass unsere Fragekommentare falsch sind. task-gnome-desktop erfordert Iceweasel nicht. Es empfiehlt es nur.
(Die am meisten hochgevotete Antwort weist darauf hin, dass es eine indirekte Beziehung gibt, dietuterfordern. Auf den ersten Blick könnte es in dieser Abhängigkeitsstruktur durchaus Raum für Verbesserungen geben. IchdenkenFolgendes ist jedoch weiterhin gültig.)
Sie haben etwas sehr Wichtiges verpasst.
Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt: hyphen-en-us libfs6 task-desktop
Es stellte sich heraus (nach dem Entfernen von iceweasel?), dass Sie keine Pakete installiert hatten, die entweder von abhingen oder empfohlen wurden task-desktop
. Es war auch nicht als manuell installiert markiert. Also wird es natürlich apt-get autoremove
entfernt.
Fragezeichen, weil ich beim Betrachten der Debian-Paketdatenbank nicht sehe, wie iceweasel davon abhängt oder es empfiehlt task-desktop
. Es könnte bereits automatisch entfernbar gewesen sein.
Gehen Sie bei der Verwendung der automatischen Entfernung vorsichtig vor. Wenn die automatische Entfernung anzeigt, dass Ihr gesamter Desktop als unnötig erachtet wird, brechen Sie die Funktion ab und markieren Sie Ihren Desktop als manuell installiert ( apt-mark
).
VM ist nicht nutzlos; Sie können sich bei der Konsole anmelden und ausführen apt-get install task-gnome-desktop
. Wenn Sie kein empfohlenes Paket möchtenwie Eiswiesel, können Sie versuchen, zu verwenden apt-get install task-gnome-desktop iceweasel-
.
Es ist auch möglich, empfohlene Abhängigkeiten mithilfe von synaptic
(GUI) oder aptitude
(TUI) zu entfernen. (Beachten Sie, dass Aptitude standardmäßig automatisch entfernt, während Synaptic eine Liste nicht mehr benötigter Pakete hat, die Sie irgendwo finden können.) Leider kann IME Synaptic heutzutage ziemlich klobig und langsam sein, wenn Sie versuchen, solche Dinge zu tun. Siehehttps://askubuntu.com/questions/622031/wie-schließe-ich-bestimmte-pakete-von-der-installation-mit-apt-get-aus
Antwort3
DuWirklichsollte keine *-Regexes verwenden, um Dinge zu entfernen – und das weiß ich aus Erfahrung. Die Verwendung von * löscht jedes Paket mit einem Namen, der „iceweasel“ enthält. Wenn Sie iceweasel löschen möchten, entfernen Sie das iceweasel-Paket (ohne Sternchen) und löschen Sie den Inhalt des iceweasel-Ordners. Ich habe keine Ahnung, was das fehlerhafte „iceweasel“-Paket ist, es könnte jede umgekehrte Abhängigkeit von sein hyphen-en-us libfs6 task-desktop x11-apps x11-session-utils x11-xfs-utils xinit xorg
. Irgendeine davon. Ein kurzer Blick und das automatische Entfernen von xorg
/ x11
allein würde 99 % der *Nix-GUIs kaputt machen. Um herauszufinden, welche iceweasel-Pakete Sie gelöscht haben, grep iceweasel /var/log/apt/history.log
suchen Sie "Remove:"
unter dem nach Zeilen, die mit beginnen Commandline: apt-get remove iceweasel*
. Wenn Sie immer noch neugierig sind, posten Sie die Ergebnisse und ich (oder jemand anderes) kann die genauen Abhängigkeitsprobleme herausfinden. :)
Ein Abhängigkeitsproblem wie dieses ist natürlich unlogisch und seine Existenz ist ein Fehler der Leute, die die Metadaten für Ihre .deb-Dateien erstellt haben. Ich würde jedoch das genaue Problem herausfinden, bevor ich einen Fehlerbericht einreiche. Daher meine Antwort oben. :D