Por que remover o gnome-core não remove todas as suas dependências?

9

Eu instalei o gnome-corepacote no Ubuntu (versão mínima para o osso beagle) e tinha quase 600mb. No entanto, quando tento desinstalá-lo usando

sudo apt-get autoremove gnome-core 

Ele remove apenas 49 MB. Alguma idéia, como remover os 600 MB inteiros?

Desenvolvedor Android
fonte

Respostas:

15

gnome-core é um pacote meta e o caso com pacotes meta é -

Eles puxam pacotes para serem instalados, mas removê-los não removerá todos os pacotes puxados .

Portanto, a menos que você tenha copiado os nomes dos pacotes instalados pelo gnome-core, é praticamente impossível remover todos os 600 MBs.

Mas, você pode obter os nomes dos pacotes puxados pelo comando

apt-cache depends gnome-core 

e tente remover os pacotes um por um. Você deve sempre verificar se está removendo os pacotes necessários.

Ou você pode obter a lista de pacotes de maneira mais útil com isso:

apt-cache depends gnome-core | cut -f 2 -d ':'  | tr '\n' ' '

Isto listará todas as dependências do pacote gnome-core, ignore o nome do pacote <>apenas nas marcas.

Como sei se algum pacote do sistema está sendo removido?

Quando você perceber que muito espaço está sendo liberado do comando (mais de 600 MB) , você deve saber que está removendo mais do que instalou. apt-getinformará quanto espaço será liberado antes de remover como com uma mensagem como esta

After this operation, 384 kB disk space will be freed.

E ao tentar remover o pacote essencial do sistema, apt-getserá exibida uma mensagem de aviso.

Recomendação: sugiro que você obtenha uma lista de pacotes desde o primeiro comando e tente removê-los um por um. É mais seguro. Se você vir um aviso, pule a remoção do pacote. Entendo, a maioria dos pacotes no gnome-core está relacionada à GUI, acho que a remoção desses pacotes não prejudicará seu sistema (se você não quiser uma GUI) .

Espero que isto ajude!


Alguma observação sobre a remoção de pacotes

Como os pacotes puxados são desinstalados quando você remove o pacote principal?

Quando você instala um pacote e esse pacote depende de alguns outros pacotes, os pacotes de dependência também são instalados e marcados como automáticos . Isso significa que o sistema Apt os marca como Instalados automaticamente como dependência de outro pacote . Ajuda o sistema Apt a reconhecer pacotes desnecessários.

Quando você desinstala o pacote principal, os pacotes extraídos também são marcados como pacotes obsoletos ou desnecessários no sistema. Você pode removê-los, fornecendo a autoremoveopção para apt-get. (o aptitude os remove automaticamente com o pacote principal) .

Uma exceção a essa regra é que, se você instalar outro pacote posteriormente, que também depende dos pacotes puxados, os pacotes puxados não serão marcados como obsoletos quando você remover o primeiro pacote mestre.

Exemplo: você instalou um pacote Xque depende do pacote Y. Quando você instala X, Ytambém é instalado e marcado como automático. Se você não instalar outro pacote Zque também dependa Y, a remoção Xrenderizará Ya utilidade do sistema e o sistema Apt o marcará como obsoleto e você poderá removê-lo com a autoremoveopção

Mas se você instalar um pacote Zapós o Xqual também depende Y, a remoção apenas Xnão marcará Ycomo pacote obsoleto e você não poderá removê-lo com a autoremoveopção

Mas observe que, se você remover o pacote Yapós a instalação X, ele removerá o pacote , Yincluindo X, porque Xnão pode ficar sem Ye você queria remover Y, isso significa que também queria remover X. O Apt removerá Xautomaticamente ao remover a Ymarcação diferente de obsoleta para remoção posterior por autoremoveopção.

Experimente exemplos: ubuntu-desktop package é um meta package. Foi usado para instalar o desktop Ubuntu padrão. Tente removê-lo, apenas esse pacote será removido.

Tente também instalar o lubuntu-desktoppacote (talvez você não queira instalar isso, porque é um grande download) . Mas, quando você tenta removê-lo, apenas o pequeno pacote lubuntu-desktopé removido.

O Apt lida com os meta-pacotes de maneira diferente

Os meta-pacotes como gnome-core, ubuntu-restrição-extras também são chamados de pacotes virtuais. Eles são chamados assim, porque são basicamente pacotes vazios. Eles puxam outros pacotes dependendo deles. Por exemplo, o ubuntu-restrição-extras depende (na versão 12.04) dos seguintes pacotes:

ubuntu-restricted-addons
ttf-mscorefonts-installer
unrar
gstreamer0.10-plugins-bad-multiverse
libavcodec-extra-53

Onde, o próprio ubuntu-strict-addons é outro meta pacote. Como os meta-pacotes são usados ​​apenas para puxar pacotes, sua instalação não marca os pacotes puxados como automáticos , eles são marcados como instalados manualmente. O resultado? A remoção apenas do meta pacote mestre não deixará os pacotes puxados obsoletos e você não poderá removê-los por autoremoveopção. É por isso que você precisa remover cada pacote extraído dos meta pacotes manualmente.

Exemplo: você instalou um meta pacote Xque depende dos pacotes Ye Z. Quando você o instalou, os pacotes Ye Znão são marcados como automáticos (instalados automaticamente como dependência de outro pacote) , mas marcados como instalados manualmente. Mais tarde, quando você desejar remover X, apenas o Xpacote virtual será removido. Ambos, Ye Z, permanecem no sistema e você não pode desinstalá-los com autoremoveopção.

Anwar
fonte
Isso é bastante complicado. Mas acho que é a única saída, certo?
Desenvolvedor Android
Tem certeza de que apt-cache dependsserá útil aqui? Eu sinto que o caminho sugerido por tijybba é mais adequado para esse fim.
@ Sab Até onde eu sei, sim.
Anwar
O problema é que eu estou executando um osso de beagle e praticamente não tenho gui, mesmo usando o visualizador vnc
Desenvolvedor Android
@ Sab Adicionei outro comando para obter a lista em uma linha.
Anwar
2

A instalação do gnome-core traz muitos pacotes e dependências, pois é um meta-pacote.

Uma das maneiras é removê-lo manualmente, mas você deve saber quais pacotes precisam ser removidos sem causar erros de efeitos posteriores.

A lista de pacotes incluídos está listada aqui Pacote: gnome-core (1: 3.0 + 6ubuntu3) [universe]

Vá para o Gerenciador Synaptic (instale-o se não estiver presente) , clique em Origem nas seleções do canto inferior esquerdo, consulte a imagem

insira a descrição da imagem aqui

Selecione o pacote para remoção, consultando o link acima.

Cuidado se você não souber quais pacotes remover, não siga este método. Isso pode causar erros de dependência .

atenz
fonte
2

Introdução:

Para remover completamente os programas usando a linha de comando, você tem as seguintes opções;

Remova e configure arquivos, mas não dependências usando o apt-get

sudo apt-get --purge remove <Package Name>

Remova dependências não usadas e arquivos de configuração usando o apt-get

sudo apt-get --purge autoremove

Quando o GNOME é instalado no Ubuntu 12.04, ele instala vários pacotes e bibliotecas necessários, além de alguns pacotes opcionais. Nem todos esses pacotes e bibliotecas são desinstalados quando você desinstala o GNOME. Vários pacotes (como epiphany-browser e gnuchess) não são desinstalados. Desinstalação rápida

Isso não é recomendado porque removerá todos os pacotes normalmente instalados com o GNOME. Isso pode incluir pacotes que você instalou anteriormente (como epiphany-browser ou gnuchess) ou pacotes instalados anteriormente por outros aplicativos.

Nota: este comando de desinstalação assume que o GNOME foi instalado em um novo Ubuntu 12.04. 1 1

Basta pressionar Ctrl+ Alt+ Tno teclado para abrir o Terminal. Quando abrir, execute o comando abaixo. (é muito longo e uma única linha)

sudo apt-get purge --auto-remove alacarte bogofilter bogofilter-bdb bogofilter-common browser-plugin-gnash cheese  cheese-common cups-pk-helper dconf-tools desktop-base ekiga epiphany-browser  epiphany-browser-data epiphany-extensions evolution evolution-common  evolution-plugins evolution-webcal fonts-cantarell gdebi gdebi-core gdm  gedit-plugins gimp gimp-data gir1.2-accountsservice-1.0 gir1.2-caribou-1.0  gir1.2-clutter-1.0 gir1.2-cogl-1.0 gir1.2-coglpango-1.0 gir1.2-folks-0.6  gir1.2-gdesktopenums-3.0 gir1.2-gee-1.0 gir1.2-gjsdbus-1.0 gir1.2-gkbd-3.0  gir1.2-gucharmap-2.90 gir1.2-json-1.0 gir1.2-mutter-3.0  gir1.2-networkmanager-1.0 gir1.2-panelapplet-4.0 gir1.2-polkit-1.0  gir1.2-telepathyglib-0.12 gir1.2-telepathylogger-0.2 gir1.2-upowerglib-1.0  gir1.2-xkl-1.0 gjs glchess glines gnash gnash-common gnect gnibbles gnobots2  gnome gnome-applets gnome-applets-data gnome-backgrounds gnome-contacts  gnome-core gnome-dictionary gnome-games gnome-games-extra-data  gnome-icon-theme-extras gnome-icon-theme-full gnome-js-common gnome-panel  gnome-panel-data gnome-session-fallback gnome-shell gnome-shell-common  gnome-themes-standard gnome-video-effects gnotravex gnotski gnuchess  gnuchess-book gtali hamster-applet iagno imagemagick imagemagick-common  indicator-applet-complete inkscape libbabl-0.0-0 libblas3gf libbonobo2-0  libbonobo2-common libbonoboui2-0 libbonoboui2-common libboost-iostreams1.46.1  libboost-program-options1.46.1 libboost-signals1.46.1 libboost-thread1.46.1  libcapi20-3 libcaribou-common libcaribou0 libcdt4 libcheese-gtk21 libcheese3  libclutter-1.0-0 libclutter-1.0-common libclutter-gst-1.0-0 libclutter-gtk-1.0-0  libclutter-imcontext-0.1-0 libcluttergesture-0.0.2-0 libcogl-common  libcogl-pango0 libcogl9 libept1.4.12 libevolution libgc1c2 libgdict-1.0-6  libgdict-common libgegl-0.0-0 libgfortran3 libgimp2.0 libgjs0c libglade2-0  libgnome2-0 libgnomecanvas2-0 libgnomecanvas2-common libgnomeui-0  libgnomeui-common libgnomevfs2-extra libgraph4 libgsl0ldbl libgtkhtml-4.0-0  libgtkhtml-4.0-common libgtkhtml-editor-4.0-0 libgtkmm-2.4-1c2a libgvc5  libilmbase6 liblapack3gf liblqr-1-0 libmagick++4 libmagickcore4  libmagickcore4-extra libmagickwand4 libmozjs185-1.0 libmusicbrainz4-3 libmutter0  libmx-1.0-2 libnetpbm10 libodbc1 libopal3.10.2 libopenexr6 libpanel-applet--0  libpathplan4 libpst4 libpt2.10.2 libseed-gtk3-0 libwmf-bin liferea liferea-data  lightsoff menu menu-xdg mutter-common netpbm notification-daemon odbcinst  odbcinst1debian2 perlmagick python-gmenu python-gnome2 python-lxml python-numpy  python-pyorbit python-uniconvertor quadrapassel sound-juicer swell-foop synaptic  unixodbc

Uma maneira melhor de como remover completamente um pacote

1) Abra o arquivo de log do aptitude (/var/log/apt/history.log).

2) Localize os arquivos que foram instalados.

3) Remova os arquivos usando 1

sudo apt-get remove --auto-remove <file names>

1 fonte: Como desinstalar / remover completamente o GNOME

Mitch
fonte