Portabilidade de um executável para outra máquina Linux

11

Instalei o programa Motion em uma máquina Linux (M1) e quero o mesmo programa em outra (M2).

Existem várias compilações deste programa, e eu esqueci qual usei, então posso fazer uma cópia direta do arquivo user / bin / motion do M1 e colocá-lo no user / bin / motion do M2?

Eu sei onde está o arquivo de configuração, então eu irei adiante, mas não tenho certeza de quais drivers de vídeo a versão funcional do motion usa no M2; existe alguma maneira de descobrir?

Existe uma maneira de descobrir suas dependências?

reggie
fonte
Apenas para constar, isso quase sempre é uma má ideia. Uma das grandes vantagens do Linux sobre outras plataformas é o gerenciamento de pacotes. A cópia manual de binários nos diretórios do sistema contorna o gerenciador de pacotes. Em muitos casos, isso significa apenas que a atualização do binário precisará ser manual, mas, em alguns casos, isso pode causar problemas significativos nas atualizações do sistema. TL; DR : use seu gerenciador de pacotes.
HalosGhost
Parece lógico, então como eu faria essa tarefa usando o dpkg?
reggie
Se o pacote que fornece a ferramenta desejada realmente não estiver disponível para o seu sistema operacional, você poderá criar um pacote para ele (é menos difícil do que parece). Em seguida, você instalaria o pacote com o dpkg.
HalosGhost 10/10
Não sei bem o que você quer dizer. Você poderia criar um pacote a partir de um programa já instalado?
reggie
Não, a embalagem é um processo separado; mas aprender é uma habilidade inestimável. É específico de distro- (ou pelo menos gerenciador de pacotes).
HalosGhost

Respostas:

12

Para mover um programa para outro computador, você deve mover:

1) Arquivo executável
Uma maneira simples de encontrar o caminho dos comandos é o typecomando.

Por exemplo: type cal

cal é / usr / bin / cal

2) Dependências da biblioteca
Você pode encontrar dependências da biblioteca com o lddcomando Mas lembre-se, se você compilou um programa da fonte, a arquitetura da CPU dos dois servidores deve ser a mesma.

Por exemplo: ldd date

linux-vdso.so.1 => (0x00007fff83dff000)
librt.so.1 => /lib64/librt.so.1 (0x0000003784e00000)
libc.so.6 => /lib64/libc.so.6 (0x0000003783e00000)
libpthread. so.0 => /lib64/libpthread.so.0 (0x0000003784200000)
/lib64/ld-linux-x86-64.so.2 (0x0000003783a00000)

3) Arquivos de configuração
No novo servidor, pode ser necessário informar o programa para recriar os arquivos de configuração, porque esses arquivos de configuração pertencem ao servidor anterior.

4) Verificando a dependência do hardware
Para verificar isso, acho que você precisa verificar o site do programa para suporte a hardwares ou testar o programa em um novo ambiente.

Sepahrad Salour
fonte
Como localizo onde o executável está armazenado? Eu acho que é no usuário / bin / chamado movimento. Ele roda na inicialização da máquina, então isso poderia me dar alguma pista sobre onde o executável está armazenado?
reggie
Reggie @, o typecomando é uma maneira simples .. Eu editei o meu post.
Sepahrad Salour 10/10