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