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?


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.


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


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.

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.