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, Apt
ele 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 autoclean
passe 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-desktop
ougnome-core
- instale um navegador da web hoje em dia (bem, há muito tempo, na verdade). Você pode esperar gnome-core
instalar 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-core
descriçã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-core
sem um navegador.
Os mecanismos que levam à remoção do GNOME se você remover o Iceweasel são relativamente simples. Quando você pede apt-get
para 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-core
depende de iceweasel
, egnome
depende 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 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 gnome
ou 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-core
instalado sem o Iceweasel, useequivs
ouapt-holepunch
(este último é muito mais fácil de usar neste caso, obrigadoJoshua!) para construir umiceweasel
pacote falso e instalá-lo junto comgnome-core
;passar por todos os pacotes que
gnome
egnome-core
depende, decida qual deles você deseja usar e/ou precisa (por exemplogdm3
,gnome-session
,nautilus
...) e marque-os usandoapt-mark manual ...
ou usando
aptitude
a 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-get
reclamará 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 autoremove
remove-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
/ x11
sozinha quebrariam 99% das GUIs *Nix. Para descobrir o que os pacotes iceweasel que você excluiu fazem grep iceweasel /var/log/apt/history.log
e 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