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

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.


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.


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

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

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


Acho que este foi o método Cory encontrou
jbdavid

1

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


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.


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.

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.