Sincronizando instalações 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 estou usando isso para manter meus arquivos sincronizados.

Pensei em um alias para os comandos apt-get installe apt-get removeque armazena os parâmetros em um arquivo (um para instalação, outro para remover) e outro comando que lê todas as entradas no arquivo e executa o respectivo comando. Essa é uma abordagem realista?

Respostas:


7

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


Essa é uma ótima idéia para um pequeno número de máquinas. Em um ambiente maior, você definitivamente deve ter um mestre de marionetes. Onde trabalho, gerenciamos milhares de máquinas com fantoches.
— Ed Manet

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. 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.sharquivo 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.


Seria ótimo incluir versões ... a máquina 1 pode conter versões anteriores, por exemplo, e a máquina 2 deve refletir isso #
— Rondo

por exemplo, aptitude -F "% c% p% V" - pesquisa de colunas desativáveis ​​'! ~ M ~ i' | awk -F "" '{print "apt-get -y install" $ 2 "=" $ 3}'> aptshell.sh
— Rondo

2

Esta é uma pergunta antiga, mas como ninguém disse isso, você poderia fazer algo com o dpkg e o cron. Configure um trabalho cron 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 maneira para garantir que o selections.dpkg seja atualizado sempre que você fizer uma alteração em qualquer computador ...


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 Ubuntu One.

Sincronizando pacotes com o Ubuntu Software Center

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


-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 de que lide com o caso de "tudo o que já foi instalado", em vez de apenas "esses são os pacotes que desejo baixar desta vez"


-1 porque sua suposição está incorreta, a pergunta descreve um processo para implementar que, usando uma lista de instalação / remoção, ele está apenas perguntando se existe uma implementação realista, pois o dropbox da descrição da pergunta é apenas o meio usado para trocar as listas de sincronização
— João Pinto
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.