Переносимость исполняемого файла на другую машину 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команда простой способ .. Я редактировал свой пост.
— Сепарад Салур
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.