Instalación servicio Unoconv – Libreoffice

Descripción

Unoconv es un servicio de Libreoffice que permite usar sus funciones a traves de un socket

Prerequistos

Una maquina linux .. seguro

Instalación

Se prefiere una version moderna de libreoffice 7+ ya que los 6 nos han dado guerra antes

$>   apt-get install -t  buster-backports default-jre libreoffice-java-common unoconv

OJO unoconv necesta los fuentes.

OJO El directorio de libreoffice UNOPATH son diferentes para RH y DEB.

Copiese el directorio de Skina de ftp/pub/linux/downloads/escritorio/fonts/skina a /usr/share/fonts

Configuración

1.  Para que corra a lo machaco

O a lo machaco .. ponerlo en el /etc/rc.local .

$> unoconv –listener &

2. Lo elegante usando systemctl

Los pasos a seguir del proceso anterior:

$> sudo su
$> vim /etc/systemd/system/unoconv.service

Agrege el siguiente script

  [Unit] 
  Description=Unoconv listener for document conversions 
  Documentation=https://github.com/dagwieers/unoconv 
  After=network.target remote-fs.target nss-lookup.target 

  [Service] 
  Type=simple 
  Environment="UNO_PATH=/lib/libreoffice/program" 
  User=www-data 
  Group=www-data 
  ExecStart=/usr/bin/unoconv --listener 
  Restart=on-abort 
  StartLimitInterval=60 
  StartLimitBurst=10 

  [Install] 
  WantedBy=multi-user.target  

Para que pueda correr como apache es necesario crear directorios y darle permisos en el home del usuario de apache

mkdir /var/www/.cache  /var/www/.config
chown -R www-data:www-data  /var/www/.cache  /var/www/.config

Incluirlo en la secuencia de arranque

$> sudo systemctl daemon-reload
$> sudo systemctl enable unoconv.service
$> sudo systemctl start unoconv.service

 

Trucos

1. Córrelo con el la ultima version de libreoffice (ejm 7.4)

Descargue el libreoffice para debian (por ejemplo) descomprímalo e instale todo (apt-get install ./libreoffice7.4*)

Este lo va a instalar independiente del que tenga en /opt/libreoffe7.4 .. yo suelo tener opt como un vinculo simbólico a /usr/local

Luego install el unoconv descargado del sitio en /usr/local

git clone https://github.com/unoconv/unoconv.git

Y luego cambie el servicio en systemctl

vi /etc/systemd/system/unoconv.service

Y cambie el UNO_PATH y el ejecutable

\# Environment=»UNO_PATH=/lib/libreoffice/program»
Environment=»UNO_PATH=/usr/local/libreoffice7.4/program»
\# ExecStart=/usr/bin/unoconv –listener
ExecStart=/usr/local/unoconv/unoconv –listener

Recarge y reinicie

systemctl daemon-reload
systemctl  stop unoconv
systemctl  start unoconv
systemctl  status unoconv

Si quiere verifique que este corriendo

ps aux | grep soff

Problemas

1. Unoconv se me esta muriendo

He optado por poner en algunos caso monit para que lo mantenga arriba

check process unoconv
matching «unoconv»
start program = «/bin/systemctl start unoconv.service»
stop program = «/bin/systemctl stop unoconv.service»

2.  DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives

Unoconv ya ha sido puesto en EOL .. o sea obsoleto y hay estos problemas.

Referencias

–  https://docs.moodle.org/all/es/Universal_Office_Converter_(unoconv)

FIN