it-swarm-pt.tech

Ubuntu, como configurar uma nova máquina como uma existente

Tenho uma configuração de máquina com os aplicativos de que preciso e gostaria de instalar o mesmo em uma nova caixa do Ubuntu.

Existe um script que irá listar todos os aplicativos instalados, para que eu possa diferenciar entre as caixas e assim adicionar os itens que faltam?

Obrigado antecipadamente, Chris

27
Chris Kimpton

Além dos truques do dpkg mencionados por pjz, você também pode querer dar uma olhada em etckeeper ( tutorial ) - um aplicativo que coloca seu/etc/* sob controle de versão, tornando-o mais fácil encontrar as alterações feitas e replicá-las para outros servidores.

Além disso, para uma lista mais curta do que a produzida pelo método de pjz, você pode usar

$ deborphan -a --no-show-section > /tmp/mypackagelist

Isso lhe dará uma lista de pacotes que instalarão todos os outros pacotes necessários como dependências. Pode ser útil se você realmente deseja examinar a lista. (dpkg --get-selections produzirá uma lista loooonga ). Além disso, a lista é curta o suficiente para que você possa adicionar novas linhas e comentar as entradas com '#'. Então, ao instalar os pacotes extras, você pode fazer

$ grep -v '#' /tmp/mypackagelist | xargs apt-get install -y

Dessa forma, se houver alguns pacotes que você deseja instalar apenas em algumas máquinas, você não precisa excluí-los da lista de pacotes.

18
Hamish Downer
dpkg --get-selections >/tmp/mypackagelist

deve fazer o truque. Então, depois de certificar-se de que seu /etc/apt/sources.list na nova máquina tem o mesmo conjunto de entradas da antiga, copie minha lista de pacotes para a nova máquina e faça:

cat mypackagelist | xargs apt-get -y install 

e você deve estar pronto para ir.

Observe que a linha dpkg --get-selections também é uma boa informação para colocar em seu/etc/dir ocasionalmente - isso significa que você não precisa se preocupar em fazer backup de/bin/e/usr/bin/e outros porque você sabe quais pacotes estão no sistema.

17
pjz

Os melhores comandos do dpkg podem ser [máquina original]

dpkg --get-selections | grep -v deinstall > packages_list

então, ao instalar [nova máquina; depois de transferir a lista de pacotes]

Sudo dpkg --set-selections < packages_list
Sudo apt-get -u dselect-upgrade
2
Benji

O Ubuntu Forums tem um boa resposta

  1. Na máquina antiga: $ dpkg --get-selections> installed-software
    • Isso obtém sua lista de aplicativos instalados
  2. Na nova máquina: $ dpkg --set-selections
    • Isso configura a nova máquina para instalar os pacotes não instalados atualmente na nova máquina.
    • Pode ser interessante ver se a nova máquina tem alguns pacotes não instalados na máquina antiga, então você pode encontrar o comando dpkg --get-selections> na nova máquina, e então usar diff para comparar os arquivos de saída de ambos.
  3. Finalmente, na nova máquina: $ dselect e os pacotes serão instalados.

Alguns links adicionais da discussão do fórum:

  1. Não se esqueça de suas chaves gpg (do mesmo tópico)
  2. Como instalar todos os pacotes desejados e desinstalar todos os pacotes indesejados
2
pcapademic

Existe uma ferramenta chamada ReMasterSys que pode fazer isso por você. consulte http://geekconnection.org/remastersys/

Espero que seja útil.

1
user46844

Usar FSArchiver para replicar as máquinas é perfeitamente aceitável. Caso contrário, aqui estão pares úteis de comandos, a primeira metade dos quais você também pode adicionar ao cron de backup:

debconf-get-selections
debconf-set-selections

~

aptitude-create-state-bundle
aptitude-run-state-bundle --unpack

~

dpkg --get-selections
dpkg --clear-selections; dpkg --set-selections

Os locais que você deve replicar são/etc e/var. Os comandos acima manipulam alguns arquivos em/var diretamente, e alguns conffiles em/etc indiretamente via debconf. Você obterá o mesmo efeito apenas replicando essas subárvores e executando o aptitude.

1
Tobu

Se você não é um fã de CLI (embora devesse ser), pode usar o gerenciador de pacotes Synaptic para salvar a imagem dos pacotes instalados e usar esse arquivo (novamente por meio do Synaptic) para carregar a nova máquina. Na opção arquivo/salvar marcações, há uma caixa de seleção chamada "salvar estado completo".

1
Nerdfest

Por que você não está apenas clonando a máquina usando dd?

1
elcuco

Acho que Docker seria a maneira de fazer isso agora - definir os requisitos em um Dockerfile - você pode executá-lo em qualquer Docker Host.

0
Chris Kimpton