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é 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é la eliminación de Iceweasel destruye GNOME?
Después de eliminar a Iceweasel y luego hacer un autoclean
pase 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-desktop
ognome-core
— instalar un navegador web hoy en día (bueno, desde hace bastante tiempo en realidad). Es posible que espere gnome-core
instalar Epiphany, o al menos permitirlo como alternativa a Iceweasel, perono lo hace por razones de seguridad. La gnome-core
descripció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-core
sin un navegador.
Los mecanismos que llevan a la eliminación de GNOME si eliminas Iceweasel son relativamente sencillos. Cuando le pides apt-get
que 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-core
depende de iceweasel
ygnome
depende de gnome-core
, entonces
apt-get remove iceweasel
también elimina gnome-core
y 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 gnome
o 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-core
instalado sin Iceweasel, utiliceequivs
oapt-holepunch
(este último es mucho más fácil de usar en este caso, graciasJosué!) para crear uniceweasel
paquete falso e instalarlo junto congnome-core
;Revisa todos los paquetes que
gnome
ygnome-core
depende, decide cuál de ellos quieres usar y/o necesitas (p.ejgdm3
,gnome-session
,nautilus
...), y márquelos usandoapt-mark manual ...
o usando
aptitude
la 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-get
se 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 autoremove
lo 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
Tú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
/ x11
por 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