Переносимость исполняемого файла на другую машину Linux

11

Я установил программу Motion на одном компьютере с Linux (M1) и хочу такую ​​же программу на другом (M2).

Существуют различные сборки этой программы, и я забыл, какую я использовал, поэтому я могу сделать прямую копию файла user / bin / motion из M1 и поместить его в user / bin / motion из M2?

Я знаю, где находится файл конфигурации, так что я перейду к нему, но я не уверен, какие драйверы видео использует рабочая версия движения на M2; есть ли способ узнать?

Есть ли способ, которым я могу узнать его зависимости?

Реджи
источник
Просто для протокола, это почти всегда плохая идея. Одним из огромных преимуществ Linux перед другими платформами является управление пакетами. Копирование двоичных файлов в системные каталоги вручную обходит менеджер пакетов. Во многих случаях это просто означает, что обновление двоичного файла должно выполняться вручную, но в некоторых случаях это может привести к значительным проблемам при обновлении системы. TL; DR : используйте ваш менеджер пакетов.
HalosGhost
Звучит логично, так как бы я справился с этой задачей, используя dpkg?
Реджи
Если пакет, предоставляющий нужный инструмент, действительно недоступен для вашей ОС, тогда вы должны создать пакет для него (это менее сложно, чем кажется). Затем вы должны установить пакет с помощью dpkg.
HalosGhost
Я не уверен, что вы имеете в виду. Не могли бы вы сделать пакет из уже установленной программы?
Реджи
Нет, упаковка - это отдельный процесс; но обучение это бесценный навык. Это специфично для дистрибутива (или, по крайней мере, менеджера пакетов).
HalosGhost

Ответы:

12

Для перемещения одной программы на другой компьютер вам необходимо переместить:

1) Исполняемый файл
. Простой способ найти путь к typeкоманде - это команда.

Например: type cal

cal это / usr / bin / cal

2) Библиотечные зависимости
Вы можете найти библиотечные зависимости с помощью lddкоманды, но помните, что если вы скомпилировали программу из исходного кода, архитектура ЦП обоих серверов должна быть одинаковой.

Например: 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) Файлы конфигурации
В новом сервере вам может потребоваться указать программе заново создать файлы конфигурации, поскольку эти файлы конфигурации принадлежат предыдущему серверу.

4) Проверка аппаратной зависимости
Для проверки этого, я думаю, вы должны проверить веб-сайт программы на наличие аппаратного обеспечения или протестировать программу в новой среде.

Сепарад Салур
источник
Как мне найти, где хранится исполняемый файл? Я думаю, что его пользователь / bin / называется движением. Он запускается при загрузке машины, так что может ли это дать мне какие-нибудь подсказки относительно того, где хранится исполняемый файл?
Реджи
@reggie, typeкоманда простой способ .. Я редактировал свой пост.
Сепарад Салур