Portabilità di un eseguibile su un'altra macchina Linux


11

Ho installato il programma Motion su una macchina Linux (M1) e voglio lo stesso programma su un'altra (M2).

Esistono varie build di questo programma e ho dimenticato quale ho usato, quindi posso fare una copia diretta del file utente / bin / motion da M1 e posizionarlo nell'utente / bin / motion di M2?

So dove si trova il file di configurazione, quindi lo sposterò attraverso, ma non sono sicuro su quali driver video utilizzi la versione funzionante di motion su M2; c'è un modo per scoprirlo?

C'è un modo in cui posso scoprire le sue dipendenze?


Solo per la cronaca, questa è quasi sempre una cattiva idea. Uno dei grandi vantaggi di Linux rispetto ad altre piattaforme è la gestione dei pacchetti. La copia manuale dei file binari nelle directory di sistema elude il gestore pacchetti. In molti casi, ciò significa che l'aggiornamento del file binario dovrà essere manuale, ma in alcuni casi ciò può causare aggiornamenti significativi del sistema. TL; DR : usa il tuo gestore pacchetti.
HalosGhost,

Sembra logico, quindi come potrei fare questo compito usando dpkg?
Reggie,

Se il pacchetto che fornisce lo strumento desiderato non è veramente disponibile per il tuo sistema operativo, allora creeresti un pacchetto (è meno difficile di quanto sembri). Quindi, installeresti il ​​pacchetto con dpkg.
HalosGhost,

Non sono sicuro di cosa intendi. Potresti creare un pacchetto da un programma già installato?
Reggie,

No, l'imballaggio è un processo separato; ma impararlo è un'abilità preziosa. È tuttavia distro- (o almeno gestore di pacchetti).
HalosGhost,

Risposte:


12

Per spostare un programma su un altro computer devi spostare:

1) File eseguibile
Un modo semplice per trovare il percorso dei comandi è il typecomando.

Per esempio: type cal

cal è / usr / bin / cal

2) Dipendenze delle librerie
È possibile trovare le dipendenze delle librerie con il lddcomando, ma ricordare se è stato compilato un programma dall'origine l'architettura della CPU di entrambi i server deve essere la stessa.

Per esempio: 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) File di configurazione
Nel nuovo server potrebbe essere necessario indicare al programma di ricreare i file di configurazione poiché tali file di configurazione appartengono al server precedente.

4) Verifica della dipendenza hardware
Per verificare ciò, penso che sia necessario controllare il sito Web del programma per supportare hardware o testare il programma in un nuovo ambiente.


Come trovo dove è archiviato l'eseguibile? Penso che sia in user / bin / chiamato motion. Funziona all'avvio del computer, quindi questo potrebbe darmi qualche indizio su dove sia archiviato l'eseguibile?
Reggie,

@reggie, il typecomando è un modo semplice .. Ho modificato il mio post.
Sepahrad Salour,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.