OpenOffice.org 1.9.x en Slackware Por: Miguel Manuel Meléndez Gómez (miguelmmg en yahoo com mx) Versión del documento: 20050720-1 Descripción Este documento describe el procedimiento para instalar OpenOffice.org 1.9.x en Slackware y opcionalmente generar un archivo instalable .tgz compatible con el sistema de paquetes propio de dicha distribución. Requisitos . Slackware 10.1 ó current (no lo he probado en versiones anteriores). . OpenOffice.org 1.9.xxx (descargable del sitio oficial). Para escribir este documento se usó la versión 1.9.118. . Paquete de idioma español para OOo 1.9.xxx (descargable del sitio oficial). . Se requieren instalados los paquetes: cpio, tar, pkgtools de la serie A; rpm de la serie AP. . Opcional el paquete de Gnome 2.6 que viene en Slackware, alguna versión superior de Gnome de proyectos alternos como Gware ó KDE 3.x. . 500 MB de espacio temporal en disco si no se genera un paquete (OOo ocupa ya instalado unos 280 MB), 700 MB si se va a generar un paquete. Al finalizar pueden eliminarse los archivos y directorios temporales usados, liberando entre 200 y 300 MB). Consideraciones $HOME es el directorio personal del usuario actual $OOTMP es el directorio donde extraeré los archivos .rpm de instalación $TMPROOT es el directorio donde voy a extraer el contenido de cada RPM Cuando se ejecuten comandos, ($) hara referencia a que el comando debe ser ejecutado como usuario, (#) cuando deba ser como root. Procedimiento Extraemos el contenido del archivo descargado del sitio de OpenOffice.org en un directorio temporal: $ cd $OOTMP $ tar zxvf OOo_1.9.118_LinuxIntel_rpm_install.tar.gz El directorio 'RPMS' contiene los archivos de instalación .rpm y un directorio adicional llamado 'desktop-integration' con algunos .rpm adicionales. Vamos a extraer el contenido de cada uno de los archivos .rpm dentro de un directorio temporal adicional al anterior con el fin de analizar el producto "instalado". $ cd $TMPROOT $ for i in $OOTMP/RPMS/*.rpm; do rpm2cpio $i | cpio -id; done Como resultado obtenemos el directorio opt/openoffice.org1.9.118 que es donde está todo lo necesario para correr OpenOffice.org en inglés. Si lo que deseamos es tener la interfaz en español, hay que agregar el paquete de idioma. El paquete de idioma es un archivo .sh (shell script) que tiene un .tar.gz integrado, para extraerlo sin necesidad de ejecutar el shell script, eliminamos las líneas del script y de paso extraemos el contenido del .tar.gz: $ cd $OOTMP $ tail -n +155 OOo_1.9.118_LinuxIntel_langpack_es.sh | tar -zxvf - La salida son tres archivos .rpm, de los que debemos extraer su contenido de forma similar a los anteriores: $ cd $TMPROOT $ for in in $OOTMP/*.rpm; do rpm2cpio $i | cpio -id; done Con eso tenemos la posibilidad de elegir, cuando corremos el programa, la interfaz de usuario en español. Si no te interesa generar el paquete Slackware ó la integración de OOo con Gnome ó KDE, el procedimiento termina aquí moviendo el directorio opt/openoffice.org1.9.118 en donde sea mas conveniente y ejecutar el comando 'soffice' dentro del directorio 'program'. Ahora, necesitamos extraer lo necesario para integrarlo con Gnome y KDE (se supone que en general con cualquier escritorio que sea compatible con la especificación de freedesktop.org). $ cd $TMPROOT $ rpm2cpio $OOTMP/RPMS/desktop-integration/openofficeorg-freedesktop-menus-1.9.118-1.noarch .rpm | cpio -id $rpm2cpio $OOTMP/RPMS/desktop-integration/openofficeorg-suse-menus-1.9.118-1.noarch.rpm El archivo freedesktop contiene los iconos e información MIME para registrar la aplicación con las aplicaciones que sean compatibles con el estándar freedesktop, como Gnome 2.10.2. Sin embargo, si usamos Gnome 2.6, el último que viene con Slackware de forma oficial, necesitamos archivos adicionales para registrar OpenOffice.org. Seleccioné el paquete para SUSE porque contiene parte de lo que vamos a necesitar para integrarlo con KDE y Gnome 2.6. Al extraer estos archivos observaremos directorios adicionales al opt/openoffice.org1.9.118: usr/bin usr/share/applications usr/share/icons usr/share/mime opt/gnome opt/kde3 Aquí hay que hacer varias correcciones ya que en usr/bin se hace referencia a '/etc/openoffice.org1.9.118' mismo que no existe. $ cd $TMPROOT $ cd usr/bin $ rm soffice $ ln -s /opt/openoffice.org1.9.118/program/soffice soffice $ sed 's/\/etc\/openoffice\.org-1\.9/\/opt\/openoffice\.org1\.9\.118/' openoffice.org-1.9 > OOotmp.tmp $ mv OOotmp.tmp openoffice.org-1.9 $ sed 's/\/etc\/openoffice\.org-1\.9/\/opt\/openoffice\.org1\.9\.118/' openoffice.org-1.9-printeradmin > OOotmp.tmp $ mv OOotmp.tmp openoffice.org-1.9-printeradmin $ chmod a+x openoffice.org-1.9* Puede usarse un editor de texto para cambiar el contenido de 'openoffice.org-1.9' y 'openoffice.org-1.9-printeradmin', en vez de los comandos anteriores. Arreglamos las ligas a los archivos .desktop: $ cd $TMPROOT $ cd usr/share/applications $ rm openoffice.org-1.9-*.desktop $ for i in base calc draw impress math printeradmin writer; do ln -s /opt/openoffice.org1.9.118/share/xdg/$i.desktop $i.desktop; done Ahora completamos la integración con KDE y Gnome, moviendo los directorios necesarios a sus ubicaciones propias dentro de Slackware: $ cd $TMPROOT $ cd opt/gnome/share $ mv application-registry mime-info ../../../usr/share $ cd ../.. $ rm -rf gnome $ mv kde3 kde Finalmente vamos a crear un paquete Slackware a partir de la estructura que tenemos en $TMPROOT, para ello es necesario crear un archivo dentro del directorio install llamado 'slack-desc' con una breve descripción del contenido del paquete, podemos usar este como ejemplo: # HOW TO EDIT THIS FILE: # The "handy ruler" below makes it easier to edit a package description. Line # up the first '|' above the ':' following the base package name, and the '|' # on the right side marks the last column you can put a character in. You must # make exactly 11 lines for the formatting to be correct. It's also # customary to leave one space after the ':'. |-----handy-ruler------------------------------------------------------| openoffice.org: OpenOffice.org openoffice.org: openoffice.org: OpenOffice.org is both a multi-platform and multi-lingual openoffice.org: office suite and an open-source project. Compatible with all openoffice.org: other major office suites, the product is free to download, openoffice.org: use, and distribute. openoffice.org: openoffice.org: openoffice.org: openoffice.org: openoffice.org: $ cd $TMPROOT $ mkdir install $ cd install Creamos el archivo slack-desc (como el ejemplo anterior) dentro de install junto con un archivo doinst.sh que contenga estas dos líneas: ( if which update-mime-database; then update-mime-database /usr/share/mime; fi ) &> /dev/null ( if which update-desktop-database; then update-desktop-database; fi ) &> /dev/null Le damos permisos de ejecución al shell script 'doinst.sh': $ chmod a+x doinst.sh Lo anterior es para regenerar el caché de /usr/share/mime y los menús. El archivo 'doinst.sh' se ejecuta al finalizar la instalación del paquete. Ahora sólo queda generar el paquete final: $ cd .. $ su # chown -R root: * # makepkg -l y -c y -p openoffice.org-1.9.118-i586-1xxx.tgz # installpkg openoffice.org-1.9.118-i586-1xxx.tgz En vez de nombrar el paquete como openoffice.org-1.9.118-i586-1.tgz debería ser algo como openoffice.org-1.9.118-i586-xxx.tgz donde es la versión del paquete y xxx es un texto que identifique la persona u organización que genera el paquete, esto es con el fin de reservar los paquetes que terminan en para aquellos oficiales de Patrick Volkerding. Así, los paquetes que yo genero les agrego las letras MGL: openoffice.org-1.9.118-i586-1MGL.tgz Comentarios finales En Gnome 2.6, los iconos de los archivos con extensiones propias de OpenOffice.org 1.x son reemplazados por los que trae OOo y son agregados los de nuevo diseño para la versión 2. En Gnome 2.10.2 (de Gware) ya se tenían contemplados los iconos para la mayoría de las aplicaciones de OOo 1.x y 2, excepto OpenOffice.org Base y Draw 2, por lo que sólo en los archivos .odg y odb se verán los nuevos íconos. Una forma, que no cubriré aquí por el momento, es reemplazar los iconos del tema Gnome para los nuevos tipos MIME de OOo 2. Lo RPM's de OOo, tienen scripts de instalación, sin embargo, no tienen efecto alguno (según yo) en Slackware, por lo que no los he incluído aquí. Si desean ver los scripts contenidos en cada RPM pueden usar: $ for i in *.rpm; do echo $i; echo -----; rpm -qp --scripts $i; echo -----; echo; done | less Agradeceré sus comentarios y aportaciones sobre esta guía y espero les sea de utilidad.