Por que a remoção do Iceweasel destrói o GNOME?

Por que a remoção do Iceweasel destrói o GNOME?

Eu tenho uma VM Debian 7 mais antiga para teste. Estou tentando reduzir o tamanho da área ocupada pela VM porque estou sem espaço. Eu queria remover o Iceweasel porque realmente não o uso e geralmente consigo sobreviver com o wget. Quando executei, Aptele me disse que também estava removendo o 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 que a remoção do Iceweasel destrói o GNOME?


Depois de remover o Iceweasel e fazer um autocleanpasse autoremove, isso foi apresentado. Tenho quase certeza de que esta VM se tornou 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.

Responder1

Como outros explicaram, os meta-pacotes de desktop — como task-desktopougnome-core- instale um navegador da web hoje em dia (bem, há muito tempo, na verdade). Você pode esperar gnome-coreinstalar o Epiphany, ou pelo menos permitir que ele seja uma alternativa ao Iceweasel, masisso não acontece por razões de segurança. A gnome-coredescrição menciona a dependência do navegador:

Estes são os componentes principais do ambiente GNOME Desktop, um desktop intuitivo e atraente.

Este meta-pacote depende de um conjunto básico de programas, incluindo um gerenciador de arquivos, um visualizador de imagens, um navegador web, um reprodutor de vídeo e outras ferramentas.

Ele contém os módulos “principais” oficiais da área de trabalho GNOME.

Portanto, as razões pelas quais depende do Iceweasel são duas:

  • é definido como dependendo de um navegador da web;
  • o único navegador sensato em que se pode confiar para a área de trabalho GNOME é o Iceweasel, porque o Epiphany não tem suporte de segurança suficiente e o Chromium não se integra corretamente à área de trabalho.

Costumava haver uma dependência alternativa de gnome-www-browser, mas isso eraremovido em 2011(sem explicação, até onde eu sei). Pode valer a pena pedir aos mantenedores para reintroduzi-lo, mas não ajudaria na instalação gnome-coresem um navegador.

Os mecanismos que levam à remoção do GNOME se você remover o Iceweasel são relativamente simples. Quando você pede apt-getpara fazer algo, ele se esforça muito para fazê-lo - então remover um pacote remove qualquer coisa que dependa dele (depois de perguntar a você).gnome-coredepende de iceweasel, egnomedepende gnome-core, então

apt-get remove iceweasel

também remove gnome-coree gnome.

A remoção desses meta-pacotes faz com que todos os pacotes dos quais eles dependem se tornem candidatos à remoção usando autoremove, já que o sistema de empacotamento agora os considera desnecessários (nenhum pacote marcado como não instalado automaticamente depende deles). O sistema de empacotamento considera que o usuário realmente deseja os pacotes marcados como explicitamente instalados, e qualquer outra coisa é instalada apenas para suportar esses pacotes. Portanto, se alguma coisa remover gnomeou gnome-core, na próxima vez que você executar apt-get autoremove, considerará que muitos dos pacotes instalados são desnecessários...

Existem algumas soluções alternativas:

  • se você quiser continuar gnome-coreinstalado sem o Iceweasel, useequivsouapt-holepunch(este último é muito mais fácil de usar neste caso, obrigadoJoshua!) para construir um iceweaselpacote falso e instalá-lo junto com gnome-core;

  • passar por todos os pacotes quegnomeegnome-coredepende, decida qual deles você deseja usar e/ou precisa (por exemplo gdm3, gnome-session, nautilus...) e marque-os usando

      apt-mark manual ...
    

    ou usando aptitudea GUI do (que será muito mais fácil).

Em qualquer caso você não podequebrarsua VM removendo pacotes, a menos que você comece a remover pacotes essenciais (e apt-getreclamará em voz alta antes de permitir isso), ou o kernel. Você pode acabar tendo que fazer login em um console de texto, mas pode consertar as coisas a partir daí, tão bem quanto em um emulador de terminal X.

Responder2

As tarefas são selecionadas no momento da instalação ( tasksel), e não há uma tarefa separada para o "navegador da web"... Em teoria, poderia ser específico do desktop, como na época do KDE3. As pessoas esperam que a área de trabalho padrão inclua um navegador da web, pelo menos para obter ajuda em seu novo sistema :). Portanto, a tarefa da área de trabalho inclui um navegador da web padrão, QED.

Exceto que nossos comentários de perguntas estão errados. task-gnome-desktop não requer iceweasel. Apenas recomenda.

(A resposta mais votada indica que há uma relação indireta quefazexija isso. À primeira vista, poderá haver espaço para melhorias nesta estrutura de dependência. EUpensaro seguinte ainda é válido.)

Você perdeu algo muito importante.

Os seguintes pacotes foram instalados automaticamente e não são mais necessários: hyphen-en-us libfs6 task-desktop

Acontece que (depois de remover o iceweasel?) você não tinha nenhum pacote instalado que dependesse ou fosse recomendado task-desktop. Nem foi marcado como instalado manualmente. Então, é claro, apt-get autoremoveremove-o.

Ponto de interrogação porque olhando para o banco de dados de pacotes Debian, não vejo como o iceweasel depende ou recomenda task-desktop. Talvez já tenha sido removível automaticamente.

Tome cuidado ao usar a remoção automática. Se a remoção automática indicar que toda a sua área de trabalho é considerada desnecessária, cancele-a e marque sua área de trabalho como instalada manualmente ( apt-mark).

VM não é inútil; você pode fazer login no console e executar o apt-get install task-gnome-desktop. Se você não quiser um pacote recomendadocomo a doninha do gelo, você pode tentar usar apt-get install task-gnome-desktop iceweasel-.

Também é possível desmarcar dependências recomendadas usando synaptic(GUI) ou aptitude(TUI). (Observe que o aptitude é removido automaticamente por padrão, enquanto o synaptic possui uma lista de pacotes não mais necessários que você pode encontrar em algum lugar). Infelizmente, o sináptico IME pode ser bastante desajeitado e lento hoje em dia se você tentar fazer esse tipo de coisa. Verhttps://askubuntu.com/questions/622031/how-do-i-exclude-specific-packages-from-installation-with-apt-get

Responder3

Vocêrealmentenão deveria usar * regexes para remover coisas - e eu sei disso por experiência própria. Usar * exclui todos os pacotes com um nome contendo "iceweasel". Se você deseja excluir o iceweasel, remova o pacote iceweasel (sem asterisco) e exclua o conteúdo da pasta iceweasel. Não tenho ideia do que é o pacote "iceweasel" ofensivo, pode ser qualquer dependência reversa do hyphen-en-us libfs6 task-desktop x11-apps x11-session-utils x11-xfs-utils xinit xorg. Qualquer um desses. Uma rápida olhada e remoção automática xorg/ x11sozinha quebrariam 99% das GUIs *Nix. Para descobrir o que os pacotes iceweasel que você excluiu fazem grep iceweasel /var/log/apt/history.loge procure as linhas que começam com "Remove:"abaixo de Commandline: apt-get remove iceweasel* Se você ainda estiver curioso, poste os resultados e eu (ou outra pessoa) poderemos descobrir os problemas exatos de dependência. :)

Uma questão de dependência como essa é ilógica, é claro, e sua existência é um erro por parte das pessoas que criaram os metadados para seus .deb's. Eu descobriria o problema exato antes de preencher um relatório de bug. Daí minha resposta acima. :D

informação relacionada