GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Qué tan portátiles son los binarios compilados en Ubuntu?

El título lo dice todo, en realidad. Pero permítanme especificar la pregunta:

Suponiendo que tuviera que compilar una aplicación que usa libffi, libGL, dlfcn y SDL, ¿dicho binario se ejecutaría en otras distribuciones de Linux con la misma arquitectura, etc.?

La razón por la que pregunto es por el directorio /usr/lib/i386-linux-gnu – Puede que me equivoque, pero supongo que este directorio es algo específico de Ubuntu, ¿no?

Entonces, ¿qué tan portátiles son realmente los binarios compilados en Ubuntu?

Respuesta aceptada:

Cuando compilas un binario, por ejemplo, nginx a partir del código fuente, está construido con información sobre qué versiones de las bibliotecas hay en el sistema que está compilando los archivos binarios. Las bibliotecas a las que se hace referencia, por supuesto, están determinadas por los argumentos (para nginx , esa es la definición de qué módulos desea activar o no). Pero ese binario que creaste (poco probable) se ejecutará en un sistema separado, a menos que sea un sistema configurado de manera idéntica.

Querrá compilar la aplicación en cada sistema individual, es (relativamente) poco probable que pueda transferir la versión compilada a otro sistema que podría no tiene una versión compatible de cada biblioteca.

Nota:mientras puedes obtener un binario para portar a otro sistema Linux, es desaconsejable y generalmente lleva mucho tiempo. Esto se debe a que:
(1) Debe asegurarse de que el sistema al que va a mover su archivo binario esté usando la misma versión de libc que se utilizó para compilar los archivos binarios
(2) Debe asegurarse de que las bibliotecas utilizadas dentro del programa se puedan detectar fácilmente en su sistema y que sean las mismas versiones (o compatibles) que se utilizaron para crear el programa.

... y, por supuesto, otras variables a considerar. A la larga, es más fácil compilar el programa en cada sistema para usarlo que tratar de luchar por la portabilidad.


Ubuntu
  1. Cómo instalar Ubuntu junto con Windows 10

  2. Cómo configurar actualizaciones automáticas en Ubuntu 18.04

  3. Cómo instalar Gradle en Ubuntu 18.04

  4. Cómo instalar Elasticsearch en Ubuntu 20.04

  5. Cómo deshabilitar un servicio en Ubuntu

Cómo reinstalar Ubuntu

Cómo instalar urBackup en Ubuntu 20.04

Cómo instalar Dropbox en Ubuntu 18.04 y 16.04

Cómo instalar AnyDesk en Ubuntu 20.04

Cómo instalar GIMP 2.10 en Ubuntu 20.04

Cómo actualizar Ubuntu 18.04 a Ubuntu 20.04