Inicio arrow Solo Mac arrow Gestión de software en MacOSX
21 de noviembre de 2008
 
 
Gestión de software en MacOSX PDF Imprimir E-mail
Valoración del Usuario: / 0
PobreMejor 
Gestión de software en MacOSX

PaqueteComo todos habréis comprobado, en el OSX, muchos programas se instalan por medio de paquetes (.pkg). Para los que sepan de Unix/GNU Linux, esto les sonará un poco más, pues en estas distribuciones se suele operar con rpms, debs, etc. que emulan y en mi modesta opinión, superan al formato de Apple (heredado de Next, todo sea dicho).

Cuando un paquete es instalado con el instalador del OSX, muchos archivos son copiados a lo largo de todo el árbol de directorios. Los paquetes más sencillos sólo contendrán un aplicación que se copiará sin mayor problema en /Applications. Pero otros instalan StartupItems, extensiones del núcleo, e incluso realizan cambios en archivos del sistema o arrancan programas durante y al finalizar la instalación.

Durante la instalación se crea otro paquete gemelo que se almacena en /Library/Receipts. Estos paquetes contienen información y archivos necesarios para la instalación. Para los que vengáis de Debian como yo, esto es como hablar del /var/cache/apt. A estos paquetes los llamaremos recetas.

Las recetas pueden borrarse, pero como no ocupan mucho espacio, lo mejor es dejarlas. Mi directorio de recetas ocupa 55Mb. Yo voy borrando sólo las de los programas que ya no utilizo.

El sistema de paquetería de Apple se complica un poco más en metapaquetes (.mpkg), definiciones de paquete.pmsp) y definiciones de metapaquete (.pmsm), pero no vamos a entrar en ellas. Tan sólo decir que un metapaquete es un paquete de paquetes. (

Para ver los contenidos de un paquete, basta con hacer Click+Ctrl o pulsar con el botón derecho.

Podemos crear nuestros propios paquetes con nuestro propio software, documentos, etc., aunque normalmente son sólo los desarrolladores los que utilizan este sistema para transportar información.

Para crear paquetes yo utilzo el PackageMaker que viene con las DeveloperTools:
/Developer/Applications/Utilities/PackageMaker.app. Facilita bastante la tarea, pero el paquete ha de completarse casi siempre manualmente.

PackageMaker1

El PackageMaker básicamente consta de 5 pestañas y sólo dos de ellas son las complicadas, aunque por el contenido sean las más sencillas. Estas dos pestañas son las Files y Resources. En ellas hay que especificar la ruta hasta las carpetas que contengan el contenido y los recursos del paquete, de los que pasamos a hablar ahora mismo.

PackageMaker2

La carpeta de contenidos debe contener, valga la redundancia, todos los archivos del paquete ordenados en los directorios necesarios para que reproduzcan la estructura que debe quedar cuando el proceso de instalación haya terminado. Por ejemplo, si deseamos instalar Mi Programa.app en /Applications, deberíamos crear una estructura de directorios como esta:

Contenidos de mi Paquete/Applications/Mi Programa.app

Y decirle al PackageMaker que mi directorio raíz de contenidos es Contenidos de mi Paquete.

El directorio de Resources es más complicado para ser discutido en profundidad aquí. La ayuda de PackageMaker es bastante completa. Debe contener ciertos archivos como un background.jpg para la imagen de fondo del instalador, un Idioma.lproj con archivos ReadMe.rtf, ReadMe.txt y ReadMe.html entre otros para cada idioma. También debe contener tres shell scripts: preinstall, postinstall y postflight. El primero contiene instrucciones que deben ejecutarse antes de la instalación, el segundo instrucciones para después de esta y el tercero, comandos de inicio (para arrancar el programa instalado, activar un servicio o mostrar un mensaje de confirmación al usuario, etc).

¡Sin embargo no hay ningún uninstall! Esto es algo que no para de asombrarme. ¡¡El sistema de paquetes del Sistema operativo más avanzado del mundo, no se ocupa de la desinstalación de sus propios programas!!

Las pestañas de Info, Description y Version del PackageMaker son más fáciles de entender. Contienen opciones como si debemos pedirle al usuario que reinicie, si debemos solicitar la contraseña de administrador, si el usuario puede especificar la posición en el disco de los programas a instalar, la versión del programa, una breve descripción, etc.

PackageMaker3

Cuando hemos introducido todas las opciones y tenemos los directorios preparados podemos proceder a generar al paquete. Si inspeccionamos luego el paquete generado desde el Finder, veremos varios archivos, entre ellos un Archive.pax y un Archive.bom. El primero contiene los contenidos del paquete (lo que vamos a instalar) comprimidos y el segundo (Bill Of Materials) una lista de los ficheros y sus permisos.

También podemos grabar el trabajo hecho en una definición de paquete (.pmsp) desde el PackageMaker.

Por último decir que podemos invocar al instalador desde el terminal con el comando

$ installer -pkg paquete.pkg -target /Volumes/disco-donde-instalar.

Packagelint es un script en Perl que chequea la integridad y los permisos de un paquete comparándolo con otro que sepamos que está bien construido. Concretamente ha de compararse con un archivo .bom en condiciones.

Más sobre paquetes aquí y aquí.


Fuente:

Technorati Tags:
>>

< Anterior   Próximo >



 
Top!
Top!