Como transfiro pacotes e configurações instalados de uma distribuição para outra?

15

Estou explorando o aprendizado e o sistema Linux via VirtualBox há alguns meses e decidi que quero torná-lo meu sistema operacional principal e instalá-lo no meu disco rígido. Eu tenho vários arquivos, pacotes e configurações (como alterações em .bashrc) que gostaria de trazer quando o instalar diretamente no meu disco rígido, então como posso fazer isso? Além disso, agora eu estou executando o Ubuntu se eu decidir mudar para uma distribuição semelhante baseada em RHEL, Debian ou RPM, seria o mesmo processo? Que considerações eu teria que levar em consideração, se houver?

Tony
fonte
O Ubuntu é um derivado do Debian. Todos os derivados do Debian são muito semelhantes, pois todos os pacotes têm o mesmo nome, o gerenciamento de pacotes, a configuração etc. e todos muito semelhantes. No entanto, as distribuições da Red Hat como Fedora, CentOS etc não são tão semelhantes em assuntos como gerenciamento de pacotes, embora sejam basicamente o mesmo software. Você deve ser capaz de copiar a maioria das configurações / configurações, etc, de sistemas operacionais da família Debian para aqueles da família RH.
Faheem Mitha

Respostas:

31

O gerenciamento de pacotes é um dos principais diferenciadores entre distribuições. Entre distribuições não relacionadas, você não poderá fazer nada automático. Diferentes distribuições dividem o software em diferentes conjuntos de pacotes e usam nomes diferentes.

Entre máquinas executando a mesma versão da mesma distribuição, é possível obter uma instalação semelhante reproduzindo a lista de pacotes instalados. Em sistemas usando apt, como Debian e derivados (Ubuntu, Mint,…), use apt-clone. Veja Como replico seleções de pacotes instalados de um sistema Debian para outro? (Debian Wheezy) para os comandos exatos. Em poucas palavras, na máquina antiga:

sudo apt-get install apt-clone
apt-clone clone foo

Copie foo.apt-clone.tar.gzpara a nova máquina e execute

sudo apt-get install apt-clone
sudo apt-clone restore foo.apt-clone.tar.gz

apt-clonepode funcionar entre distribuições relacionadas, por exemplo, Debian e Ubuntu. Use em restore-new-distrovez de restorenesse caso. Se isso falhar, use o método manual com dpkg --get-selectionse apt-mark, e mexa na lista de pacotes até que o apt seja satisfeito.

Para suas próprias configurações, é mais simples: basta copiar os arquivos de ponto do diretório inicial. Como regra, configure itens que não estejam relacionados ao hardware da sua conta, e não ao sistema; isso facilitará a cópia para outra máquina.

Gilles 'SO- parar de ser mau'
fonte
A vantagem sobre a segunda resposta abaixo é que esse método é mais rápido porque a Internet lenta é ignorada e o USB 3 mais rápido pode ser usado. Também pode haver outras vantagens ???
WinEunuuchs2Unix
@ WinEunuuchs2Unix A lista de pacotes é de apenas alguns kilobytes. Transferi-lo pela Internet leva menos tempo do que encontrar um dongle USB, muito menos montá-lo e selecionar os arquivos a serem copiados e assim por diante.
Gilles 'SO- stop be evil'
@ Gilles me parva. Eu pensei que foo.apt-clone.tar.gzera uma bola de alcatrão comprimido de todos os binários instalados. Não sabia que era simplesmente uma lista de pacotes instalados. Também inclui os números de versão retidos?
WinEunuuchs2Unix
Muitos erros.... version mismatch: libgl1-mesa-dri, libmirprotobuf3, xserver-xorg-legacy, libgbm1, libmirclient9, xserver-common, libxatracker2, gnome-software, libmircommon7, libwayland-client0, mesa-vdpau-drivers, adobe-flash-properties-gtk, libwayland-server0, xserver-xorg-core, conky-all, libgles2-mesa, libmircore1, libosmesa6, x11proto-core-dev, dkms, libgl1-mesa-glx, adobe-flashplugin, libegl1-mesa, gnome-software-common, libglapi-mesa, libwayland-cursor0, ubuntu-software, libwayland-egl1-mesa Note that you can use --with-dpkg-repack to include those packges in the clone file.
WinEunuuchs2Unix 16/10
@ WinEunuuchs2Unix Acho que o apt-clone inclui todo o estado do dpkg, incluindo os pacotes mantidos. Observe que, se você deseja clonar uma instalação completa, é uma questão completamente diferente: o ponto do apt-clone é quando você tem mais largura de banda entre a máquina 2 e um espelho de pacote do que entre a máquina 1 e a máquina 2 (ou largura de banda menos dispendiosa, em que você não deseja manter a máquina 1 muito ocupada enquanto estiver configurando a máquina 2). O apt-clone funciona melhor quando todas as versões de pacotes na máquina de origem são instaláveis.
Gilles 'SO- stop be evil'
10

Se você estiver na família Debian, sim, poderá transferi-los com muita facilidade. Apenas liste os pacotes atualmente instalados, salve-os em um arquivo e leia esse arquivo para reinstalá-los:

  1. Salve os pacotes instalados no arquivo installed:

    dpkg -l | grep ^ii | awk '{print $2}' > installed
    
  2. Na sua distro baseada no Debian recém-instalada, instale os pacotes salvos:

    sudo apt-get install $(cat installed)
    

Como alternativa, você pode usar uma ferramenta GUI para isso. Mint tem um muito bom chamado mintbackup:

captura de tela mintbackup

Em seguida, a partir da nova instalação:

outra captura de tela do mintbackup

terdon
fonte
Seria dpkg --get-selections | awk '$2 == "install" {print $1}' > instlpkgequivalente? Além disso, que tal usar o yum install alien no RHEL / Fedora / CentOS?
Sergiy Kolodyazhnyy
1
Não apenas reproduza seleções, reproduza a lista de pacotes instalados automaticamente, caso contrário, ela ficará confusa. Existe apt-cloneagora, que automatiza isso. Veja unix.stackexchange.com/questions/191662/…
Gilles 'SO- stop
Também seria útil copiar pacotes retidos. ou seja, o Conky 1.9 é mantido para que o Conky 1.10 não estrague tudo. Parte da resposta estaria no segmento AskUbuntu .
WinEunuuchs2Unix 16/10
1
Esta resposta é mais rápida do que a resposta votada e não possui muitas mensagens de erro como as apt-cloneanteriores. 1/3 desses erros postados no comentário acima.
WinEunuuchs2Unix
Parece ótimo, mas é possível usar o mintbackup no ubuntu 18.04?
WebComer 03/12/19
1

As configurações geralmente são armazenadas em /etc/. etckeeper pode ser útil. Seu principal objetivo é se transformar /etc/em um repositório git, mas também filtra algumas partes que você não gostaria de copiar, se bem entendi. Portanto, se você estiver familiarizado git, pode ser melhor usá-lo etckeeperpara mesclar suas alterações na nova instalação.

Rolf
fonte