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

27

Eu tenho uma configuração de máquina com os aplicativos de que preciso e gostaria de instalar a mesma em uma nova caixa do Ubuntu.

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

Agradecemos antecipadamente, Chris

Chris Kimpton
fonte

Respostas:

18

Além dos truques do dpkg mencionados pelo pjz, você também pode consultar o etckeeper ( tutorial ) - um aplicativo que coloca o seu / etc / * sob controle de versão, facilitando a localização de quaisquer alterações feitas e a replicação para outras servidores.

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

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

Isso fornecerá uma lista de pacotes que instalarão todos os outros pacotes necessários como dependências. Pode ser útil se você realmente quiser ler a lista. (dpkg --get-selections produzirá uma lista longa ). Além disso, a lista é curta o suficiente para você 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, não será necessário excluí-los completamente da lista de pacotes.

Hamish Downer
fonte
etckeeper parece realmente interessante (+1).
jkp
17
dpkg --get-selections >/tmp/mypackagelist

deve fazer o truque. Depois, depois de verificar se o seu /etc/apt/sources.list na nova máquina possui o mesmo conjunto de entradas que na 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 no seu / etc / dir ocasionalmente - significa que você não precisa se preocupar em fazer backup de / bin / e / usr / bin / e assim porque você sabe quais pacotes estão no sistema.

pjz
fonte
Sim, Jeff, mas e as modificações nos arquivos de configuração? e as opções do dpkg-reconfigure? como sobre nomes de host ... usuários, ações, montagens ... Ver a minha resposta sobre o ddabaixo
elcuco
2

Os fóruns do Ubuntu têm uma boa resposta

  1. Na máquina antiga: $ dpkg --get-selections> software instalado
    • Isso mostra sua lista de aplicativos instalados
  2. Na nova máquina: $ dpkg --set-selections
    • Isso define a nova máquina para instalar os pacotes não instalados no momento na nova máquina.
    • Pode ser interessante verificar se a nova máquina possui alguns pacotes não instalados na máquina antiga, para que você possa encontrar o comando dpkg --get-selections> na nova máquina e use 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 nos fóruns:

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

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

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

depois ao instalar [nova máquina; depois de transferir o packages_list]

sudo dpkg --set-selections < packages_list
sudo apt-get -u dselect-upgrade
Benji
fonte
1

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

Nerdfest
fonte
Acho que este foi o método Cory encontrou
jbdavid
1

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

elcuco
fonte
11
Este. Apenas clone a máquina e mude o nome, é de longe a maneira mais rápida de fazê-lo.
Pjc50 17/07/09
1

Usar o FSArchiver para replicar as máquinas é perfeitamente aceitável. Caso contrário, aqui estão pares de comandos úteis, cuja primeira metade você também pode adicionar ao seu 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 no / var diretamente e alguns arquivos de configuração no / etc indiretamente via debconf. Você obterá o mesmo efeito apenas replicando essas subárvores e executando o aptitude.

Tobu
fonte
0

Acho que o Docker seria a maneira de fazer isso agora - defina os requisitos em um arquivo Docker - você poderá executá-lo em qualquer host do Docker.

Chris Kimpton
fonte