Bem-vindo: Sáb, 23 de Novembro 2024, 4:55 Pesquisa avançada

Apague Kernels antigos do Ubuntu para ganhar espaço!

Tópicos sobre artigos publicados no site Ubuntued! Nesta secção, por cada artigo publicado é criado um tópico onde poderá criticar, questionar, criar tópicos a questionar algum artigo feito e/ou até pedir alguma matéria a ser abordada no Ubuntued!

Re: Apague Kernels antigos do Ubuntu para ganhar espaço!

Mensagempor jozz » Sex, 11 de Outubro 2013, 17:13

Olá caro amigo Claudio. Interessante este comando para deletar Kernel antigo do Ubuntu. Dentro da filosofia Linux e, sem querer questionar demais- gostaria de saber o que o comando faz, o significado dele. Não me agrada fazer algo que não entendo bem, confiar apenas... Poderia sugerir de que modo poderei vir a entender plenamente este comando? Obrigado. Jozz (novo no linux).

jozz
 
Mensagens: 1
Registrado em: 11 Outubro, 2013

Re: Apague Kernels antigos do Ubuntu para ganhar espaço!

Mensagempor Claudio Novais » Sáb, 12 de Outubro 2013, 14:32

jozz (11-10-2013, 17:13) escreveu:Olá caro amigo Claudio. Interessante este comando para deletar Kernel antigo do Ubuntu. Dentro da filosofia Linux e, sem querer questionar demais- gostaria de saber o que o comando faz, o significado dele. Não me agrada fazer algo que não entendo bem, confiar apenas... Poderia sugerir de que modo poderei vir a entender plenamente este comando? Obrigado. Jozz (novo no linux).


Este comando não só é dotado de coisas simples como de coisas complicadas, pelo menos para quem não é programador, mas vou tentar explicar! ;)

Para começar, no terminal você pode encadear comandos, onde o output de um comando entra como input de outro comando. Para isso utiliza-se o caracter pipe, que basicamente é este |

Assim, analisando o comando referido
dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge

nós podemos desmontá-lo, então, nos vários comandos listados a seguir:
  1. dpkg -l 'linux-*'
  2. sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'
  3. xargs sudo apt-get -y purge

Portanto cada comando vai mandar um certo output em que o comando seguinte vai apanhar esse resultado e trabalhá-lo. No caso do comando 1, este lista todos os pacotes que começam por "linux-". O objetivo deste comando, que utiliza o programa dpkg, é listar os pacotes referentes ao kernel, que geralmente começam com o nome "linux-", por exemplo "linux-headers-3.10.10-031010-generic".

Os comandos de 2 utilizam o programa sed que basicamente é um programa de substituição, que geralmente utiliza expressões regulares. E é neste aspeto que eu falei que é mais complexo, mais virado para os programadores. Neste caso o comando 2 tem também pipes, mas dentro de uma variável através do $, em que tudo o que está dentro dos parenteses vai dar um outro ouput que será integrado nos argumentos do comando 2. Dentro desses parenteses temos então
uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/"

que dividindo dá então:
  1. uname -r
  2. sed "s/\(.*\)-\([^0-9]\+\)/\1/"
Em a) obtem-se informação do Kernel a ser utilizado atualmente e em b) é feita a filtragem para se ficar apenas com o "número" da versão do Kernel que será então utilizada como "bloqueador" para não remover este kernel no comando 2.

Posto isto, o comando 2 vai então pegar na lista obtida pelo comando 1 e vai filtrar aceitando apenas as linhas começando por "ii" (que significam pacotes que deviam estar instalados e foram efetivamente instalados), pondo essas linhas apenas com o nome do pacote e aceitando apenas as linhas que não sejam do kernel atual mas que efetivamente identifiquem kernels (que têm de ter necessariamente números).

O resultado do comando 2 dá então um conjunto de linhas em que cada linha é um nome de um pacote. o comando 3, utiliza o programa xargs que basicamente executa o comando que vem por argumento o número de vezes quantas as linhas existentes. E para cada uma das execuções põe nesse comando o conteúdo da linha como argumento.

Bom, penso que consegui explicar tudo, no entanto não revi o que escrevi, por isso se você tiver alguma pergunta, não hesite em questionar! ;)
Avatar do usuário
Claudio Novais
Editor do Ubuntued
 
Mensagens: 16869
Registrado em: 25 Maio, 2011

Re: Apague Kernels antigos do Ubuntu para ganhar espaço!

Mensagempor Miguel Fonseca » Sáb, 12 de Outubro 2013, 19:07

Boas Cláudio, excelente explicação! :venia: :rox:

Bem jozz, tu pediste, o Cláudio forneceu. :obvio:

Hasta.
It is only in Love and Murder, that we still remain sincere! - Friedrich Durrenmatt
Avatar do usuário
Miguel Fonseca
Bleeding-edge Helper
 
Mensagens: 2512
Registrado em: 10 Junho, 2011

Re: Apague Kernels antigos do Ubuntu para ganhar espaço!

Mensagempor Claudio Novais » Sáb, 12 de Outubro 2013, 19:59

Miguel Fonseca (12-10-2013, 19:07) escreveu:Boas Cláudio, excelente explicação! :venia: :rox:

Bem jozz, tu pediste, o Cláudio forneceu. :obvio:

Hasta.


Obrigado! :D
Avatar do usuário
Claudio Novais
Editor do Ubuntued
 
Mensagens: 16869
Registrado em: 25 Maio, 2011

Re: Apague Kernels antigos do Ubuntu para ganhar espaço!

Mensagempor Fábio Monteiro » Dom, 27 de Outubro 2013, 0:57

Resultado da minha varredura: Depois desta operação, 1.435 MB de espaço em disco serão liberados. Muito obrigado Ubuntued e Claudio Novaes!

Fábio Monteiro
 
Mensagens: 2
Registrado em: 28 Agosto, 2013

Re: Apague Kernels antigos do Ubuntu para ganhar espaço!

Mensagempor Claudio Novais » Dom, 27 de Outubro 2013, 1:22

Fábio Monteiro (27-10-2013, 0:57) escreveu:Resultado da minha varredura: Depois desta operação, 1.435 MB de espaço em disco serão liberados. Muito obrigado Ubuntued e Claudio Novaes!


Muito bom!!!

É, você já sabe, Ubuntued! :obvio:

:yeah:
Avatar do usuário
Claudio Novais
Editor do Ubuntued
 
Mensagens: 16869
Registrado em: 25 Maio, 2011

Re: Apague Kernels antigos do Ubuntu para ganhar espaço!

Mensagempor Felipe Santos » Qua, 30 de Outubro 2013, 20:19

Muito boa a dica.

Felipe Santos
 
Mensagens: 4
Registrado em: 30 Outubro, 2013

Anterior

Voltar para Artigos publicados no Ubuntued

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes