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