Home Wiki > OSI
Sign up | Login

OSI

tagline: De openSUSE

Contenido

OpenSUSE Installer (Concepto)

Este documento solo es conceptual, y no forma parte oficial del proyecto OpenSUSE, por lo que no debe de
usarse o implementarse. Puede estar sujeto a cualquier cambio en cualquier momento.

Casos de uso

  • Permite al usuario la instalación de paquetes de manera totalmente fuera de línea
  • El usuario solo necesita descargarse un solo archivo
  • Emula el concepto de instalación de los MSI de Microsoft Windows, con lo que el usuario no tiene que aprender un concepto nuevo de instalación. A los usuarios que vienen de la plataforma de Microsoft, les es costoso entender el concepto de Repositorio y paquetes rpm.
  • Aprovecha las tecnologías ya existentes y actuales de openSUSE en gestión de paquetes, lo que le permite integrarse de manera trasparente al sistema normal de gestión de paquetes.

Ámbito

  • El ámbito es la automatización la instalación de aplicaciones o grupo de aplicaciones utilizando el framework One Click Install mediante un repositorio temporal local con todos los paquetes y dependencias necesarias de manera trasparente al usuario.
  • Fuera del ámbito queda cualquier gestión del tratamiento de paquetes y de repositorios de la distribución

Requisitos

  • Las acciones tienen que ser realizadas con un solo click por parte del usuario
  • Debe de estar compuesto por un solo archivo y que su ejecución sea independiente en lo máximo posible de lo que tenga instalado el usuario
  • Debe de respetar la seguridad establecida en la instalación de paquetes por la distribución
  • Debe de ser capaz de resolver los conflictos entre paquetes

Dependencias

  • Requiere de la tecnología One Click Install

Propuesta del estandard

Los archivos de instalación con extensión OSI (.osi), serán archivos que estarán compuestos por dos partes:

  • Shell Script. Una parte shell scritp encargada de desacoplar los archivos necesarios e invocar la instalación mediante One Click Install de openSUSE
  • Paquete comprimido. Esta parte contendrá todos los archivos e información necesaria para que se pueda realizar la instalación mediante One Click Install.

Shell Script

#!/bin/bash
 PATH=/usr/bin:/bin 
 umask 022 

 TARGET_NAME="OSI"`date +%H%M%s` 

 if [ "`uname -s`" = "Linux" ]; then 
     tail_args="-n" 
 fi 

 trap 'rm -rf /tmp/$TARGET_NAME; exit 1' HUP INT QUIT TERM 

 echo "Unpacking..." 

 mkdir -p "/tmp/$TARGET_NAME" 

 tail ${tail_args} +36 "$0" > "/tmp/$TARGET_NAME.tar.gz" 

 cd "/tmp/$TARGET_NAME" 

 tar xvfz "/tmp/$TARGET_NAME.tar.gz" 

 cd root 

 sed -i "s/\${REPO_URL}/file:\/\/\/tmp\/$TARGET_NAME\/root\/repo\//" installer.ymp

 /bin/bash /sbin/yast2 OneClickInstallUI /tmp/$TARGET_NAME/root/installer.ymp 

 echo "Deleting temporary files..." 

 cd / 

 rm -rf "/tmp/$TARGET_NAME"* 

 exit 0

Este archivo de script será concatenado con el paquete comprimido descrito a continuación, con lo que quedará un único archivo resultante y que será ejecutable.

Paquete Comprimido

El paquete comprimido, en formato tar.gz, contendrá la siguiente estructura de directorios y archivos:

  • root
    • repo
      • Archivos RPMs
      • repodata (Carpeta de datos creada con createrepo)
    • installer.ymp (Archivo One Click Install)

Carpeta root/repo

Esta carpeta tendrá todos los archivos RPMs necesarios para la posible instalación de la aplicación o grupo de aplicaciones que se desea instalar. Se ha de tener en cuenta que se parte de la base que el usuario o bien dispone de el DVD de instalación o de el repositorio standard de instalación de openSUSE, con lo que hay ciertos paquetes básicos que no será necesario incluir.

Esta carpeta, una vez contenga todos los archivos RPMs necesarios, se le creará la carpeta repodata utilizando la herramienta “createrepo” que posee openSUSE.


installer.ymp

Este archivo será un XML que contendrá la información necesaria descrita según el Standard One Click Install. La única diferencia, es que solo tendrá un único repositorio, cuya URI será un comodín:

${REPO_URL}

El Shell Script de ejecución de OSI será el encargado de sustituir este comodín por la dirección final donde esté descomprimido el repositorio.

¡Atención! Queda pendiente la posibilidad de indicar mediante el .ymp que el repositorio es algo temporal 
y que no debe bajo ningún concepto ser agregado permanentemente.

Una vez el Shell Script llame a One Click Install, toda acción de funcionamiento queda relegada a la propia tecnología One Click Install.

Al finalizar la instalación mediante One Click Install, el repositorio temporal será eliminado de manera automática.

Según últimas noticias sobre la tecnología One Click Install, esta misma no solo será usada para la
instalación, sino que si detecta que un paquete ya está instalado permitirá la desinstalación. Se espera
aprovechar esta característica para OSI, permitiendo así ser a la tecnología aquí planteada un sistema
sencillo para la instalación/desinstalación.

Ejemplo

Se puede descargar un OSI de ejemplo de la siguiente dirección:

http://dl.getdropbox.com/u/363315/MozillaFirefox.osi

TODO

  • Que One Click Install permita indicar que el repositorio que se propone es temporal y no debe agregarse bajo ningún concepto de manera permanente.
  • Crear un Shell Script que genere los paquetes OSI de manera automática
  • Para el punto anterior, sería interesante que zypper posea una opción de “Bajar solo”(download-only) y que baje el RPM de la aplicación indicada y sus dependencias.