Przenośność pliku wykonywalnego na innym komputerze z systemem Linux

11

Zainstalowałem program Motion na jednym komputerze z systemem Linux (M1) i chcę ten sam program na innym (M2).

Istnieją różne kompilacje tego programu i zapomniałem, którego z nich użyłem, więc czy mogę zrobić prostą kopię pliku użytkownika / bin / motion z M1 i umieścić go w użytkowniku / bin / motion M2?

Wiem, gdzie jest plik konfiguracyjny, więc przeniosę go, ale nie jestem pewien, jakich sterowników wideo używa działająca wersja motion na M2; czy jest jakiś sposób, żeby się dowiedzieć?

Czy istnieje sposób, aby dowiedzieć się o jego zależnościach?

reggie
źródło
Dla przypomnienia, to prawie zawsze zły pomysł. Jedną z ogromnych przewag Linuksa nad innymi platformami jest zarządzanie pakietami. Ręczne kopiowanie plików binarnych do katalogów systemowych omija menedżera pakietów. W wielu przypadkach oznacza to po prostu, że aktualizacja pliku binarnego będzie musiała być ręczna, ale w niektórych przypadkach może to powodować poważne problemy z aktualizacjami systemu. TL; DR : użyj menedżera pakietów.
HalosGhost,
Brzmi logicznie, więc jak mam wykonać to zadanie za pomocą dpkg?
reggie
Jeśli pakiet dostarczający pożądane narzędzie nie jest naprawdę dostępny dla twojego systemu operacyjnego, to stworzyłbyś dla niego pakiet (jest to mniej trudne, niż się wydaje). Następnie zainstaluj pakiet z dpkg.
HalosGhost,
Nie jestem pewny co masz na myśli. Czy możesz zrobić pakiet z już zainstalowanego programu?
reggie
Nie, pakowanie to osobny proces; ale uczenie się go jest nieocenioną umiejętnością. Jest to jednak specyficzne dla distro (lub przynajmniej menedżera pakietów).
HalosGhost,

Odpowiedzi:

12

Aby przenieść jeden program na inny komputer, musisz przenieść:

1) Plik wykonywalny
Prostym sposobem na znalezienie ścieżki poleceń jest typepolecenie.

Na przykład: type cal

cal jest / usr / bin / cal

2) Zależności bibliotek Biblioteki
można znaleźć za pomocą lddpolecenia, ale pamiętaj, że jeśli skompilowałeś program ze źródła, architektura procesora na obu serwerach musi być taka sama.

Na przykład: 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) Pliki konfiguracyjne
Na nowym serwerze może być konieczne powiadomienie programu o ponownym utworzeniu plików konfiguracyjnych, ponieważ pliki konfiguracyjne należą do poprzedniego serwera.

4) Sprawdzanie zależności sprzętowej
Aby to sprawdzić, uważam, że musisz sprawdzić stronę internetową programu pod kątem obsługi sprzętu lub przetestować program w nowym środowisku.

Sepahrad Salour
źródło
Jak znaleźć miejsce przechowywania pliku wykonywalnego? Myślę, że jest w user / bin / o nazwie motion. Działa przy starcie komputera, więc czy to może dać mi jakieś wskazówki, gdzie jest przechowywany plik wykonywalny?
reggie
@reggie, typepolecenie jest prostym sposobem .. Zredagowałem swój post.
Sepahrad Salour,