Pourquoi la suppression de Iceweasel Nuke GNOME?

19

J'ai une ancienne machine virtuelle Debian 7 pour les tests. J'essaie de réduire la taille de l'encombrement des VM parce que je manque d'espace. Je voulais supprimer Iceweasel car je ne l'utilise pas vraiment et je peux généralement m'en tirer wget. Quand j'ai couru, Aptil m'a dit qu'il supprimait aussi 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.
...

Pourquoi la suppression de Iceweasel Nuke GNOME?


Après avoir retiré Iceweasel, puis faire une autocleanet autoremovepasse, cela a été présenté. Je suis assez certain que cette machine virtuelle a été rendue inutile.

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.

la source
Voir askubuntu.com/questions/5636/… pour les commandes pour vous aider à ce sujet.
phk
Merci PHK. Aptme dit les dépendances. Je suis intéressant de savoir pourquoi les dépendances existent. Je doute aptitudeme dira pourquoi une dépendance existe.
1
Oh OK, mais si par exemple c'était une dépendance directe de disons debian-desktop(je sais que c'est Debian et non Ubuntu mais juste pour les besoins de l'argument) parmi d'autres navigateurs, alors cela vous dirait que quelqu'un pensait qu'un navigateur Web est essentiel pour un bureau graphique.
phk
(et l'astuce dans ce cas, c'est de descendre d'une couche, de sélectionner les dépendances de task-gnome-desktop que vous voulez réellement et apt-markcelles installées manuellement avant de supprimer task-gnome-desktop). Si vous utilisez debian depuis un certain temps, il est possible que cela soit surprenant car debian n'utilisait pas à l'origine ces métapaquets uniques pour implémenter leurs "tâches".
sourcejedi
1
C'est peut-être parce que le *? J'ai détruit mon gnome avec apt-get remove wine*avant.
Rio6

Réponses:

23

Comme d'autres l'ont expliqué, les méta-packages de bureau - tels que task-desktopor gnome-core- installent un navigateur Web de nos jours (enfin, depuis assez longtemps en fait). Vous pouvez vous attendre gnome-coreà installer Epiphany, ou au moins à l'autoriser comme alternative à Iceweasel, mais ce n'est pas le cas pour des raisons de sécurité . La gnome-coredescription mentionne la dépendance du navigateur:

Ce sont les composants principaux de l'environnement de bureau GNOME, un bureau intuitif et attrayant.

Ce méta-package dépend d'un ensemble de programmes de base, y compris un gestionnaire de fichiers, une visionneuse d'images, un navigateur Web, un lecteur vidéo et d'autres outils.

Il contient les modules «principaux» officiels du bureau GNOME.

Les raisons pour lesquelles cela dépend de Iceweasel sont donc doubles:

  • il est défini comme dépendant d'un navigateur Web;
  • Iceweasel est le seul navigateur intelligent sur lequel compter pour le bureau GNOME, car Epiphany ne dispose pas d'un support de sécurité suffisant et Chromium ne s'intègre pas correctement au bureau.

Il y avait autrefois une dépendance alternative gnome-www-browser, mais elle a été supprimée en 2011 (sans explication pour autant que je sache). Il peut être utile de demander aux responsables de le réintroduire, mais cela ne vous aiderait pas à installer gnome-coresans navigateur.

Les mécanismes qui conduisent à la suppression de GNOME si vous supprimez Iceweasel sont relativement simples. Lorsque vous demandez apt-getà faire quelque chose, il essaie vraiment de le faire - donc la suppression d'un paquet supprime tout ce qui en dépend (après vous avoir demandé). gnome-coredépend iceweasel, et gnomedépend gnome-core, donc

apt-get remove iceweasel

supprime également gnome-coreet gnome.

La suppression de ces méta-packages fait que tous les packages dont ils dépendent deviennent candidats à la suppression autoremove, car le système de packaging les considère désormais comme inutiles (aucun package marqué comme non installé automatiquement n'en dépend). Le système de conditionnement considère que l'utilisateur souhaite vraiment les packages qui sont marqués comme installés explicitement, et tout le reste n'est installé que pour prendre en charge ces packages. Donc, si quelque chose est supprimé gnomeou gnome-core, la prochaine fois que vous exécutez apt-get autoremove, il considérera que la plupart des packages installés sont inutiles ...

Il existe quelques solutions:

  • si vous voulez continuer à gnome-coreinstaller sans Iceweasel, utilisez equivsou apt-holepunch(ce dernier est beaucoup plus facile à utiliser dans ce cas, merci Joshua !) pour construire un faux iceweaselpaquet et l'installer avec gnome-core;
  • passer par tous les packages gnomeet gnome-coredépendent, décider lequel d'entre eux vous souhaitez utiliser et / ou besoin ( par exemple gdm3 , gnome-session, nautilus...), et les marquer à l' aide

    apt-mark manual ...
    

    ou en utilisant aptitudel'interface graphique de (ce qui sera beaucoup plus facile).

Dans tous les cas, vous ne pouvez pas casser votre machine virtuelle en supprimant les packages, sauf si vous commencez à supprimer les packages essentiels (et apt-getvous vous plaindrez bruyamment avant de vous laisser le faire), ou le noyau. Il se peut que vous deviez vous connecter à une console texte, mais vous pouvez y remédier aussi bien qu'à partir d'un émulateur de terminal X.

Stephen Kitt
la source
Très bonne réponse! Je me demande simplement à quoi sert le gnome-www-browserpackage "virtuel"?
phk
2
@phk C'est une excellente question, la dépendance alternative a gnome-www-browserété supprimée en 2011 mais elle est toujours fournie par Chromium, Epiphany, Iceweasel et Firefox ... (Et Cinnamon l'utilise toujours.)
Stephen Kitt
Merci Stephen. Je ne veux pas séparer les cheveux, mais pourquoi est-ce une dépendance? En ce qui concerne "il est défini comme dépendant d'un navigateur Web" , je ne peux pas comprendre pourquoi la dépendance existe. C'est vraiment ma question. Désolé pour la confusion.
En outre, vous avez raison sur "... vous ne pouvez pas casser votre machine virtuelle en supprimant [ces] paquets en particulier" . Après un redémarrage, j'ai obtenu un écran de connexion non-GUI, et j'ai pu SSH dans la boîte. Je suis satisfait du terminal / de la ligne de commande, donc ce n'est clairement pas cassé ou inutile pour moi. Cependant, d'autres peuvent avoir besoin d'un bureau. Je ne voudrais pas que ma mère ou mon père essaie d'utiliser la machine.
2

Les tâches sont sélectionnées au moment de l'installation ( tasksel), et il n'y a pas de tâche distincte pour le "navigateur Web" ... En théorie, cela pourrait être spécifique au bureau, comme dans KDE3 jours. Les gens s'attendent à ce que le bureau par défaut inclue un navigateur Web, si rien d'autre pour obtenir de l'aide sur leur nouveau système :). Par conséquent, la tâche de bureau comprend un navigateur Web par défaut, QED.

Sauf que nos commentaires sur les questions sont faux. task-gnome-desktop ne nécessite pas de iceweasel. Il ne fait que le recommander.

(La réponse la plus upvoted indique qu'il ya une relation indirecte qui ne l' exige. Sur la face de celui - ci, il peut y avoir place à l' amélioration dans cette structure de dépendance. Je pense cependant ce qui suit est toujours valide.)

Vous avez raté quelque chose de très important.

Les packages suivants ont été installés automatiquement et ne sont plus nécessaires: hyphen-en-us libfs6 task-desktop

Il s'avère (après avoir enlevé iceweasel?) Que vous n'aviez installé aucun paquet qui dépendait ou était recommandé task-desktop. Il n'était pas non plus marqué comme installé manuellement. Alors bien sûr, le apt-get autoremovesupprime.

Point d'interrogation parce qu'en regardant la base de données des paquets Debian, je ne vois pas en quoi iceweasel dépend ou recommande task-desktop. Il était peut-être déjà amovible automatiquement.

Faites attention lorsque vous utilisez la suppression automatique. Si la suppression automatique indique que votre bureau entier est considéré comme inutile, annulez-le et marquez votre bureau comme installé manuellement ( apt-mark).

La VM n'est pas inutile; vous pouvez vous connecter à la console et exécuter apt-get install task-gnome-desktop. Si vous ne voulez pas de forfait recommandécomme la belette, vous pouvez essayer d'utiliser apt-get install task-gnome-desktop iceweasel-.

Il est également possible de décocher les dépendances recommandées à l'aide de synaptic(GUI) ou aptitude(TUI). (Notez que aptitude supprime automatiquement par défaut, alors que synaptic a une liste de paquets dont vous n'avez plus besoin que vous pouvez trouver quelque part). Malheureusement, le synaptique IME peut être assez maladroit et décalé de nos jours si vous essayez de faire ce genre de choses. Voir /ubuntu/622031/how-do-i-exclude-specific-packages-from-installation-with-apt-get

sourcejedi
la source
2

Vous ne devriez vraiment pas utiliser * d'expressions régulières pour supprimer des choses - et je le sais par expérience. L'utilisation de * supprime tous les packages dont le nom contient "iceweasel". Si vous souhaitez supprimer iceweasel, supprimez le paquet iceweasel (pas d'astérisque) et supprimez le contenu du dossier iceweasel. Je n'ai aucune idée de ce qu'est le paquet "iceweasel" incriminé, il pourrait s'agir d'une dépendance inverse de hyphen-en-us libfs6 task-desktop x11-apps x11-session-utils x11-xfs-utils xinit xorg. N'importe lequel. Un coup d'œil rapide et le retrait automatique xorg/ x11seul briseraient 99% des interfaces graphiques * Nix. Pour savoir quels paquets iceweasel vous avez supprimés grep iceweasel /var/log/apt/history.loget recherchez les lignes commençant par "Remove:"sous Commandline: apt-get remove iceweasel* Si vous êtes toujours curieux de publier les résultats et moi (ou quelqu'un d'autre) je peux comprendre les problèmes de dépendance exacts. :)

Un problème de dépendance comme celui-ci est bien sûr illogique et son existence est une erreur de la part des personnes qui ont créé les métadonnées pour vos fichiers .deb. Je devrais comprendre le problème exact avant de déposer un rapport de bogue. D'où ma réponse ci-dessus. :RÉ

trudgemank
la source
Merci trudgemank. Je suis plus intéressé par la raison pour laquelle la dépendance existe; pas ce qu'est la dépendance.
Cela ne devrait pas exister. Son existence est une erreur de la part des personnes qui ont créé les métadonnées de vos fichiers .deb, qui ne sont pas parfaites. Il y a des conséquences qu'ils ne prévoient pas.
trudgemank
Vous devez avoir supprimé un package "iceweasel" qui ne fait pas partie du métapaquet iceweasel. Peut-être un installé par défaut.
trudgemank
Trudgemank - Si vous répondez à la question que j'ai posée dans votre réponse plutôt qu'aux commentaires, je serais heureux d'accepter la réponse. Pour être complet, voici la réponse que je pense être correcte: "... [c'est] une erreur de la part des personnes qui ont fait les métadonnées pour vos .deb" . Désolé de couper les poils; c'était vraiment le sujet qui m'intéressait. Avec les informations en main, je peux aller déposer un rapport de bug.
Ça va, tant que j'ai aidé, je n'ai pas besoin d'une affirmation officielle. Mais vous n'avez pas le problème de dépendance particulier, vous devriez vraiment le faire si vous souhaitez déposer un rapport de bogue.
trudgemank