que puede programas instalar fichero ejecutar correr como binarios binario archivos linux installer

linux - programas - no se puede ejecutar el fichero binario



¿Cómo funcionan los instaladores binarios de Linux(.bin,.sh)? (5)

Es posible que desee comprobar makeself.sh

De las notas de los autores

makeself.sh es un pequeño script de shell que genera un archivo tar.gz autoextraíble de un directorio. El archivo resultante aparece como un script de shell (muchos de ellos tienen un sufijo .run) y se puede iniciar como está. El archivo se descomprimirá en un directorio temporal y se ejecutará un comando arbitrario opcional (por ejemplo, un script de instalación).

Los archivos propios también incluyen sumas de comprobación para la autovalidación de integridad (sumas de comprobación CRC y / o MD5).

El script makeself.sh se usa solo para crear archivos desde un directorio de archivos. El archivo resultante es en realidad un archivo TAR comprimido (usando gzip, bzip2 o compress), con un pequeño script de shell al principio. Este pequeño apéndice realiza todos los pasos para extraer los archivos, ejecutar el comando incrustado y eliminar los archivos temporales cuando todo termina. Todo lo que el usuario tiene que hacer para instalar el software contenido en dicho archivo es "ejecutar" el archivo [que es ejecutar el script]

Estoy tratando de mantener el código de este script tan portátil como sea posible, es decir, no depende de ninguna característica específica de bash y solo llama a los comandos que están instalados en cualquier sistema compatible con UNIX que funcione. Este script, así como los archivos que genera, deben ejecutarse en cualquier formato Unix, con cualquier shell Bourne compatible, siempre que los programas de compresión estén disponibles.

Finalmente, el paquete makeself se presenta como un script autoextraíble llamado makeself.run .

Algunos programas (por ejemplo, el IDE de NetBeans ) envían los instaladores de Linux en archivos .sh. Curioso acerca de cómo exactamente ''empaquetan'' un IDE completo en un ''script de shell'', abrí el archivo en un editor. Vi un código de script de shell de texto sin formato y luego un galimatías aleatorio, que considero que es texto "binario" o no claro.

Me pregunto cómo mezclan scripts simples de shell y luego probablemente llaman a las cosas "no legibles", que serían los binarios.

¿Alguna idea sobre esto?


Sharutils de GNU:

http://www.gnu.org/software/sharutils/

es un conjunto de herramientas para crear archivos de shell y proporciona algunas características adicionales que pueden ser útiles (como sumas de comprobación para garantizar que la carga útil no se dañe en tránsito).

La protección contra modificaciones maliciosas no es realmente factible cuando el producto final debe ser interpretado por el intérprete de comandos: cualquiera que haya entendido la técnica de generación también podría modificar la suma de comprobación.


También hay otro creador de instalador de software comercial (como InstallAnywhere) que básicamente tiene su propia versión de shar / makeself.

Netbeans tiene su propio motor de instalación, y parte de él, que hace que el desempaquetado y el lanzamiento se realicen en el componente de iniciador nativo de NBI: http://wiki.netbeans.org/NBINativeLaunchers

Crea un archivo de shell (script) para Linux / Unix / MacOS y ejecutable nativo para Windows. Puede usar esa herramienta para sus propios proyectos, también.



Básicamente, se trata de un script de shell adjunto a un archivo comprimido de algún tipo, como un archivo tar. sed comando tail o sed en ti mismo (la variable de $0 en el shell de Bourne) para quitar el script de shell en el frente y pasar el resto a tu unarchiver.

Por ejemplo, cree el siguiente script como self-extracting :

#!/bin/sh -e sed -e ''1,/^exit$/d'' "$0" | tar xzf - && ./project/Setup exit

El comando sed anterior borra todas las líneas de la primera línea del archivo a la primera que comienza con "exit" y luego pasa el resto. Si lo que comienza inmediatamente después de la línea de "salida" es un archivo tar, el comando tar lo extraerá. Si eso es exitoso, se ./project/Setup archivo ./project/Setup (presumiblemente extraído del tarball).

Entonces:

mkdir project echo "#!/bin/sh" > project/Setup echo "echo This is the setup script!" >> project/Setup chmod +x project/Setup tar czf - project >> self-extracting

Ahora, si se deshace de su antiguo directorio de project , puede ejecutar self-extracting y extraerá ese archivo tar y ejecutará el script de instalación.