Eu instalei o Carpadio na minha instalação do Xubuntu (um Live USB), que então extraiu mais de 50 pacotes, suponho, do lado Ubuntu do repositório. Agora eu gostaria de desfazer isso. No entanto, para toda a minha busca, não consigo encontrar nada mais útil do que Como posso reverter o comando sudo apt get install , o que apenas sugere apt-get purge
. Isso não é útil, pois tudo o que faz é remover 2 pacotes (carpadio e carpadio-gnomepanel).
/var/log/apt/history.log
possui uma lista de todos os pacotes que foram instalados junto com esse comando. Então, eu queria saber se existe alguma maneira fácil de remover todos eles ? Caso contrário, eu posso apenas reinstalar, essa foi uma nova instalação de qualquer maneira, mas estou curioso.
Uma pequena amostra do log do histórico (1/5-1 / 10 da lista inteira)
Linha de comando: apt-get install cardapio-gnomepanel
Instale: libdbusmenu-qt2: amd64 (0.9.2-0ubuntu1, automático), python-packagekit: amd64 (0.7.2-4ubuntu3, automático), cups-pk-helper: amd64 (0.2.1.2-1ubuntu0.1, automático) , geoclue: amd64 (0.12.0-1ubuntu12, automático), unidade: amd64 (5.18.0-0ubuntu1, automático), impressoras indicadoras: amd64 (0.1.6-0ubuntu1, automatic), libevolution: amd64 (3.2.3- 0ubuntu6, automático), libqt4-declarative: amd64 (4.8.1-0ubuntu4.3, automatic), libmtp9: amd64 (1.1.3-1ubuntu0.1, automático), tracker-miner-fs: amd64 (0.14.0-2ubuntu1 , automático), gir1.2-rb-3.0: amd64 (2.96-0ubuntu4.2, automático), python-aptdaemon.pkcompat: amd64 (0.43 + bzr805-0ubuntu7, automático), gnome-media: amd64 (3.4.0- 0ubuntu3.1, automático), metacity: amd64 (2.34.1-1ubuntu11, automático), nautilus: amd64 (3.4.2-0ubuntu6, automático), libcompizconfig0: amd64 (0.9.7.0 ~ bzr428-0ubuntu6, automático), compiz- plugins-default:amd64 (0.9.7.12-0ubuntu1, automático), libunistring0: amd64 (0.9.3-5, automático), libebackend-1.2-1: amd64 (3.2.3-0ubuntu7, automático), ubuntu-docs: amd64 (12.04.6 , automático), python-mako: amd64 (0.5.0-1, automático),
Para todos os que sugeriram autoremove
: Não sei por que, mas recebi apenas 1 outro pacote relacionado ao python (python-keybinder ou algo assim) como "desnecessário" e isso é tudo o que o autoremove conseguiu remover.
Entre a instalação e desinstalação, apenas as principais mudanças foram instaladas xubuntu-restricted-extras
.
sudo apt-get install -s package
onde-s
denota uma simulação epackage
será substituído pelo nome do software apropriado.cardapio-gnomepanel
pacote?apt-get remove carpadio
levou esse também.autoremove
não está funcionando para você. De alguma forma, você marcou todos os pacotes como instalados manualmente agora ou há um mal-entendido. É muito simples:apt-get autoremove
apenas remove todos os pacotes marcados instalados automaticamente sem uma razão para tê-los agora. Se isso não funcionar para você, acho que você mudou algo no sistema que não contou na sua pergunta.Respostas:
Basicamente, você terá que
apt-get remove
(ou o apt-get purge) o pacote e executarapt-get autoremove
depois disso, para reverter a instalação dopackage-one
.Vamos olhar para todo o processo:
sudo apt-get install package-one
instala 50 dependências marcadas como "automáticas", como também pode ser visto no trecho de log da sua perguntasudo apt-get purge package-one
Remove (expurgos) apenas um, mas fazer executar este!Todas as ações de instalação a seguir (se você executar alguma) produzirão uma mensagem informativa com os pacotes não mais necessários:
Esta lista é basicamente apenas uma lista de todos os pacotes marcados como "automáticos" sem uma dependência reversa deles. Em outras palavras, não há razão para eles serem instalados no que diz respeito ao gerenciamento de pacotes.
Nota: Nenhuma instalação é necessária! É apenas para demonstrar que o APT é inteligente para falar sobre seus pacotes desnecessários!
sudo apt-get autoremove --purge
remove (limpa) essesMais Informações
Documentação oficial na página
autoremove
deapt-get(8)
manual:Qual é a maneira correta de remover completamente um aplicativo?
fonte
autoremove
.autoremove
não ajudou.sudo apt-get update
suficiente?Quando você deseja remover um pacote e suas dependências instaladas no momento, você deve usar:
mas para desfazer
apt
ações, você pode usar oapt-undo
script. É um script simples que pode desfazer asapt
ações executadas no Ubuntu. Deve-se notar que esse script só pode funcionar se você o usar, em vez deapt-get
instalar / atualizar / remover / remover / limpar / fazer o downgrade de seus pacotes.Para instalar
apt-undo
no Ubuntu, execute os seguintes comandos no terminal:uso:
Para desfazer, as
aptitude
ações acima executam os seguintes comandos no terminal:fonte
Use o poder do Unix. Pegue a linha do arquivo de log que você possui e construa um comando que desfará o que o apt fez. Por exemplo:
Portanto, você pode usar essa eliminação de todos os pacotes que você instalou acidentalmente, dada a linha apropriada do seu arquivo de log:
(Eu usei, em
perl
vez de,sed
porquesed
usa um tipo de expressão regular que não suporta correspondências não gananciosas, que era a maneira mais fácil de construir o que eu precisava)fonte
apt
log para um novo arquivo e apliquei o seguinte:perl -pe 's/\(.*?\)(, )?//g' /path/to/apt-history.log
então tudo o que fiz foi anexar essa saídasudo apt-get remove
e já estava pronto!Depois de remover o pacote único, e você pode removê-lo completamente adicionando --purge, for,
apt-get remove --purge <package>
ele deve lhe dar uma mensagem de que os pacotes da biblioteca extraídos foram instalados automaticamente e não são mais necessários; nesse momento, você pode executarapt-get autoremove
para Remova eles.fonte
Siga o
sudo apt-get purge packagename
comA menos que seja um metapacote, isso deve cuidar disso.
Consulte também as perguntas frequentes em Como removo manualmente todos os arquivos do Cardapio? .
fonte
new_file.txt
perl -pe 's/\(.*?\)(, )?//g' /path/to/new_file.txt
sudo apt-get remove
[cole o conteúdo da área de transferência aqui]Feito.
Basicamente, precisamos formatar a lista de pacotes do log do apt para algo que o apt-get possa entender. Os parênteses, as palavras entre as vírgulas e as vírgulas precisam ir, então é aí que o perl entra para jogar. Sim, existem maneiras melhores (mais eficientes) - mas eu fiz isso, é fácil de entender e funciona.
fonte
Para desfazer a última instalação do apt, você também pode usar algo como isto:
Isso irá capturar a última instalação apt do histórico e limpar todos os pacotes aqui instalados.
Você pode criar uma função chamada aptpurgelastinstall para tê-la sempre à mão (adicionará o código a ~ / .bashrc):
Agora você só precisa digitar aptpurgelastinstall no shell para refazer a última instalação.
fonte
Se você acabou de adicionar um ppa e deseja reverter, execute as etapas descritas abaixo. Entenda que isso pode falhar, quando você instala outros pacotes e não deseja desinstalar. Tenho certeza que isso pode ser feito com um script. Pessoalmente, acho que isso deve fazer parte do apt, e deve haver uma melhor administração de quais pacotes estão instalados por causa de dependências e quais são instalados por solicitação do usuário.
1) remova o ppa de /etc/apt/sources.list Lembre-se da hora em que você adicionou o ppa. Se você tiver sorte, não precisa ser preciso.
2) faça uma lista do que reinstalar, a partir do momento em que você instalou o PPA: cat /var/log/dpkg.log | grep 'upgrade'
3) faça uma lista do que remover, a partir do momento em que você instalou o PPA: cat /var/log/dpkg.log | grep 'install'
4) remova todos os pacotes da etapa 3: sudo apt-get remove {lista de pacotes da etapa 3}
5) reinstale todos os pacotes da etapa 2: sudo apt-get install --reinstall {lista de pacotes da etapa 2}
6) Se tudo der errado e você não conseguir encontrar uma solução, volte a colocar o PPA e reinstale todos os pacotes das duas listas.
fonte
Sei que é uma pergunta bastante antiga, mas vim aqui em busca de ajuda e talvez eu possa ajudar alguém. Eu tive uma situação semelhante à do @ Karthik-T após a instalação
unity8-desktop-session-mir
. Eu sei que é um grande problema. Ele puxou 233 pacotes com ele.Usando
autoremove
eu sou removido apenas 34 deles. O ponto é que, durante aunity8-desktop-session-mir
instalação, ele removeu dois pacotes (python3-aptdaemon.pkcompat
eevolution-data-server-online-accounts
). É declarado em/var/log/apt/history.log
, após aInstall
seção.Para desfazer completamente a instalação do Unity 8, emiti o seguinte:
sudo apt-get purge unity8-desktop-session-mir
sudo apt-get --purge autoremove
sudo apt-get install python3-aptdaemon.pkcompat evolution-data-server-online-accounts
(ele removeu 8 pacotes relacionados ao Unity 8)sudo apt-get --purge autoremove
Isso não removerá absolutamente tudo o que você instalou antes, mas, em alguns casos, é bom o suficiente.
PS: talvez o
autoremove
passo dois não seja necessário, como emitei novamente no passo quatro.fonte
Tecnicamente, as operações "remover" ou "remover automaticamente" não são "desfazidas", embora possam ser feitas para fazer o trabalho suficientemente bem na maioria das vezes.
Por padrão, o apt-get deixará os pacotes para trás, a menos que você especifique
-o APT::Suggests-Important=0 -o APT::Recommends-Important=0
É mais confiável dar uma olhada no apt
history.log
e desinstalar todos os pacotes instalados. Eu criei um pequeno script baseado em nó para facilitar o processo:https://github.com/rolfen/apt-history
Além disso, aqui está outra abordagem mais manual para "reverter" as alterações:
https://unix.stackexchange.com/a/236711
fonte