2010-03-10 22 views
32

Estoy desarrollando una pequeña aplicación multiplataforma y necesito algunos consejos sobre cómo instalarla en Linux. Estoy usando InnoSetup en Windows y un paquete de aplicaciones en OSX, pero no tengo idea de cómo instalar mi aplicación en Linux, ¿hay algún creador de instaladores de código abierto para Linux?Crear un instalador para la aplicación Linux

Gracias.

+1

Sólo por el bien de la curiosidad, la respuesta si se quiere, lo que hace? ¿en qué estaba escrito? =) – Marcelo

Respuesta

16

estándar todo el poderoso instalador universalmente disponible en los sistemas * nix (y no solo) es Autotools.

# the user will install like so: 
./configure --with-stuff 
make # if package is from source 
make install 

También puede proporcionar instaladores específicos de distribución como un RPM en RedHat o CentOS o deb para Debian, Ubuntu, aunque una vez que tenga el Makefile ensartado por Autotools, por lo que estas es una brisa.

# the user will install like so: 
yum install your-package-1.0.rpm # on redhat or 
apt-get install your-package-1.0.deb # on debian 

Autotools también conocido como "sistema de la GNU construir" es un poco de miedo en la primera vista, y el nuevo usuario está desconcertado al encontrarse cosas como el antiguo sistema de macros m4 & co. pero nota bene esta es la forma en que la mayoría de la gente lo hace y es bastante fácil una vez que lo dominas.

Learning resources

+1

Sólo tiene que escribir una instalación limpia autotools' ', y dejar que la gente distribución averiguar el resto de sus necesidades por el momento. –

+3

+1 para autotools; solo se necesita un poco de experiencia para usar autotools. Aquí hay un enlace: http://www.lrde.epita.fr/~adl/dl/autotools.pdf – rmk

+0

@rmk quería poner ese pdf en mi respuesta, pero no pudo encontrarlo. – clyfe

2

Si es posible, opte por no requerir un instalador pero usando un enfoque simple de extraer y ejecutar. Esto permitirá al usuario colocar el archivo (s) en el lugar que desee y ejecutarlo.

Pero, usted tiene otras opciones, tales como:

  1. Usando autoconf,
  2. Usando CMake,
  3. El uso de un instalador de Java como IZPack
  4. etc
2

Take un vistazo al InstallJammer. Puedes escribir un único proyecto para tu Windows y tu instalador de Linux, y la compatibilidad con Mac llegará muy pronto.

+0

estoy mirando InstallJammer por el momento, se ve muy prometedora hasta ahora! Gracias. – JWood

+1

Lamentablemente, el proyecto se ha suspendido 'El desarrollo activo de InstallJammer ha sido descontinuado. La fuente está disponible para todas las versiones y siempre lo seguirá siendo, pero sus esfuerzos podrían ser mejor invertidos en un instalador que esté activo en su desarrollo. –

1

Empecé a escribir unistall para situaciones en las que tenía que instalar paquetes binarios en una variedad de distros.

Se trata de hacer algunas cosas:

  • darse cuenta de la gerente de tipo de sistema operativo y el paquete, lo que permite utilizar el gestor de paquetes del sistema para tirar en cualquier dependencia que su programa pueda requerir.Por ejemplo, se sabrá utilizar apt-get install libncurses5-dev si se utiliza Debian/Ubuntu, yum install libncurses-devel si se utiliza RHEL/Fedora/CentOS
  • Entender qué mecanismo se utiliza para actualizar init, si es necesario
  • Crear un desinstalador segura
  • Trabajo en cualquier shell (bash, tablero, zsh, pdksh, ceniza busybox, etc)

dejo el repositorio porque está llena de bits útiles, sin embargo rápidamente me di por vencido en la idea de un programa install sheild tipo para distribuciones de Linux. Descubrirá que es mucho, mucho mejor producir paquetes instalables para los formatos .deb, .rpm y (posiblemente) slackware .tgz.

Esto puede ser integrado en su sistema de construcción con una herramienta como checkinstall. Tenga en cuenta que los paquetes que checkinstall genera no siempre son perfectos, de acuerdo con las estrictas pautas de pelusas establecidas por Debian y otros, sin embargo, los paquetes funcionan bien.

La mejor experiencia de instalación se puede proporcionar a un usuario está permitiendo que se instalen (y actualizar) su software usando su gestor de paquetes nativo.

Cuestiones relacionadas