Posso remover o apt com apt?

44

Eu sei que posso usar apt-get remove <package> para remover um programa.

Mas apt é um programa em si. Eu poderia usar apt-get remove apt para removê-lo, ou ele ficaria confuso no meio do caminho?

    
por Tim 17.01.2016 / 14:57

6 respostas

77

O APT permite simular seus comandos usando a opção -s . Você mesmo pode tentar isso, emitindo o comando apt-get -s remove apt (sem sudo necessário).

Isso produz a seguinte saída:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  apturl-common xul-ext-ubufox
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  apt apt-utils apturl nautilus-share python3-software-properties
  software-properties-common software-properties-gtk ubuntu-desktop
  unattended-upgrades
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  apt
0 upgraded, 0 newly installed, 9 to remove and 0 not upgraded.
Remv ubuntu-desktop [1.341]
Remv nautilus-share [0.7.3-1ubuntu5]
Remv apturl [0.5.2ubuntu9]
Remv software-properties-gtk [0.96.13.1]
Remv software-properties-common [0.96.13.1]
Remv python3-software-properties [0.96.13.1]
Remv unattended-upgrades [0.86.2ubuntu1]
Remv apt-utils [1.0.10.2ubuntu1]
Remv apt [1.0.10.2ubuntu1]

Portanto, a resposta deve ser: sim, você pode.

    
por cauon 17.01.2016 / 15:13
29

Você pode ...

sudo apt-get remove apt
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following packages will be REMOVED:
  apt apt-utils apturl nautilus-share python3-software-properties
  software-center software-properties-common software-properties-gtk
  ubuntu-desktop ubuntu-extras-keyring ubuntu-minimal unattended-upgrades
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  apt
0 upgraded, 0 newly installed, 12 to remove and 0 not upgraded.
After this operation, 9,031 kB disk space will be freed.
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'
?] Yes, do as I say!
(Reading database ... 179817 files and directories currently installed.)
Removing ubuntu-desktop (1.327) ...
Removing nautilus-share (0.7.3-1ubuntu5) ...
Removing apturl (0.5.2ubuntu4) ...
dpkg: warning: while removing apturl, directory '/usr/lib/python3/dist-packages/AptUrl/gtk/backend' not empty so not removed
Removing software-properties-gtk (0.94) ...
dpkg: warning: while removing software-properties-gtk, directory '/usr/lib/python3/dist-packages/softwareproperties/gtk' not empty so not removed
Removing software-properties-common (0.94) ...
Removing python3-software-properties (0.94) ...
Removing unattended-upgrades (0.82.8) ...
Removing ubuntu-minimal (1.327) ...
Removing apt-utils (1.0.9.2ubuntu2) ...
Removing software-center (13.10-0ubuntu4.1) ...
Removing ubuntu-extras-keyring (2010.09.27) ...
OK
Removing apt (1.0.9.2ubuntu2) ...
Processing triggers for man-db (2.7.0.2-2) ...
Processing triggers for gconf2 (3.2.6-2ubuntu1) ...
Processing triggers for hicolor-icon-theme (0.13-1) ...
Processing triggers for shared-mime-info (1.2-0ubuntu3) ...
Processing triggers for gnome-menus (3.10.1-0ubuntu2) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu2) ...
Processing triggers for bamfdaemon (0.5.1+14.10.20140925-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for mime-support (3.55ubuntu1) ...
Processing triggers for dbus (1.8.8-1ubuntu2) ...
Processing triggers for libc-bin (2.19-10ubuntu2) ...

e será avisado que você está prestes a fazer algo muito destrutivo. Devo dizer ... a lista de pacotes parece horrível para uma economia de espaço de menos de 6000kb: D

Ele termina, mas não há como voltar usando o "apt-get". O Ubuntu Software Center não funcionará mais e você precisaria usar o "dpkg" para reinstalar um gerenciador de pacotes (e manualmente também precisa instalar todas as dependências).

    
por Rinzwind 17.01.2016 / 15:10
11

Uma vez, quando corri o CoreUbuntu, instalei um pacote com bugs do código-fonte que apt decidiu obsoleto apt . Da próxima vez que executei apt autoremove , na verdade, não vi a lista de softwares a serem removidos e apt estava na lista.

Imagine minha surpresa na próxima vez em que digitei apt install <package-name> e recebi The program 'apt' is currently not installed. You can install it by typing: sudo apt-get install apt .

Felizmente, por algum motivo, autoremove não removeu nenhuma das dependências de apt , então tudo o que precisei fazer foi wget apt .deb archive e reinstalar usando dpkg -i .

Como mostrado nas outras respostas, se você remover apt com apt , você terá mais problemas por causa das dependências que tenta resolver.

Eu acho interessante, mas é realmente o caso (certamente para o Debian, e talvez para o Fedora / openSUSE?) muitas distribuições modernas são definidas e construídas em grande parte na infraestrutura fornecida pelo gerenciador de pacotes de sua preferência.

    
por cat 17.01.2016 / 18:50
5

Tecnicamente, o apt não pode remover o apt ... porque o apt não sabe como remover, instalar ou atualizar pacotes. As tarefas de instalar, remover, atualizar, configurar pacotes são deixadas para o dpkg. Embora você possa dizer ao apt para remover o pacote chamado "apt", o que ele faz é verificar as dependências reversas do pacote apt, anotar esses pacotes e pedir ao dpkg para removê-los. Que é o que pode ser visto em o outro respostas .

Mesmo sem o apt você pode usar o dpkg para instalar, remover ou atualizar pacotes, só que será mais doloroso acompanhar as dependências e atualizações necessárias, que é a raison d'être do apt.

    
por Braiam 19.01.2016 / 14:41
1

Claro que você pode. Apt e dpkg são, eles próprios, pacotes, e eles devem ser atualizados por eles mesmos, portanto, há provisões para remoção; caso contrário, /var/lib/dpkg/info/dpkg.prerm e /var/lib/dpkg/info/dpkg.postrm não teriam razão para existir:)

Se você removê-los acidentalmente de uma forma que deixasse você sem o dpkg, você ainda poderia manualmente descompactar o arquivo .deb para o dpkg, a menos que você também tenha se livrado do binutils, tar, gzip / bzip2.

--purge em qualquer pacote envolvido com o toolchain do apt pode lhe dar problemas desagradáveis; difícil dizer o que possui certos arquivos em /var/lib/dpkg . Se /var/lib/dpkg/status for excluído e não houver backup atual, então sim, o gerenciador de pacotes estaria além do reparo nesse sistema.

    
por rackandboneman 20.01.2016 / 12:00
-1

Eu juro que vi os apt binários sob /usr/local/bin em um sistema baseado no Ubuntu há não muito tempo atrás, mas eles não estão lá no meu sistema Ubuntu MATE 15.04 atual (eles estão em /usr/bin com a maioria dos os outros binários). Se estiver em /usr/local/bin , provavelmente não será possível desinstalá-lo com apt , porque os arquivos em /usr/local/bin devem ser ignorados pelo gerenciador de pacotes. Devo admitir que colocar apt (e dpkg também) sob /usr/local/bin seria uma boa ideia.

Uma pergunta mais interessante é: o que acontece se você desinstalar dpkg ? Com certeza, dpkg está listado como um pacote por apt , mas não vou tentar desinstalá-lo agora (não tenho uma máquina virtual configurada no momento). Teoricamente, um também poderia desinstalá-lo com dpkg . Vou adivinhar que a única maneira de reinstalá-lo seria fazê-lo manualmente, então espero que ele pegue os arquivos de configuração existentes (para que você não precise dizer manualmente ao sistema novamente quais pacotes estão instalados) e depois informar que o pacote dpkg está agora instalado novamente.

(Uma brincadeira :) O equivalente de # rm -rf / do usuário Debian é # apt-get purge ".*" .

    
por Micheal Johnson 19.01.2016 / 19:24

Tags