GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Quanto sono portatili i binari compilati in Ubuntu?

Il titolo dice tutto, in realtà. Ma permettetemi di specificare la domanda:

Supponendo che dovessi compilare un'applicazione che utilizza libffi, libGL, dlfcn e SDL, il binario potrebbe essere eseguito su altre distribuzioni Linux con la stessa architettura, ecc?

Il motivo per cui lo chiedo è a causa della directory /usr/lib/i386-linux-gnu – Potrei sbagliarmi, ma presumo che questa directory sia qualcosa di piuttosto specifico di Ubuntu, no?

Quindi, quanto sono davvero portabili i binari compilati su Ubuntu?

Risposta accettata:

Quando compili un file binario, diciamo nginx dal codice sorgente, è costruito con informazioni su quali versioni delle librerie sono presenti sul sistema che sta compilando i binari. Le librerie a cui fare riferimento ovviamente sono determinate dagli argomenti (per nginx , questa è la definizione di quali moduli si desidera attivare o meno). Ma quel binario che hai creato (improbabile) verrà eseguito su un sistema separato, a meno che non sia un sistema con configurazione identica.

Dovrai compilare l'applicazione su ogni singolo sistema, è (relativamente) improbabile che sarai in grado di trasferire la versione compilata su un altro sistema che potrebbe non avere una versione compatibile di ogni libreria.

Nota:mentre puoi ottenere un binario da trasferire su un altro sistema Linux, è sconsiderato e di solito richiede tempo. Questo perché:
(1) Devi assicurarti che il sistema in cui sposterai il tuo binario utilizzi la stessa versione di libc che è stato utilizzato per compilare i binari
(2) È necessario assicurarsi che le librerie utilizzate all'interno del programma possano essere rilevate facilmente sul sistema e che siano le stesse (o compatibili) versioni utilizzate per creare il programma.

...e ovviamente altre variabili da considerare. A lungo termine è solo più facile compilare il programma su ogni sistema per usarlo piuttosto che cercare di ottenere la portabilità.


Ubuntu
  1. Come installare Ubuntu insieme a Windows 10

  2. Come configurare gli aggiornamenti automatici su Ubuntu 18.04

  3. Come installare Gradle su Ubuntu 18.04

  4. Come installare Elasticsearch su Ubuntu 20.04

  5. Come disabilitare un servizio in Ubuntu

Come reinstallare Ubuntu

Come installare urBackup su Ubuntu 20.04

Come installare Dropbox su Ubuntu 18.04 e 16.04

Come installare AnyDesk su Ubuntu 20.04

Come installare GIMP 2.10 su Ubuntu 20.04

Come aggiornare Ubuntu 18.04 a Ubuntu 20.04