Quiero obtener detalles sobre el paquete binario y ejecutarlos en Linux. Estoy ejecutando Debian base (Ubuntu / Linux mint) Linux os.
- ¿Cómo construir un paquete binario desde la fuente? ¿Y puedo descargar directamente el paquete binario para aplicaciones (como firefox, etc.) y juegos (como boswars, etc.)?
- Ejecuto algún paquete directo que está en formato "xyz.linux.run" ¿Qué son estos paquetes? ¿Son independientes de las dependencias? o ¿Son paquetes binarios preconstruidos?
- Cómo construirlos que se pueden ejecutar en el sistema operativo Linux directamente "xyz.linux.run" en Linux.
- ¿Cuál es la diferencia entre paquete binario y paquete deb?
Respuestas:
En un sentido estricto, un archivo binario es uno que no está codificado con caracteres como texto legible por humanos. Más coloquialmente, un "binario" se refiere a un archivo compilado, código ejecutable, aunque el archivo en sí puede no ser ejecutable (refiriéndose no tanto a los permisos como a la capacidad de ejecutarse solo; algunos archivos de código binario como las bibliotecas son compilado, pero independientemente de los permisos, no se pueden ejecutar solos). Un binario que se ejecuta como un ejecutable independiente es un "ejecutable", aunque no todos los archivos ejecutables son binarios (y esto se trata de permisos: archivos de texto ejecutables que invocan a un intérprete a través de un shebang como
#!/bin/sh
también los ejecutables).Un paquete binario en un contexto de Linux es un paquete de aplicación que contiene ejecutables (preconstruidos), a diferencia del código fuente.
Tenga en cuenta que esto no significa que un archivo de paquete sea en sí mismo un ejecutable. Un archivo de paquete es un archivo (algo así como a
.zip
) que contiene otros archivos, y un archivo de paquete "binario" es uno que contiene ejecutables específicamente (aunque de nuevo, los ejecutables no son necesariamente binarios verdaderos, y de hecho los paquetes binarios pueden usarse para bibliotecas compiladas que son código binario, pero no ejecutables). Sin embargo, el paquete debe estar desempaquetado para que pueda acceder a estos archivos.Por lo general, eso se encarga de usted mediante un sistema de gestión de paquetes (por ejemplo, apt / dpkg) que descarga el paquete y desempaqueta e instala los binarios que contiene.
No lo hay: los
.deb
paquetes son paquetes binarios, aunque en su lugar hay.deb
s que contienen fuente, estos generalmente se han-src
agregado a su nombre.Esos son generalmente paquetes binarios autoextraíbles; funcionan incorporando una carga útil binaria en un script de shell. "Autoextraíble" significa que no tiene que invocar otra aplicación (como un administrador de paquetes) para descomprimirlos y usarlos. Sin embargo, dado que no funcionan con un administrador de paquetes, resolver sus dependencias puede ser más difícil y, por lo tanto, algunos de estos paquetes usan ejecutables vinculados estáticamente (tienen todas las bibliotecas necesarias incorporadas), lo que desperdicia un poco de memoria cuando se usan .
fuente
Como el resto de su pregunta fue respondida por Ricitos de Oro, voy a analizar la primera parte, cómo construir cosas desde la fuente.
La versión realmente corta es que cuando descargas archivos fuente de Internet, generalmente tienen un archivo Léame asociado, que debería decirte exactamente cómo poner en marcha el programa.
Pero decirle que lea el archivo Léame no responde realmente la pregunta, por lo que, en un sentido básico, puede escribir un programa muy básico que sea
y escriba
gcc helloWorld.c
ygcc
construirá ese binario y generará un programa que escriba "¡Hola Mundo!" a la consola cuando se ejecuta.Bien, ahora que ha creado un programa, ¿no sería una molestia tener que escribir cada archivo fuente que desea compilar cada vez que necesita compilar algo? Para eso
makefiles
están. Si se ejecuta a través de un programa que tiene un montón de archivos de origen por lo general vienen con un makefile o algún otro archivo de automatización de construcción (ant
,Cmake
oautoconf
o algo así).Para construir este tipo de programas, simplemente ejecute
make <build target>
dentro del directorio. Un archivo MAKE para mi programa hello world podría incluir un objetivo llamadohelloworld
que solo compila helloWorld.c. Ejecutaría estomake helloworld
y generaría un binario.Tenga en cuenta que construir cosas desde la fuente puede llevar mucho tiempo y una gran cantidad de memoria (¡ el equipo de Chromium incluso recomienda un segundo disco duro para construir su fuente! ). También tenga en cuenta que cuando construye cosas desde la fuente, tendrá que lidiar con las dependencias, en lugar de que el administrador de paquetes lo haga por usted
fuente