¿Por qué eliminar Iceweasel destruye GNOME?

19

Tengo una máquina virtual Debian 7 más antigua para probar. Estoy tratando de reducir el tamaño de la huella de VM porque estoy casi sin espacio. Quería eliminar Iceweasel ya que realmente no lo uso, y generalmente puedo salir adelante wget. Cuando lo ejecuté Apt, me 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é eliminar Iceweasel destruye GNOME?


Después de la eliminación de Iceweasel y luego hacer una autocleany autoremovepase, esto se presentó. Estoy bastante seguro de que esta VM 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.

fuente
Consulte askubuntu.com/questions/5636/… para ver los comandos que lo ayudarán en eso.
phk
Gracias PHK Aptme dice las dependencias Me interesa saber por qué existen las dependencias. Dudo aptitudeque me diga por qué existe una dependencia.
1
Ah, está bien, pero si, por ejemplo, fuera una dependencia directa de, digamos debian-desktop(sé que esto es Debian y no Ubuntu, solo por el argumento) entre otros navegadores, entonces te diría que alguien pensó que un navegador web es esencial para un Escritorio gráfico.
phk
(y el truco en ese caso, es que tienes que bajar una capa, seleccionar las dependencias de task-gnome-desktop que realmente deseas, y apt-marklas que están instaladas manualmente antes de eliminar task-gnome-desktop). Si ha estado usando debian por un tiempo, es posible que esto sea sorprendente porque debian originalmente no usó estos metapaquetes individuales para implementar sus "tareas".
sourcejedi
1
Tal vez es porque el *? Destruí mi gnomo con apt-get remove wine*antes.
Rio6

Respuestas:

23

Como otros han explicado, los metapaquetes de escritorio, como task-desktopo gnome-core, instalan un navegador web hoy en día (bueno, en realidad durante bastante tiempo). Puede esperar gnome-coreinstalar Epiphany, o al menos permitirlo como una alternativa a Iceweasel, pero no 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 incluyen un administrador de archivos, un visor de imágenes, un navegador web, un reproductor de video y otras herramientas.

Contiene los módulos "básicos" oficiales del escritorio GNOME.

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

  • se define como dependiente de un navegador web;
  • El único navegador sensible 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 gnome-www-browser, pero se eliminó en 2011 (sin explicación, por lo que puedo decir). Puede valer la pena pedirles a los encargados de mantenimiento que lo reintroduzcan, pero no lo ayudaría a instalarlo gnome-coresin un navegador.

Los mecanismos que llevan a la eliminación de GNOME si elimina Iceweasel son relativamente sencillos. Cuando pides apt-gethacer 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 iceweasel, y gnomedepende de gnome-core, entonces

apt-get remove iceweasel

también quita gnome-corey gnome.

Al eliminar estos metapaquetes, todos los paquetes de los que dependen se convierten en candidatos para su eliminación autoremove, ya que el sistema de empaque 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 cualquier otra cosa solo se instala para admitir esos paquetes. Entonces, si algo se 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 alternativas:

  • si desea seguir gnome-coreinstalado sin Iceweasel, use equivso apt-holepunch(este último es mucho más fácil de usar en este caso, ¡gracias Joshua !) para construir un iceweaselpaquete falso e instalarlo junto con gnome-core;
  • ir a través de todos los paquetes que gnomey gnome-coredepende de, decidir cuál de ellos desea utilizar y / o necesidad ( por ejemplo gdm3 , gnome-session, nautilus...), y marcarlos usando

    apt-mark manual ...
    

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

En cualquier caso, no puede romper su VM eliminando paquetes a menos que comience a eliminar paquetes esenciales (y apt-getse quejará en voz alta antes de dejar que lo haga), o el núcleo. Puede terminar teniendo que iniciar sesión en una consola de texto, pero puede arreglar las cosas desde allí tan bien como desde un emulador de terminal X.

Stephen Kitt
fuente
¡Gran respuesta! Me pregunto, ¿de qué se trata el gnome-www-browserpaquete "virtual"?
phk
2
@phk Esa es una excelente pregunta, la dependencia alternativa gnome-www-browserse eliminó en 2011, pero todavía es proporcionada por Chromium, Epiphany, Iceweasel y Firefox ... (Y Cinnamon todavía la usa)
Stephen Kitt,
1
Por cierto, aquí hay algo que hace el trabajo de excluir un paquete de la dependencia sin el build-env depende de equivs: mail-archive.com/[email protected]/msg900702/…
Joshua
Gracias Stephen No quiero dividir los pelos, pero ¿por qué es una dependencia? Con respecto a "se define como dependiente de un navegador web" , no puedo entender por qué existe la dependencia. Esa es realmente mi pregunta. Perdón por la confusion.
Además, tiene razón sobre "... no puede romper su VM eliminando [estos paquetes particulares]" . Después de un reinicio, obtuve una pantalla de inicio de sesión que no es GUI, y pude SSH en la caja. Estoy contento con la Terminal / Línea de Comando, por lo que claramente no está rota o es inútil para mí. Otros pueden necesitar un escritorio, sin embargo. No quisiera que mi madre o mi padre intentaran usar la máquina.
2

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, por lo menos para obtener ayuda en su nuevo sistema :). Por lo tanto, la tarea de escritorio incluye un navegador web predeterminado, QED.

Excepto que nuestra pregunta los comentarios están equivocados task-gnome-desktop no requiere iceweasel. Solo lo recomienda.

(La respuesta más votada indica que hay una relación indirecta que lo requiere. A primera vista, puede haber margen de mejora en esta estructura de dependencia. Sin embargo, creo que 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 que (¿después de quitar iceweasel?) No tenía instalados paquetes que dependían o recomendaban task-desktop. Tampoco se marcó como instalado manualmente. Entonces, por supuesto, lo apt-get autoremoveelimina.

Signo de interrogación porque al mirar la base de datos del paquete Debian, no veo cómo iceweasel depende o recomienda task-desktop. Es posible que ya haya sido extraíble automáticamente.

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

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

También es posible desmarcar las dependencias recomendadas usando 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 que pueda encontrar en alguna parte). Lamentablemente, el sináptico IME puede ser bastante torpe y lento hoy en día si intentas hacer este tipo de cosas. Ver /ubuntu/622031/how-do-i-exclude-specific-packages-from-installation-with-apt-get

sourcejedi
fuente
2

Usted realmente no debe usar expresiones regulares * para eliminar cosas-- y 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 ofensivo "iceweasel", podría ser una dependencia inversa de hyphen-en-us libfs6 task-desktop x11-apps x11-session-utils x11-xfs-utils xinit xorg. Cualquiera de esos. Un vistazo rápido y auto xorg- movimiento / x11solo rompería el 99% de * Nix GUIs. Para averiguar qué paquetes de iceweasel eliminó, grep iceweasel /var/log/apt/history.logbusque líneas que comiencen "Remove:"debajo de Commandline: apt-get remove iceweasel* Si aún tiene curiosidad, publique los resultados y yo (u otra persona) puedo 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's. Sin embargo, resolvería el problema exacto antes de presentar un informe de error. De ahí mi respuesta anterior. :RE

trudgemank
fuente
Gracias Trudgemank. Estoy más interesado en por qué existe la dependencia; no cuál es la dependencia.
No debería existir. Su existencia es un error por parte de las personas que crearon los metadatos para sus .deb, que no son perfectos. Hay consecuencias que no prevén.
trudgemank
Debe haber eliminado un paquete "iceweasel" que no forma parte del metapaquete iceweasel. Posiblemente uno instalado por defecto.
trudgemank
Trudgemank: si responde la pregunta que hice en su respuesta en lugar de los comentarios, me complacería aceptar la respuesta. Para completar, aquí está la respuesta que creo que es correcta: "... [es] un error por parte de las personas que hicieron los metadatos para sus .deb's" . Perdón por partir los pelos; eso realmente fue lo que me interesaba. Con la información en la mano, puedo presentar un informe de error.
Está bien, mientras ayude no necesito una afirmación oficial. Pero no tiene el problema de dependencia particular, realmente debería hacerlo si desea presentar un informe de error.
trudgemank