Los bundles de Chakra están a medio camino entre el concepto de bundles de Mac OS X y el concepto de dependencia de paquete. Esto es, los bundles son aplicaciones instalables con un sólo clic, o desde un punto de vista más técnico también se podría decir que son sistemas de ficheros automontables que contienen todos los archivos necesarios para ejecutar una aplicación que no está en los repositorios y automatizan la instalación de las dependencias que necesiten y que sí estén en los repositorios. Los bundles de Chakra también almacenan dentro del propio bundle los archivos de configuración del usuario relacionados con el bundle, asegurando así la limpieza del directorio home del usuario.
Tipos de bundles
Chakra tiene tres tipos diferentes de bundles: bundles lanzables, instalables y configurables. Todos ellos son bundles de software, pero se diferencian en la manera en que interactuan con el usuario.Bundles lanzables
Los bundles lanzables son bundles que se ejecutan al hacer clic sobre ellos.Para crear un bundle lanzable, necesitará ciertos archivos. El archivo principal es
PKGINFO
, que contiene toda la información necesaria para ejecutar el bundle. PKGINFO
es un archivo de texto con varias variables, una por línea. Bundles lanzables UnionFS Chrooted
Éste tipo de bundle lanzable guarda sus datos de configuración en su interior. Por ejemplo, puede modificar la configuración de una aplicación y pasarsela modificada a sus amigos. Se trata de una imagen corriente de un sistema de ficheros ext4 con permisos de lectura/escritura, que contiene los siguientes archivos:apps.sqfs
- Una imagen de un sistema de ficheros comprimido mediante squashfs/lzma que contiene todos los binarios, librerías, o ficheros necesitados o determinados por la aplicación empaquetada en el blunde.
data.ext4
- Un sistema de ficheros ext4 corriente con permisos de lectura/escritura, que será montado en el directorio 'home/default' de chroot. Aquí es donde la aplicación guarda sus datos de configuración. Por ejemplo: GIMP guarda las posiciones de las ventanas, las brochas agregadas, los gradientes, etc.
PKGINFO
.desktop
.svg
Bundles lanzables nativos
Un sistema de ficheros comprimido mediante squashfs/lzma, que contiene lo siguiente:PKGINFO
.desktop
.svg
/usr
, /opt/foo
, special_launcher.sh
. Bundles instalables
Algunas aplicaciones tienen acuerdos de licencia especiales (filosoficos, politicos, o de cualquier otro tipo), y en consecuencia tenemos que pedirle al usuario permiso para ejecutar la aplicación contenida en el bundle. También puede haber algunas otras aplicaciones que usted quiera instalar realmente en el sistema anfitrión. Por lo tanto, cuando haga clic sobre un bundle instalable se le mostrará un diálogo que le solicitará la contraseña del administrador, seguido del habitual asistente siguiente-siguiente. También puede preguntarle si desea aceptar las licencias, o en que localización desea instalar la aplicación.Bundles configurables
Algunas veces usted puede necesitar configurar algunos (o muchos) sistemas de una cierta forma, ésto es para lo que sirven los bundles configurables. PEAR/LAMP/CUSTOMIZED_BUILD_5/whatever PKGINFO
Éstas son todas las variables que puede tener un archivo PKGINFO
: name
- Su valor será el nombre del bundle creado.
version
- Su valor será la versión del bundle creado.
desktop
- Su valor define el nombre del archivo escritorio dentro de la carpeta principal del bundle.
packager
- Nombre y email del empaquetador del bundle.
description
- Es la descripción del bundle. No es multi-línea, así que utilice '\n' si la necesita.
screenshot
- Una URL o referencia a una captura de pantalla local (dentro del bundle) de la aplicación empaquetada en el bundle.
url
- Una referencia web para la aplicación empaquetada en el bundle.
icon
- Su valor define el nombre del icono dentro de la carpeta principal.
type
- Es el tipo de bundle.
deps
- Una lista de nombres de paquetes necesitados por el bundle y sus dependencias. Éstos paquetes deben estar disponibles en los Repositorios de Chakra. En esencia, ésta variable no debería ser utilizada, a menos que sepa lo que está haciendo. (Querrá controlar los binarios por razones de seguridad).
pkgz
- Es una lista de los binarios precompilados (paquetes de distribución) a incluir en el bundle. Normalmente serán la propia aplicación y todos los binarios, librerías, ect que se necesiten.
build
- Ésta es la lista completa de paquetes a construir. Además, cualquier dependencia de make que no se encuentre en nuestros repositorios debe tener el orden correcto de construcción, y se necesita una carpeta con el archivo
PKGBUILD
relacionado para cada aplicación que aparezca en ésta lista. env
- Se utiliza para pasar variables de entorno personalizadas al chroot union. No es utilizada como las variables normales. En su lugar, reemplaza el
=
con un==
y las variables están separadas por,,,
tal como se muestra en el siguiente ejemplo:env==PATH=/alguna/ruta:$PATH:$HOME/bin,,,DEBUGMODE=1
exec
- Su valor define donde está ubicado el archivo binario de la aplicación, normalmente será en
/usr/bin
o/opt/bin
. Es relativo al directorio real de ejecución del bundle,$HOME/.cinstall/
.
haslicense
- Si su valor es
true
, le preguntará al usuario si desea aceptar la licencia especificada porlicensefile
. licensefile
- Un archivo de texto de 80 carácteres de ancho.
askinstallpath
- Si su valor es
true
, le preguntará al usuario donde desea instalar los datos de la aplicación. pixmap
- Un mapa de píxeles (una imagen) de 160 pixeles de ancho, y 450 pixeles de alto, utilizado para especificar una imagen personal para la instalación.
PKGINFO
para un bundle lanzable: version=3.3.3 release=3 description=Un cliente FTP, FTPS, y SFTP rápido y seguro url=http://filezilla-project.org/ packager=Manuel Tortosatype=Launcher name=filezilla desktop=filezilla.desktop icon=filezilla.png deps=dbus-core xdg-utils libidn hicolor-icon-theme gtk2 gstreamer0.10-base pkgz=wxgtk filezilla build=libgnomecups libgnomeprint perl-xml-simple icon-naming-utils gnome-icon-theme libgnomecanvas libgnomeprintui ccache wxgtk filezilla env== exec=/usr/bin/filezilla
No hay comentarios:
Publicar un comentario