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. Permite procurar pacotes que correspondam a um padrão. Então, aptitude search '~i'
fornece todos os pacotes instalados
Porém, precisamos dar um passo adiante. O gerenciador de pacotes gosta de saber quais pacotes foram solicitados diretamente por você e quais foram extraídos por causa de outros pacotes. Sem essa informação, coisas feias podem acontecer. Portanto, 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 com mais 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 esse comando, como -F '% p' para obter uma lista apenas com nomes de pacotes.
Por exemplo , você pode executar isso na máquina 1 :
aptitude -F "%c %p" --disable-columns search '!~M ~i' | awk -F " " '{ print "apt-get -y install " $2 }' > aptshell.sh
Em seguida, copie o aptshell.sh
arquivo recém-criado para a máquina 2 e use este comando na máquina 2 para executá-lo lá:
sudo sh aptshell.sh
Em seguida, repita o processo, com a máquina original 2 como a nova máquina 1 e a máquina original 1 como a nova máquina 2 . Agora, cada máquina possui todos os pacotes que antes eram apenas do outro.