Sincronizando instalações do apt-get entre vários computadores

11

Existe uma maneira de sincronizar minhas instalações (e remoções) entre vários PCs?

De preferência com o dropbox - já que eu já estou usando isso para manter meus arquivos em sincronia.

Eu pensei em um alias para os comandos apt-get install e apt-get remove que armazena os parâmetros em um arquivo (um para instalação, um para remoção) e outro comando que lê todas as entradas no arquivo e executa o respectivo comando . Esta é uma abordagem realista?

    
por Chris 10.01.2011 / 17:16

5 respostas

7

Você pode usar fantoche para criar arquivos de configuração especificando quais pacotes devem ser instalados, e você pode usar o Dropbox em vez de um servidor puppetmaster para sincronize a configuração dos fantoches entre as máquinas, além de uma tarefa do cron para executar periodicamente o fantoche e implementar quaisquer alterações na configuração.

    
por Mike Scott 10.01.2011 / 17:45
9

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 "  }' > 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.

    
por Dylan McCall 24.01.2011 / 07:28
2

Esta é uma questão antiga, mas como ninguém disse isso, você poderia fazer algo com o dpkg e o cron. Configure um cron job que faça algo inteligente com os comandos get-selections e set-selections do dpkg.

dpkg --set-selections < ~/Dropbox/selections.dpkg


dpkg --get-selections > ~/Dropbox/selections.dpkg

Esta não é uma solução proposta, você terá que trabalhar de alguma forma para garantir que o selections.dpkg seja atualizado sempre que você fizer uma alteração em qualquer computador ...

    
por John 14.08.2013 / 19:21
2

O Ubuntu Software Center possui um recurso para sincronizar pacotes instalados entre vários computadores. Ele usa sua conta do Ubuntu One para salvar pacotes. Basta selecionar File > Sync Between Computers... e fazer login com sua conta do Ubuntu One.

Atualmente, ele tem alguma funcionalidade limitada, por exemplo, ele suporta apenas pacotes padrão (não ppa s) e você deve selecionar manualmente quais pacotes instalar (isso pode ser visto como um recurso positivo difícil). Para obter instruções detalhadas, consulte este artigo .

    
por Amir Ali Akbari 31.01.2014 / 22:13
-2

Você não poderá usar o dropbox para sincronizar instalações de pacotes.

O Synaptic tem uma maneira de salvar uma lista de download de pacotes, mas não tenho certeza se trata do caso de "tudo que já foi instalado" em vez de apenas "esses são os pacotes que eu quero baixar desta vez"

    
por Broam 10.01.2011 / 17:20