Portabilität einer ausführbaren Datei auf einen anderen Linux-Computer

11

Ich habe das Programm Motion auf einem Linux-Computer (M1) installiert und möchte dasselbe Programm auf einem anderen (M2).

Es gibt verschiedene Builds dieses Programms, und ich habe vergessen, welche ich verwendet habe. Kann ich also eine direkte Kopie der Datei user / bin / motion von M1 erstellen und in den Benutzer / bin / motion von M2 einfügen?

Ich weiß, wo sich die Konfigurationsdatei befindet, daher werde ich sie verschieben, bin mir jedoch nicht sicher, welche Videotreiber die Arbeitsversion von Motion auf M2 verwendet. Gibt es eine Möglichkeit, dies herauszufinden?

Gibt es eine Möglichkeit, die Abhängigkeiten herauszufinden?

Reggie
quelle
Nur fürs Protokoll, das ist fast immer eine schlechte Idee. Einer der großen Vorteile von Linux gegenüber anderen Plattformen ist die Paketverwaltung. Das manuelle Kopieren von Binärdateien in Systemverzeichnisse umgeht den Paketmanager. In vielen Fällen bedeutet dies nur, dass die Aktualisierung der Binärdatei manuell erfolgen muss. In einigen Fällen kann dies jedoch zu erheblichen Problemen bei der Systemaktualisierung führen. TL; DR : Verwenden Sie Ihren Paketmanager.
HalosGhost
Klingt logisch. Wie würde ich diese Aufgabe mit dpkg erledigen?
Reggie
Wenn das Paket mit dem gewünschten Tool für Ihr Betriebssystem nicht verfügbar ist, erstellen Sie ein Paket dafür (es ist weniger schwierig als es sich anhört). Dann würden Sie das Paket mit dpkg installieren.
HalosGhost
Ich bin mir nicht sicher was du meinst. Könnten Sie ein Paket aus einem bereits installierten Programm erstellen?
Reggie
Nein, die Verpackung ist ein separater Prozess. Aber es zu lernen ist eine unschätzbare Fähigkeit. Es ist jedoch distro- (oder zumindest Paketmanager) -spezifisch.
HalosGhost

Antworten:

12

Um ein Programm auf einen anderen Computer zu verschieben, müssen Sie Folgendes verschieben:

1) Ausführbare Datei
Eine einfache Möglichkeit, den typeBefehlspfad zu finden, ist der Befehl.

Beispielsweise: type cal

cal ist / usr / bin / cal

2) Bibliotheksabhängigkeiten
Sie können Bibliotheksabhängigkeiten mit dem lddBefehl finden. Denken Sie jedoch daran, dass die CPU-Architektur beider Server identisch sein muss, wenn Sie ein Programm aus dem Quellcode kompiliert haben.

Beispielsweise: 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) Konfigurationsdateien
Auf einem neuen Server müssen Sie das Programm möglicherweise anweisen, die Konfigurationsdateien neu zu erstellen, da diese Konfigurationsdateien zum vorherigen Server gehören.

4) Überprüfen der Hardwareabhängigkeit
Um dies zu überprüfen, müssen Sie meiner Meinung nach die Website des Programms auf die Unterstützung von Hardware überprüfen oder das Programm in einer neuen Umgebung testen.

Sepahrad Salour
quelle
Wie finde ich, wo die ausführbare Datei gespeichert ist? Ich denke, es ist in Benutzer / bin / genannt Bewegung. Es läuft beim Maschinenstart. Kann ich also Hinweise darauf erhalten, wo die ausführbare Datei gespeichert ist?
Reggie
@reggie, typeBefehl ist ein einfacher Weg .. Ich habe meinen Beitrag bearbeitet.
Sepahrad Salour