Por que remover o Iceweasel nuke GNOME?

19

Eu tenho uma VM Debian 7 mais antiga para teste. Estou tentando reduzir o tamanho da área ocupada da VM porque estou sem espaço. Eu queria remover o Iceweasel, porque eu realmente não o uso, e geralmente consigo sair com isso wget. Quando executei, Aptele 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 um autocleane autoremovepassar, isso foi apresentado. Estou bastante certo de que esta VM foi 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.

fonte
Veja askubuntu.com/questions/5636/… para obter comandos para ajudá-lo nisso.
Php #
Obrigado PHK. Aptme diz as dependências. Eu sou interessante em saber por que as dependências existem. Duvido aptitudeque me diga por que existe uma dependência.
1
Ah, ok, mas se, por exemplo, fosse uma dependência direta, digamos debian-desktop(eu sei que isso é Debian e não o Ubuntu, mas apenas por uma questão de argumento) entre outros navegadores, isso diria que alguém pensou que um navegador da web é essencial para um área de trabalho gráfica.
Phk # 30/16
(e o truque, nesse caso, é que você precisa descer uma camada, selecionar as dependências do task-gnome-desktop que você realmente deseja e apt-markaquelas instaladas manualmente antes de remover o task-gnome-desktop). Se você usa o debian há algum tempo, é possível que isso seja surpreendente, porque o debian não usou originalmente esses metapacotes para implementar suas "tarefas".
sourcejedi
1
Talvez seja porque o *? Eu destruí meu gnomo apt-get remove wine*antes.
Rio6 31/10/16

Respostas:

23

Como outros explicaram, os meta-pacotes da área de trabalho - como task-desktopou gnome-core- instalam um navegador hoje em dia (bem, por um bom tempo, na verdade). Você pode gnome-coreinstalar o Epiphany, ou pelo menos permitir isso como uma alternativa ao Iceweasel, mas não por motivos de segurança . A gnome-coredescrição menciona a dependência do navegador:

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

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

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

Portanto, os motivos pelos quais isso depende do Iceweasel são duplos:

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

Costumava haver uma dependência alternativa gnome-www-browser, mas isso foi removido em 2011 (sem explicação, pelo que sei). Pode valer a pena pedir aos mantenedores para reintroduzi-lo, mas isso 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 diretos. Quando você pede apt-getpara fazer algo, é realmente difícil fazê-lo - portanto, a remoção de um pacote remove qualquer coisa que dependa dele (depois de você perguntar). gnome-coredepende iceweasel, e gnomedepende 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 autoremove, pois 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 for removida gnomeou gnome-core, na próxima vez em que você executar apt-get autoremove, considerará que muitos dos pacotes instalados são desnecessários ...

Existem algumas soluções alternativas:

  • se você quiser se manter gnome-coreinstalado sem o Iceweasel, use equivsou apt-holepunch(o último é muito mais fácil de usar neste caso, obrigado Joshua !) para criar um iceweaselpacote falso e instalá-lo junto com gnome-core;
  • passar por todos os pacotes que gnomee gnome-coredependem, decidir qual deles você deseja usar e / ou necessidade ( por exemplo gdm3 , gnome-session, nautilus...), e marcá-los usando

    apt-mark manual ...
    

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

De qualquer forma, você não pode interromper sua VM removendo pacotes, a menos que comece a remover pacotes essenciais (e apt-getirá reclamar em voz alta antes de permitir isso) ou o kernel. Você pode acabar precisando fazer login em um console de texto, mas pode consertar as coisas a partir daí, assim como em um emulador de terminal X.

Stephen Kitt
fonte
Ótima resposta! Imaginando, qual é o gnome-www-browserpacote "virtual"?
Php #
2
@phk Essa é uma excelente pergunta, a dependência alternativa em gnome-www-browserfoi removido em 2011 , mas ainda é fornecida pelo cromo, Epifania, Iceweasel e Firefox ... (E Canela ainda usa-lo.)
Stephen Kitt
1
Aliás, aqui está algo que faz o trabalho de excluir um pacote da dependência sem o build-env depende de equivs: mail-archive.com/[email protected]/msg900702/…
Joshua
Obrigado Stephen. Não pretendo dividir os cabelos, mas por que é uma dependência? Em relação a "é definido como dependendo de um navegador da web" , não consigo entender por que a dependência existe. Essa é realmente a minha pergunta. Desculpe pela confusão.
Além disso, você está certo sobre "... você não pode interromper sua VM removendo [esses pacotes] específicos" " . Após uma reinicialização, recebi uma tela de logon que não era da GUI e consegui fazer o SSH na caixa. Estou feliz com o Terminal / Linha de Comando, por isso claramente não está quebrado ou inútil para mim. Outros podem precisar de uma área de trabalho, no entanto. Eu não gostaria que minha mãe ou pai tentasse usar a máquina.
2

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, 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 mais, para obter ajuda em seu novo sistema :). Portanto, a tarefa da área de trabalho inclui um navegador da web padrão, QED.

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

(A resposta mais upvoted indica que há uma relação indireta, que faz assim o exigem. Em face disso, pode haver espaço para melhorias nessa estrutura de dependência. Eu acho o seguinte ainda é válida no entanto.)

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 (após remover o iceweasel?) Você não tinha pacotes instalados dos quais dependia ou era recomendado task-desktop. Nem foi marcado como instalado manualmente. Então é claro que apt-get autoremoveremove.

Ponto de interrogação porque, olhando 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 área de trabalho é considerada desnecessária, cancele-a e marque-a 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 deseja um pacote recomendadocomo 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). (Observe que o aptitude remove 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 IME synaptic pode ser bastante complicado e lento hoje em dia se você tentar fazer esse tipo de coisa. Consulte /ubuntu/622031/how-do-i-exclude-specific-packages-from-installation-with-apt-get

sourcejedi
fonte
2

Você realmente não deve usar * expressões regulares para remover coisas - e eu sei disso por experiência própria. O uso de * 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. Eu não tenho idéia do que é o pacote "iceweasel" ofensivo, poderia ser qualquer dependência inversa 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/ x11quebraria 99% das GUIs * Nix. Para descobrir o que os pacotes do iceweasel que você excluiu fazem grep iceweasel /var/log/apt/history.loge procurar as linhas que começam com "Remove:"sob Commandline: apt-get remove iceweasel* Se você ainda estiver curioso, publique os resultados e eu (ou outra pessoa) posso descobrir os problemas exatos da dependência. :)

Um problema de dependência como esse é ilógico, é claro, e sua existência é um erro da parte das pessoas que criaram os metadados para os seus .deb. Eu descobriria o problema exato antes de preencher um relatório de erro. Daí a minha resposta acima. : D

trudgemank
fonte
Obrigado trudgemank. Estou mais interessado em saber por que a dependência existe; não qual é a dependência.
Não deveria existir. Sua existência é um erro da parte das pessoas que criaram os metadados dos seus .deb, o que não é perfeito. Há consequências que eles não prevêem.
trudgemank
Você deve ter excluído um pacote "iceweasel" que não faz parte do metapacote do iceweasel. Possivelmente um instalado por padrão.
trudgemank
Trudgemank - Se você responder à pergunta que eu fiz na sua resposta e não nos comentários, ficarei feliz em aceitar a resposta. Para completar, eis a resposta que eu acredito estar correta: "... [é] um erro da parte das pessoas que criaram os metadados para os seus .deb" . Desculpe dividir os cabelos; esse realmente era o item de interesse para mim. Com as informações em mãos, posso enviar um relatório de erro.
Está tudo bem, desde que eu ajudei, não preciso de afirmação oficial. Mas você não resolve o problema específico da dependência, deveria fazê-lo se quiser registrar um relatório de bug.
trudgemank