¿Por qué la eliminación de Iceweasel destruye GNOME?

¿Por qué la eliminación de Iceweasel destruye GNOME?

Tengo una máquina virtual Debian 7 anterior para realizar pruebas. Estoy intentando reducir el tamaño de la huella de la máquina virtual porque me estoy quedando sin espacio. Quería eliminar Iceweasel porque realmente no lo uso y normalmente puedo arreglármelas con wget. Cuando lo ejecuté Aptme dijo que también estaba eliminando GNOME:

$ 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.
...

¿Por qué la eliminación de Iceweasel destruye GNOME?


Después de eliminar a Iceweasel y luego hacer un autocleanpase autoremove, se presentó esto. Estoy bastante seguro de que esta máquina virtual se ha vuelto inútil.

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.

Respuesta1

Como otros han explicado, los metapaquetes de escritorio, como task-desktopognome-core— instalar un navegador web hoy en día (bueno, desde hace bastante tiempo en realidad). Es posible que espere gnome-coreinstalar Epiphany, o al menos permitirlo como alternativa a Iceweasel, perono lo hace por razones de seguridad. La gnome-coredescripción menciona la dependencia del navegador:

Estos son los componentes centrales del entorno de escritorio GNOME, un escritorio intuitivo y atractivo.

Este metapaquete depende de un conjunto básico de programas, que incluye un administrador de archivos, un visor de imágenes, un navegador web, un reproductor de video y otras herramientas.

Contiene los módulos "principales" oficiales del escritorio GNOME.

Entonces, las razones por las que depende de Iceweasel son dos:

  • se define como dependiendo de un navegador web;
  • El único navegador sensato del que depender para el escritorio GNOME es Iceweasel, porque Epiphany no tiene suficiente soporte de seguridad y Chromium no se integra correctamente en el escritorio.

Solía ​​haber una dependencia alternativa de gnome-www-browser, pero esa eraeliminado en 2011(sin explicación hasta donde yo sé). Puede que valga la pena pedirle a los encargados de mantenimiento que lo vuelvan a introducir, pero no le ayudaría a instalarlo gnome-coresin un navegador.

Los mecanismos que llevan a la eliminación de GNOME si eliminas Iceweasel son relativamente sencillos. Cuando le pides apt-getque haga algo, se esfuerza mucho por hacerlo, por lo que eliminar un paquete elimina todo lo que depende de él (después de pedírtelo).gnome-coredepende de iceweaselygnomedepende de gnome-core, entonces

apt-get remove iceweasel

también elimina gnome-corey gnome.

La eliminación de estos metapaquetes hace que todos los paquetes de los que dependen se conviertan en candidatos para eliminarse mediante autoremove, ya que el sistema de empaquetado ahora los considera innecesarios (ningún paquete marcado como no instalado automáticamente depende de ellos). El sistema de empaquetado considera que el usuario realmente quiere aquellos paquetes que están marcados como instalados explícitamente, y todo lo demás sólo se instala para admitir esos paquetes. Entonces, si algo elimina gnomeo gnome-core, la próxima vez que ejecute apt-get autoremove, considerará que muchos de los paquetes instalados son innecesarios...

Hay un par de soluciones:

  • Si desea seguir gnome-coreinstalado sin Iceweasel, utiliceequivsoapt-holepunch(este último es mucho más fácil de usar en este caso, graciasJosué!) para crear un iceweaselpaquete falso e instalarlo junto con gnome-core;

  • Revisa todos los paquetes quegnomeygnome-coredepende, decide cuál de ellos quieres usar y/o necesitas (p.ej gdm3, gnome-session, nautilus...), y márquelos usando

      apt-mark manual ...
    

    o usando aptitudela GUI de (que será mucho más fácil).

En cualquier caso no puedesrompersu VM eliminando paquetes a menos que comience a eliminar paquetes esenciales (y apt-getse quejará en voz alta antes de permitirle hacerlo), o el kernel. Es posible que termines teniendo que iniciar sesión en una consola de texto, pero puedes arreglar las cosas desde allí tan bien como desde un emulador de terminal X.

Respuesta2

Las tareas se seleccionan en el momento de la instalación ( tasksel), y no hay una tarea separada para el "navegador web"... En teoría, podría ser específica del escritorio, como en los días de KDE3. La gente espera que el escritorio predeterminado incluya un navegador web, al menos para obtener ayuda en su nuevo sistema :). Por lo tanto, la tarea de escritorio incluye un navegador web predeterminado, QED.

Excepto que nuestros comentarios de preguntas son incorrectos. task-gnome-desktop no requiere iceweasel. Sólo lo recomienda.

(La respuesta más votada indica que hay una relación indirecta quehacerequerirlo. A primera vista, es posible que haya margen de mejora en esta estructura de dependencia. IpensarSin embargo, lo siguiente sigue siendo válido).

Te perdiste algo muy importante.

Los siguientes paquetes se instalaron automáticamente y ya no son necesarios: hyphen-en-us libfs6 task-desktop

Resulta (¿después de eliminar iceweasel?) que no tenías ningún paquete instalado que dependiera o recomendara task-desktop. Tampoco se marcó como instalado manualmente. Así que por supuesto apt-get autoremovelo elimina.

Signo de interrogación porque mirando la base de datos de paquetes de Debian, no veo cómo iceweasel depende o recomienda task-desktop. Es posible que ya se haya eliminado automáticamente.

Tenga cuidado al utilizar la eliminación automática. Si la eliminación automática dice que todo su escritorio se considera innecesario, cancélelo y márquelo como instalado manualmente ( apt-mark).

VM no es inútil; Puedes iniciar sesión en la consola y ejecutar apt-get install task-gnome-desktop. Si no quieres un paquete recomendadocomo comadreja de hielo, puedes intentar usar apt-get install task-gnome-desktop iceweasel-.

También es posible desmarcar las dependencias recomendadas mediante synaptic(GUI) o aptitude(TUI). (Tenga en cuenta que aptitude se elimina automáticamente de forma predeterminada, mientras que synaptic tiene una lista de paquetes que ya no necesita y que puede encontrar en alguna parte). Lamentablemente, IME synaptic puede ser bastante torpe y lento hoy en día si intentas hacer este tipo de cosas. Verhttps://askubuntu.com/questions/622031/cómo-excluir-paquetes-específicos-de-la-instalación-con-apt-get

Respuesta3

en realidadNo debería usar * expresiones regulares para eliminar cosas, y lo sé por experiencia. El uso de * elimina todos los paquetes con un nombre que contenga "iceweasel". Si desea eliminar iceweasel, elimine el paquete iceweasel (sin asterisco) y elimine el contenido de la carpeta iceweasel. No tengo idea de cuál es el paquete "iceweasel" ofensivo, podría ser cualquier dependencia inversa de hyphen-en-us libfs6 task-desktop x11-apps x11-session-utils x11-xfs-utils xinit xorg. Cualquiera de esos. Una mirada rápida y la eliminación automática xorg/ x11por sí sola romperían el 99% de las GUI de *Nix. Para saber qué hacen los paquetes iceweasel que eliminaste grep iceweasel /var/log/apt/history.log, busca líneas que comiencen con "Remove:"debajo de Commandline: apt-get remove iceweasel* Si todavía tienes curiosidad, publica los resultados y yo (u otra persona) podremos descubrir los problemas de dependencia exactos. :)

Un problema de dependencia como este es ilógico, por supuesto, y su existencia es un error por parte de las personas que crearon los metadatos para sus .deb. Sin embargo, descubriría el problema exacto antes de presentar un informe de error. De ahí mi respuesta anterior. :D

información relacionada