mercredi 16 mai 2012

Ubuntu 12.04 et libreoffice base

Il est actuellement impossible sous Ubuntu 12.04 d'ouvrir un rapport développé précédemment dans libreoffice base et utilisant Oracle Report Builder. Un message d'erreur signale l'absence du fichier:
/usr/lib/libreoffice/program/librptlo.so
Par contre ce fichier est bel et bien présent dans la version de libreoffice téléchargeable sur le site de libreoffice.
La version de libreoffice dans Ubuntu 12.04 étant 3.5.3, nous téléchargeons donc le fichier:
LibO_3.5.3_Linux_x86-64_install-deb_en-US.tar.gz
(Nous sommes en 64 bits)
On le décompresse et on se rend là où il convient:
[toto@rigel Téléchargements]$ tar xzf LibO_3.5.3_Linux_x86-64_install-deb_en-US.tar.gz 
[toto@rigel Téléchargements]$ cd LibO_3.5.3rc2_Linux_x86-64_install-deb_en-US/DEBS/
Nous pourrions installer libreoffice à partir de ce tar.gz et l'utiliser à la place de la version packagée par Ubuntu.
Mais nous choisissons une voie intermédiaire.
Afin de travailler proprement, nous créons un dossier work dans lequel nous copions le paquet qui nous intéresse et nous nous y rendons:
[toto@rigel DEBS]$ mkdir work
[toto@rigel DEBS]$ cp libobasis3.5-base_3.5.3-2_amd64.deb work
[toto@rigel DEBS]$ cd work
Le paquet deb est une archive ar que nous décompressons de manière volubile (option v), ce qui permet de constater directement que le fichier data obtenu est un tar.gz (ce n'est pas toujours le cas, on pourrait avoir un tar.lzma):
[toto@rigel work]$ ar -xv libobasis3.5-base_3.5.3-2_amd64.deb
x - debian-binary
x - control.tar.gz
x - data.tar.gz
[toto@rigel work]$
Il reste à décompresser ce fichier data et à copier les fichiers manquants (ceux dont le nom commence par librpt) là où il faut:
[toto@rigel work]$ tar xzvf data.tar.gz
./
./opt/
./opt/libreoffice3.5/
./opt/libreoffice3.5/program/
./opt/libreoffice3.5/program/libabplo.so
./opt/libreoffice3.5/program/libadabasuilo.so
./opt/libreoffice3.5/program/libdbplo.so
./opt/libreoffice3.5/program/libdbulo.so
./opt/libreoffice3.5/program/librptlo.so
./opt/libreoffice3.5/program/librptuilo.so
./opt/libreoffice3.5/program/librptxmllo.so
./opt/libreoffice3.5/share/
./opt/libreoffice3.5/share/registry/
./opt/libreoffice3.5/share/registry/base.xcd
[toto@rigel work]$ sudo cp -i opt/libreoffice3.5/program/librpt* /usr/lib/libreoffice/program/