Warum macht das Entfernen von Iceweasel GNOME kaputt?

19

Ich habe eine ältere Debian 7-VM zum Testen. Ich versuche, die Größe des VM-Footprints zu reduzieren, weil mir der Speicherplatz knapp wird. Ich wollte Iceweasel entfernen, da ich es nicht wirklich benutze und ich normalerweise damit auskommen kann wget. Als ich Aptes ausführte, sagte es mir, dass es auch GNOME entfernte:

$ 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 macht das Entfernen von Iceweasel GNOME kaputt?


Nachdem Iceweasel entfernt und dann ein autocleanund autoremovePass gemacht wurde, wurde dies präsentiert. Ich bin ziemlich sicher, dass diese VM unbrauchbar gemacht wurde.

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.

quelle
Unter askubuntu.com/questions/5636/… finden Sie Befehle, die Ihnen dabei helfen.
Phk
Danke PHK. Apterzählt mir die Abhängigkeiten. Ich bin interessant zu wissen, warum die Abhängigkeiten existieren. Ich bezweifle aptitude, dass es eine Abhängigkeit gibt.
1
Oh ok, aber wenn es zum Beispiel eine direkte Abhängigkeit von sagen wir mal debian-desktop(ich weiß, das ist Debian und nicht Ubuntu, aber nur aus Gründen der Argumentation) unter anderen Browsern wäre, würde es Ihnen sagen, dass jemand dachte, dass ein Webbrowser für eine unerlässliche Voraussetzung ist grafischer Desktop.
Phk
(und der Trick in diesem Fall ist, dass Sie eine Ebene nach unten gehen und die Abhängigkeiten von task-gnome-desktop auswählen müssen, die Sie tatsächlich möchten, und apt-markdie, die manuell installiert wurden, bevor Sie task-gnome-desktop entfernen). Wenn Sie Debian schon eine Weile verwenden, ist dies möglicherweise überraschend, da Debian diese einzelnen Metapakete ursprünglich nicht verwendet hat, um ihre "Aufgaben" zu implementieren.
Sourcejedi
1
Vielleicht liegt es daran das *? Ich habe meinen Gnom mit apt-get remove wine*vorher zerstört.
Rio 6

Antworten:

23

Wie andere bereits erklärt haben, installieren die Desktop-Metapakete - wie z. B. task-desktopoder gnome-core- heutzutage einen Webbrowser (nun ja, eigentlich ziemlich lange). Sie können davon ausgehen gnome-core, Epiphany zu installieren oder zumindest als Alternative zu Iceweasel zuzulassen, dies ist jedoch aus Sicherheitsgründen nicht der Fall . In der gnome-coreBeschreibung wird die Browserabhängigkeit erwähnt:

Dies sind die Kernkomponenten der GNOME Desktop-Umgebung, einem intuitiven und attraktiven Desktop.

Dieses Metapaket hängt von einer Reihe grundlegender Programme 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 auf Iceweasel ankommt:

  • Es ist so definiert, dass es von einem Webbrowser abhängt.
  • Der einzige vernünftige Browser, auf den der GNOME-Desktop angewiesen ist, ist Iceweasel, da Epiphany nicht genügend Sicherheitsunterstützung bietet und Chromium nicht ordnungsgemäß in den Desktop integriert ist.

Früher gab es eine alternative Abhängigkeit von gnome-www-browser, aber diese wurde 2011 entfernt (ohne Erklärung, soweit ich das beurteilen kann). Es mag sich lohnen, die Betreuer um eine erneute Einführung zu bitten, aber gnome-coreohne einen Browser würde es Ihnen nicht helfen, das Programm zu installieren .

Die Mechanismen, die zum Entfernen von GNOME führen, wenn Sie Iceweasel entfernen, sind relativ einfach. Wenn Sie darum bitten apt-get, etwas zu tun, ist es sehr schwierig, dies zu tun. Wenn Sie also ein Paket entfernen, wird alles entfernt, was davon abhängt (nachdem Sie gefragt wurden). gnome-corehängt davon ab iceweasel, und gnomehängt davon ab gnome-core, so

apt-get remove iceweasel

entfernt auch gnome-coreund gnome.

Durch das Entfernen dieser Metapakete werden alle Pakete, von denen sie abhängig sind, zu Kandidaten für das Entfernen autoremove, da das Verpackungssystem sie nun für unnötig hält (kein Paket, das als nicht automatisch installiert markiert ist, hängt von ihnen ab). Das Paketierungssystem geht davon aus, dass der Benutzer wirklich die Pakete haben möchte, die als explizit installiert markiert sind, und alles andere wird nur zur Unterstützung dieser Pakete installiert. Wenn also etwas entfernt wird gnomeoder wenn gnome-coreSie apt-get autoremovees das nächste Mal ausführen , werden viele der installierten Pakete als unnötig angesehen ...

Es gibt einige Problemumgehungen:

  • Wenn Sie die gnome-coreInstallation ohne Iceweasel beibehalten möchten , verwenden Sie equivsoder apt-holepunch(letzteres ist in diesem Fall viel einfacher, danke Joshua !), um ein gefälschtes iceweaselPaket zu erstellen und dieses zusammen mit zu installieren gnome-core.
  • gehen durch alle Pakete , die gnomeund sind gnome-coreabhängig von, entscheiden , welche von ihnen die Sie verwenden möchten und / oder müssen ( zB gdm3 , gnome-session, nautilus...), und markieren Sie diese mit

    apt-mark manual ...
    

    oder mit aptitudeder GUI (was viel einfacher sein wird).

Auf jeden Fall kann man nicht brechen Ihre VM durch Pakete zu entfernen , wenn Sie wesentliche Pakete beginnen zu entfernen (und apt-getwird laut beschweren lassen , bevor Sie so) oder der Kernel. Möglicherweise müssen Sie sich bei einer Textkonsole anmelden, aber Sie können die Probleme sowohl von dort als auch von einem X-Terminal-Emulator aus beheben.

Stephen Kitt
quelle
Gute Antwort! Ich frage mich nur, worum geht es dann in dem gnome-www-browser"virtuellen" Paket?
Phk
2
@phk Das ist eine ausgezeichnete Frage, die alternative Abhängigkeit von gnome-www-browserwurde im Jahr 2011 entfernt, aber es wird immer noch von Chrom, Epiphany, Iceweasel und Firefox bereitgestellt ... (Und Cinnamon verwendet sie immer noch.)
Stephen Kitt
1
Übrigens hängt hier etwas davon ab, ob ein Paket von der Abhängigkeit ohne Build-Env ausgeschlossen wird: mail-archive.com/[email protected]/msg900702/…
Joshua
Danke Stephen. Ich will keine Haare spalten, aber warum ist es eine Abhängigkeit? In Bezug auf "es ist definiert als abhängig von einem Webbrowser" , kann ich meinen Kopf nicht verstehen, warum die Abhängigkeit besteht. Das ist wirklich meine Frage. Entschuldigung für die Verwirrung.
Außerdem haben Sie Recht mit "... Sie können Ihre VM nicht beschädigen, indem Sie [diese] Pakete entfernen" . Nach einem Neustart bekam ich einen Nicht-GUI-Anmeldebildschirm und konnte SSH in die Box einbinden. Ich bin mit dem Terminal / der Befehlszeile zufrieden, es ist also offensichtlich nicht kaputt oder für mich nutzlos. Andere benötigen jedoch möglicherweise einen Desktop. Ich würde nicht wollen, dass meine Mutter oder mein Vater versuchen, die Maschine zu benutzen.
2

Aufgaben werden zum Zeitpunkt der Installation ausgewählt ( tasksel), und es gibt keine separate Aufgabe für "Webbrowser" ... Theoretisch könnte dies, wie in KDE3-Tagen, desktop-spezifisch sein. Die Leute erwarten, dass der Standard-Desktop einen Webbrowser enthält, wenn nichts anderes hilft, um Hilfe auf ihrem neuen System zu bekommen :). Daher enthält die Desktop-Aufgabe einen Standard-Webbrowser, QED.

Bis auf unsere Frage sind die Kommentare falsch. task-gnome-desktop benötigt kein iceweasel. Es wird nur empfohlen.

(Die am besten bewertete Antwort zeigt an, dass es eine indirekte Beziehung gibt, die dies erfordert. Auf den ersten Blick gibt es möglicherweise Raum für Verbesserungen in dieser Abhängigkeitsstruktur. Ich denke, das Folgende ist jedoch immer noch 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, dass Sie (nach dem Entfernen von iceweasel?) Keine Pakete installiert hatten, die entweder abhängig oder empfohlen waren task-desktop. Es wurde auch nicht als manuell installiert markiert. Also apt-get autoremoveentfernt es natürlich .

Fragezeichen, weil ich in der Debian-Paketdatenbank nicht sehe, von wem iceweasel abhängt oder was es empfiehlt task-desktop. Möglicherweise wurde es bereits automatisch entfernt.

Seien Sie vorsichtig, wenn Sie die automatische Entfernung verwenden. Wenn beim automatischen Entfernen Ihr gesamter Desktop als unnötig eingestuft wird, brechen Sie ihn 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 wünschenwie Eiswieselkönnen Sie versuchen, zu verwenden apt-get install task-gnome-desktop iceweasel-.

Es ist auch möglich, die Markierung empfohlener Abhängigkeiten mithilfe von synaptic(GUI) oder aptitude(TUI) aufzuheben . (Beachten Sie, dass aptitude standardmäßig automatisch entfernt, während synaptic eine Liste nicht mehr benötigter Pakete enthält, die Sie irgendwo finden können.) Leider kann die IME-Synaptik heutzutage ziemlich klobig und verzögert sein, wenn Sie versuchen, solche Dinge zu tun. Siehe /ubuntu/622031/how-do-i-exclude-specific-packages-from-installation-with-apt-get

sourcejedi
quelle
2

Sie sollten wirklich keine * regulären Ausdrücke verwenden, um Dinge zu entfernen - und das weiß ich aus Erfahrung. Mit * wird jedes Paket gelöscht, dessen Name "iceweasel" enthält. Wenn Sie iceweasel löschen möchten, entfernen Sie das iceweasel-Paket (kein Sternchen) und löschen Sie den Inhalt des iceweasel-Ordners. Ich habe keine Ahnung, was das anstößige "iceweasel" -Paket ist, es könnte sich um eine umgekehrte Abhängigkeit handeln hyphen-en-us libfs6 task-desktop x11-apps x11-session-utils x11-xfs-utils xinit xorg. Irgendwelche davon. Ein kurzer Blick und autoremoving xorg/ x11allein würden 99% * Nichts GUIs brechen. Um herauszufinden, welche iceweasel-Pakete Sie gelöscht haben, gehen Sie folgendermaßen vorgrep iceweasel /var/log/apt/history.log und suchen nach Linien , beginnend mit "Remove:"unter der Commandline: apt-get remove iceweasel* Wenn Sie noch neugierig Post die Ergebnisse und ich (oder jemand anderes) können die genauen Abhängigkeitsprobleme herauszufinden. :)

Ein solches Abhängigkeitsproblem ist natürlich unlogisch, und seine Existenz ist ein Fehler der Personen, die die Metadaten für Ihre .debs erstellt haben. Ich würde das genaue Problem herausfinden, bevor ich einen Fehlerbericht einreiche. Daher meine Antwort oben. : D

trudgemank
quelle
Danke trudgemank. Mich interessiert mehr, warum die Abhängigkeit besteht. nicht was die Abhängigkeit ist.
Es sollte nicht existieren. Seine Existenz ist ein Fehler der Leute, die die Metadaten für Ihre .debs erstellt haben, die nicht perfekt sind. Es gibt Konsequenzen, die sie nicht vorhersehen.
trudgemank
Sie müssen ein "iceweasel" -Paket gelöscht haben, das nicht Teil des iceweasel-Metapakets ist. Möglicherweise ist eine standardmäßig installiert.
trudgemank
Trudgemank - Wenn Sie die Frage, die ich in Ihrer Antwort gestellt habe, und nicht die Kommentare beantworten, würde ich die Antwort gerne annehmen. Der Vollständigkeit halber ist hier die Antwort, die ich für richtig halte: "... [es] ist ein Fehler der Leute, die die Metadaten für Ihre .debs erstellt haben" . Tut mir leid, Haare zu teilen; das war wirklich das interesse für mich. Mit den Informationen in der Hand kann ich einen Fehlerbericht einreichen.
Es ist in Ordnung, solange ich geholfen habe, brauche ich keine offizielle Bestätigung. Aber Sie kennen das spezielle Abhängigkeitsproblem nicht. Sie sollten es wirklich tun, wenn Sie einen Fehlerbericht einreichen möchten.
trudgemank