Por que remover o Iceweasel nuke GNOME?

19

Eu tenho um Debian 7 VM mais antigo para testes. Estou tentando reduzir o tamanho da área de cobertura da VM porque estou quase sem espaço. Eu queria remover o Iceweasel, já que eu realmente não o uso, e geralmente consigo passar com wget . Quando eu corri o Apt ele me disse que estava removendo o GNOME também:

$ 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 remover o Iceweasel nuke GNOME?

Depois de remover o Iceweasel e, em seguida, fazer uma autoclean e autoremove pass, isso foi apresentado. Tenho certeza de que essa VM foi inutilizada.

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.
    
por jww 30.10.2016 / 08:26

3 respostas

23

Como outros explicaram, os meta-pacotes da área de trabalho - como task-desktop ou gnome-core - instalar um navegador da web hoje em dia (bem, por um longo tempo, na verdade). Você pode esperar que o gnome-core instale o Epiphany, ou pelo menos permita-o como uma alternativa ao Iceweasel, mas ele não o faz por razões de segurança . A descrição de gnome-core menciona a dependência do navegador:

These are the core components of the GNOME Desktop environment, an intuitive and attractive desktop.

This meta-package depends on a basic set of programs, including a file manager, an image viewer, a web browser, a video player and other tools.

It contains the official “core” modules of the GNOME desktop.

Portanto, as razões que dependem do Iceweasel são duas:

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

Costumava haver uma dependência alternativa em gnome-www-browser , mas isso era removido em 2011 (sem explicação, tanto quanto eu posso dizer). Pode valer a pena pedir aos mantenedores que o reintroduza, mas isso não ajudaria a instalar o gnome-core sem um navegador.

Os mecanismos que levam o GNOME a ser removido se você remover o Iceweasel são relativamente diretos. Quando você pergunta ao apt-get para fazer algo, ele tenta muito fazê-lo - então remover um pacote remove qualquer coisa que dependa dele (depois de perguntar). gnome-core depende de iceweasel e gnome depende de gnome-core , então

apt-get remove iceweasel

também remove gnome-core e 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 os considera desnecessários (nenhum pacote marcado como não instalado automaticamente depende deles). O sistema de empacotamento considera que o usuário realmente quer os pacotes marcados como explicitamente instalados, e qualquer outra coisa só é instalada para suportar esses pacotes. Então, se alguma coisa remover gnome ou gnome-core , na próxima vez que você executar apt-get autoremove , ele considerará que muitos dos pacotes instalados são desnecessários ...

Existem algumas soluções alternativas:

  • se você quiser manter gnome-core instalado sem o Iceweasel, use equivs ou apt-holepunch (o último é muito mais fácil de usar neste caso, obrigado Joshua !) para criar um pacote iceweasel falso e instalá-lo junto com gnome-core ;
  • veja todos os pacotes que gnome e gnome-core depende de qual deles você deseja usar e / ou precisa (por exemplo, gdm3 , gnome-session , nautilus ...) e marque-os usando

    apt-mark manual ...
    

    ou usando a GUI de aptitude (que será muito mais fácil).

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

    
por 30.10.2016 / 12:00
2

As tarefas são selecionadas no momento da instalação ( tasksel ), e não há uma tarefa separada para "navegador da Web" ... Em teoria, pode ser específico da área de trabalho, como nos dias do KDE3. As pessoas esperam que a área de trabalho padrão inclua um navegador da Web, se não houver mais nada para obter ajuda em seu novo sistema :). Portanto, a tarefa da área de trabalho inclui um navegador da Web padrão, o QED.

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

(A resposta mais votada indica que existe uma relação indireta que exige . Em face disso, pode haver espaço para melhorias nessa estrutura de dependência.

em> o seguinte ainda é válido no entanto.)

Você perdeu algo muito importante.

The following packages were automatically installed and are no longer required: hyphen-en-us libfs6 task-desktop

Acontece que (depois de remover o iceweasel?) você não tinha nenhum pacote instalado que dependesse ou recomendasse task-desktop . Também não foi marcado como instalado manualmente. Então é claro que apt-get autoremove remove isso.

Ponto de interrogação porque olhando para o banco de dados do pacote Debian, não vejo como o iceweasel depende ou recomenda task-desktop . Pode já ter sido auto-removível.

Tome cuidado ao usar a remoção automática. Se a remoção automática disser 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 efetuar login no console e executar apt-get install task-gnome-desktop . Se você não quiser um pacote recomendado como o iceweasel , você pode tentar usar apt-get install task-gnome-desktop iceweasel- .

Também é possível desmarcar as dependências recomendadas usando synaptic (GUI) ou aptitude (TUI). (Note que o aptitude remove automaticamente por padrão, enquanto o synaptic tem uma lista de pacotes desnecessários que você pode encontrar em algum lugar). Infelizmente, a sináptica do IME pode ser muito desajeitada e lenta hoje em dia se você tentar fazer esse tipo de coisa. Veja link

    
por 30.10.2016 / 10:29
2

Você realmente não deve usar * regexes para remover coisas - e eu sei disso por experiência. Usar * exclui todos os pacotes com um nome que contenha "iceweasel". Se você deseja excluir o iceweasel, remova o pacote iceweasel (sem asterisco) e exclua o conteúdo da pasta iceweasel. Eu não tenho idéia do que é o pacote ofensivo "iceweasel", pode ser qualquer dependência reversa de hyphen-en-us libfs6 task-desktop x11-apps x11-session-utils x11-xfs-utils xinit xorg . Qualquer um desses. Uma rápida olhada e o autoremoving xorg / x11 sozinho quebrariam 99% das GUIs * Nix. Para descobrir quais pacotes de iceweasel você excluiu, faça grep iceweasel /var/log/apt/history.log e procure as linhas que começam com "Remove:" sob Commandline: apt-get remove iceweasel*  Se você ainda estiver curioso, poste os resultados e eu (ou outra pessoa) possa descobrir os problemas exatos de dependência. :)

A dependency issue like this is illogical of course and its existence is a mistake on the part of the people who made the metadata for your .deb's. I would figure out the exact problem before filing a bug report though. Hence my answer above. :D

    
por 30.10.2016 / 10:57