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  

Incluirlo en la secuencia de arranque

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

OJO .. unoconv debe correr como apache para orfeo si no se JODE porque salva archivos como ROOT

Trucos

1. Si necesita que corra con otro usuario como apache

Para que pueda correr como apache es neceario 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

2. Correlo 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