Não sei se existe uma maneira melhor (provavelmente existe), mas dependendo da escala que você precisa, você pode usar o recurso de pesquisa do aptitude para parte do maquinário. Ele permite que você pesquise pacotes que correspondam a um padrão. Então, aptitude search '~i'
te dá todos os pacotes instalados
Precisamos dar um passo adiante, no entanto. O gerenciador de pacotes gosta de saber quais pacotes foram requisitados diretamente por você e quais foram apenas extraídos por causa de outros pacotes. Sem essa informação, coisas feias podem acontecer. Assim, podemos expandir esse padrão de pesquisa para selecionar pacotes que não são instalados automaticamente: aptitude search '!~M ~i'
O recurso de pesquisa é abordado em detalhes no Manual de referência do Aptitude .
Agora, você tem sua lista de pacotes para instalar. Você pode formatar a saída conforme necessário, passando o sinalizador -F para essa comando, como -F '% p' para obter uma lista com apenas nomes de pacotes.
Por exemplo , você pode executar isso em máquina 1 :
aptitude -F "%c %p" --disable-columns search '!~M ~i' | awk -F " " '{ print "apt-get -y install " $2 }' > aptshell.sh
Copie o arquivo aptshell.sh
recém-criado para máquina 2 e use este comando na máquina 2 para executá-lo:
sudo sh aptshell.sh
Em seguida, repita o processo, com a máquina 2 original como a nova máquina 1 , e a máquina 1 > original como a nova > máquina 2 . Agora cada máquina tem todos os pacotes que antes eram apenas do outro.