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, 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 um autoclean
e autoremove
passar, 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.
Apt
me diz as dependências. Eu sou interessante em saber por que as dependências existem. Duvidoaptitude
que me diga por que existe uma dependência.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.apt-mark
aquelas 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".*
? Eu destruí meu gnomoapt-get remove wine*
antes.Respostas:
Como outros explicaram, os meta-pacotes da área de trabalho - como
task-desktop
ougnome-core
- instalam um navegador hoje em dia (bem, por um bom tempo, na verdade). Você podegnome-core
instalar o Epiphany, ou pelo menos permitir isso como uma alternativa ao Iceweasel, mas não por motivos de segurança . Agnome-core
descrição menciona a dependência do navegador:Portanto, os motivos pelos quais isso depende do Iceweasel são duplos:
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çãognome-core
sem um navegador.Os mecanismos que levam à remoção do GNOME se você remover o Iceweasel são relativamente diretos. Quando você pede
apt-get
para 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-core
dependeiceweasel
, egnome
dependegnome-core
, entãotambém remove
gnome-core
egnome
.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 removidagnome
ougnome-core
, na próxima vez em que você executarapt-get autoremove
, considerará que muitos dos pacotes instalados são desnecessários ...Existem algumas soluções alternativas:
gnome-core
instalado sem o Iceweasel, useequivs
ouapt-holepunch
(o último é muito mais fácil de usar neste caso, obrigado Joshua !) para criar umiceweasel
pacote falso e instalá-lo junto comgnome-core
;passar por todos os pacotes que
gnome
egnome-core
dependem, decidir qual deles você deseja usar e / ou necessidade ( por exemplogdm3
,gnome-session
,nautilus
...), e marcá-los usandoou usando
aptitude
a 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-get
irá 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.fonte
gnome-www-browser
pacote "virtual"?gnome-www-browser
foi removido em 2011 , mas ainda é fornecida pelo cromo, Epifania, Iceweasel e Firefox ... (E Canela ainda usa-lo.)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.
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 queapt-get autoremove
remove.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 usarapt-get install task-gnome-desktop iceweasel-
.Também é possível desmarcar as dependências recomendadas usando
synaptic
(GUI) ouaptitude
(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-getfonte
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áticaxorg
/x11
quebraria 99% das GUIs * Nix. Para descobrir o que os pacotes do iceweasel que você excluiu fazemgrep iceweasel /var/log/apt/history.log
e procurar as linhas que começam com"Remove:"
sobCommandline: 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. :)fonte