Copiar binários Linux de um sistema Linux para outro usando o Exodus?
Transferir binários Linux de um sistema para outro pode ser uma tarefa desafiadora e demorada, especialmente quando você precisa instalar o software em várias máquinas. Porém, existe uma ferramenta disponível que simplifica esse processo - Exodus. É uma ferramenta poderosa que permite exportar e importar pacotes de software, incluindo binários e suas dependências, de um sistema Linux para outro.
Neste artigo, exploraremos as etapas envolvidas no uso do Exodus para copiar binários do Linux de um sistema para outro. Abordaremos etapas essenciais, como identificar a localização de binários e dependências, criar um arquivo compactado e instalar software no sistema de destino. Além disso, discutiremos possíveis problemas que podem surgir ao copiar binários em diferentes arquiteturas e forneceremos dicas úteis para resolvê-los.
Quer você seja um administrador de sistema responsável pelo gerenciamento de vários sistemas Linux ou um desenvolvedor que deseja distribuir atualizações de software, o Exodus pode ser uma ferramenta inestimável em seu kit de ferramentas. Com seus recursos poderosos e facilidade de uso, ele pode ajudar você a economizar tempo e esforço e, ao mesmo tempo, garantir que seu software seja instalado corretamente em todos os sistemas de destino.
Para usar o Exodus, você precisa instalar a ferramenta nos sistemas de origem e de destino. Normalmente, o Exodus não está incluído na maioria dos sistemas Linux por padrão, então você precisa instalá-lo usando o gerenciador de pacotes da sua distribuição. Por exemplo, você pode instalar o Exodus executando o comando −
sudo apt-get install exodus
Esta é a aparência da saída do terminal Linux ao executar o comando sudo apt-get install exodus -
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libqt5core5a libqt5dbus5 libqt5gui5 libqt5network5 libqt5widgets5 libssl1.1 libxml2 exodus-gui
Suggested packages:
exodus-doc exodus-tests
The following NEW packages will be installed:
exodus exodus-gui libqt5core5a libqt5dbus5 libqt5gui5 libqt5network5 libqt5widgets5 libssl1.1 libxml2
0 upgraded, 9 newly installed, 0 to remove and 0 not upgraded.
Need to get 6,872 kB of archives.
After this operation, 23.2 MB of additional disk space will be used.
Do you want to continue? [Y/n]
A saída mostra que o pacote exodus será instalado. O usuário é solicitado a confirmar a instalação digitando “Y” ou “n” no terminal.
Depois de instalar o Exodus em ambos os sistemas, você estará pronto para exportar e importar pacotes de software usando a ferramenta.
Exportando binários Linux usando Exodus
Para utilizar o Exodus para exportar um pacote de software, você deve inicialmente localizar o arquivo binário e suas dependências correspondentes no sistema de origem. Depois de identificar sua localização, você pode usar o comando exodus export para gerar um arquivo do pacote de software.
Por exemplo, suponha que você pretenda exportar o arquivo binário htop do sistema de origem. Nesse caso, você pode executar o seguinte comando para iniciar o processo de exportação:
sudo exodus export /usr/bin/htop
Depois de executar a saída do comando pode ficar assim -
Exporting /usr/bin/htop...
Creating Exodus container...
Exporting binary...
Creating tarball...
Copying tarball to host...
Export complete.
The Exodus container has been saved to:
/tmp/exodus-htop.tar.gz
Após executar o comando, um novo arquivo denominado htop.tar.gz será gerado no diretório atual. O arquivo compactado abrange o binário htop junto com todas as dependências necessárias para sua operação. Isso permite uma transferência perfeita do pacote de software para outro sistema Linux.
Importando binários Linux usando Exodus
Depois de transferir o arquivo compactado para o sistema de destino, você pode prosseguir com a importação do pacote de software usando o comando de importação do Exodus. Este comando extrai o conteúdo do arquivo archive e instala o pacote de software no sistema de destino.
Como ilustração, suponha que você transferiu o arquivo htop.tar.gz para o sistema de destino. Para importar o pacote de software de um sistema para outro, execute o seguinte comando:
sudo exodus import htop.tar.gz
A saída do comando exodus é semelhante a esta -
Importing package htop.tar.gz...
Extracting package files...
Installing package...
Package htop has been imported successfully.
Isso extrairá o binário htop e quaisquer dependências do arquivo e os instalará nos diretórios apropriados no sistema de destino.
Copiando binários do Linux em diferentes arquiteturas
Ao transferir binários Linux entre sistemas com arquiteturas diferentes, é essencial confirmar se o pacote de software pode funcionar na arquitetura de destino. Também pode ser necessário transferir manualmente quaisquer dependências não incluídas no pacote de software.
Por exemplo, vamos supor que você pretenda copiar o binário nginx de um sistema x86 para um sistema ARM. Para determinar a arquitetura do binário nginx, você pode usar o comando file conforme demonstrado abaixo:
$ file nginx
Saída do comando nginx -
nginx: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=9c491f7eb0025b843888971f371d12a1a262fe97, stripped
De acordo com a saída, o binário nginx foi projetado para ser executado como um executável de 64 bits em uma arquitetura x86-64. Além disso, este binário não será apropriado para um sistema ARM devido a diferenças no conjunto de comandos usado pelos processadores ARM.
Às vezes você precisa copiar manualmente quaisquer dependências e alguns arquivos que não estão incluídos no pacote de software. Para fazer isso, você pode identificar as dependências ou arquivos importantes exigidos pelo nginx usando o comando ldd conforme mostrado abaixo −
$ ldd nginx
A saída do comando ldd nginx pode variar dependendo do sistema e da versão do nginx instalada, mas aqui está um exemplo de saída -
linux-vdso.so.1 (0x00007ffc9f5c4000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f9a5a41d000)
libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f9a5a1e4000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f9a59e63000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9a59acc000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f9a598b5000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9a594f2000)
/lib64/ld-linux-x86-64.so.2 (0x00007f9a5a89d000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9a592ee000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f9a590d4000)
A saída mostra as bibliotecas compartilhadas das quais o nginx depende, incluindo seus caminhos e endereços de memória.
Conclusão
Concluindo, o Exodus é uma ferramenta útil para copiar binários do Linux entre sistemas. Oferece um repositório centralizado para pacotes de software, permitindo fácil instalação e atualizações em vários sistemas ao mesmo tempo. O Exodus suporta a importação de pacotes de várias fontes, lidando com dependências e conflitos automaticamente, e ainda permite a cópia de binários em diferentes plataformas de hardware.
Porém, é necessário verificar se as distribuições e versões de software são as mesmas antes de copiar binários entre sistemas para evitar problemas de compatibilidade. Se os sistemas possuírem arquiteturas diferentes, poderá ser necessária a cópia manual das dependências. Com as precauções corretas, o Exodus pode agilizar as tarefas de gerenciamento de software, melhorar a estabilidade e a segurança do sistema e economizar tempo e esforço no gerenciamento de software em vários sistemas. No geral, o Exodus é uma ferramenta útil para copiar binários do Linux, desde que sejam tomadas as precauções necessárias.