De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Gerando lista mínima de pacotes de um sistema automaticamente

Colaboração: Fabrício Ceolin

Data de Publicação: 02 de Maio de 2009

Caso venhamos criar um procedimento de instalação, certamente esbarramos no problema da geração de uma lista de pacotes instalados. Sabemos que essas listas podem ser gigantestas, portanto desenvolvi um pequeno script que resolve este problema.

Neste artigo vamos explorar um sistema baseados em Debian, porém existem comandos equivalentes para sistemas baseados em RedHat para obtenção das listas.

O algoritmo é muito simples.

Gera-se uma lista de pacotes intalados:

dpkg --get-selections | awk '{ print $1 }' > pacotes

Gera-se uma lista de dependências destes pacotes, tirando os pacotes repetidos, linhas vazias e pacotes virtuais.

for name in $(cat pacotes)
do
  apt-cache depends $name | awk '{ print $2 }' >> depends
done
cat depends | sort -u | sed -e 's/^<.*//' | grep -v '^$' > depends.sort

Subtrai-se os dois conjuntos, o dos pacotes, com os dependentes:

comm -23 <(sort pacotes) <(sort depends.sort) > pacotes.mestre

Temos a lista mínima de pacotes.



Veja a relação completa dos artigos de Fabrício Ceolin