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
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.
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.
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
O Ubuntu Forums tem um boa resposta
Alguns links adicionais da discussão do fórum:
Existe uma ferramenta chamada ReMasterSys que pode fazer isso por você. consulte http://geekconnection.org/remastersys/
Espero que seja útil.
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.
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".
Por que você não está apenas clonando a máquina usando dd
?
Acho que Docker seria a maneira de fazer isso agora - definir os requisitos em um Dockerfile - você pode executá-lo em qualquer Docker Host.