Wiki source code of Instalacion en Linux

Last modified by admin on 2026/07/18 17:45

Show last authors
1 = Libertya ERP {{id name="libertya-erp" /}}=
2
3 == Guía de instalación en Linux {{id name="guía-de-instalación-en-linux" /}}==
4
5 = Introducción {{id name="introducción" /}}=
6
7 El presente documento detalla las actividades a realizar a fin de instalar Libertya ERP en sistemas operativos Linux. El mismo es una guía de referencia genérica, la cual no es específica para una distribución o versión en particular, lo que permite mantener su validez a lo largo del tiempo y que en términos generales pueda ser utilizada más allá de la distribución de linux donde se va a realizar la instalación.
8
9 == Alternativa mediante máquina virtual para VirtualBox {{id name="alternativa-mediante-máquina-virtual-para-virtualbox" /}}==
10
11 Vale la pena mencionar que junto con cada release de Libertya, se libera también una Máquina Virtual para VirtualBox lista para usar. Por consiguiente, si se desea omitir este proceso de instalación, simplemente se puede optar por dicha opción.
12
13 Por ejemplo, al momento de escribir este documento, podrá descargar la versión 19.07 de Libertya ERP lista para usar desde el siguiente enlace:
14
15 http://www.libertya.org/descargas/libertya-pyme-19-07/#maquina-virtual
16
17 = Requisitos {{id name="requisitos" /}}=
18
19 Para la utilización de Libertya ERP se requieren básicamente cuatro elementos:
20
21 1. Java\\
22 1. Postgres\\
23 1. Base de datos Libertya ERP\\
24 1. Binarios Libertya ERP
25
26 En los siguientes apartados veremos cómo realizar la instalación de cada uno de ellos.
27
28 = Permisos {{id name="permisos" /}}=
29
30 Se supone que se cuenta con los permisos necesarios a nivel sistema operativo a fin de ejecutar los comandos detallados en el presente documento.
31
32 = Java {{id name="java" /}}=
33
34 == Descarga {{id name="descarga" /}}==
35
36 Existen varias maneras de instalar Java. En el presente documento se utiliza una opción que no requiere instalación de paquetes dependientes de la distribución de Linux a utilizar.
37
38 Al momento de escribir este documento, Libertya soporta las versiones de Java 6 a 8. Esto no quiere decir que con versiones más recientes LY no funcione, sino que todavía no fue verificado y por consiguiente no se puede garantizar su correcto funcionamiento. Por consiguiente, se recomienda la instalación de la versión 8 de Java. Se puede utilizar tanto la distribución de Oracle como alguno de los builds de OpenJDK (AdoptOpenJDK, Zulu, Oracle OpenJDK, etc.).
39
40 Sea cual sea la distribución a usar, se debe realizar la descarga correspondiente. Por ejemplo, si se desea descargar AdoptOpenJDK, debemos dirigirnos al site https://adoptopenjdk.net/ y una vez allí seleccionar la JVM correspondiente según la arquitectura de su sistema operativo. Siguiendo el ejemplo, se descargará la JVM OpenJDK 8 (LTS) para Linux x64, en este caso: //OpenJDK8U-jdk_x64_linux_hotspot_8u252b09.tar.gz//.
41
42 == Instalación {{id name="instalación" /}}==
43
44 Una vez descargado el archivo, el mismo debe descomprimirse y extraerse. En este ejemplo suponemos que la descarga se efectuó en **~~/Descargas** y que ubicaremos los binarios de la JVM en **/opt**.
45
46
47 {{code language="bash"}}
48 mv ~/Descargas/OpenJDK8U-jdk_x64_linux_hotspot_8u252b09.tar.gz /opt
49 cd /opt
50 gunzip OpenJDK8U-jdk_x64_linux_hotspot_8u252b09.tar.gz
51 tar -xvf OpenJDK8U-jdk_x64_linux_hotspot_8u252b09.tar
52 {{/code}}
53
54 Esto dejará la versión de Java lista para ser utilizada en **/opt/jdk8u252-b09**. Ahora falta configurar el entorno para que se utilice esta versión.
55
56 == Configuración {{id name="configuración" /}}==
57
58 La manera más sencilla de configurar esto es modificando el archivo **/etc/profile**, incorporando las siguientes líneas al final de dicho archivo:
59
60
61 {{code language="bash"}}
62 export JAVA_HOME=/opt/jdk8u252-b09
63 export PATH=$JAVA_HOME/bin:$PATH
64 {{/code}}
65
66 Luego de realizar este cambio, probar a iniciar sesión nuevamente y verificar desde la terminal si ya está tomando la versión de java correspondiente, por ejemplo mediante el siguiente comando:
67
68
69 {{code language="bash"}}
70 java -version
71 {{/code}}
72
73 Lo cual debería arrojar algo como resultado algo similar a lo siguiente (lógicamente variando según la versión instalada):
74
75
76 {{code language="text"}}
77 openjdk version "1.8.0_252"
78 OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_252-b09)
79 OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.252-b09, mixed mode)
80 {{/code}}
81
82 Alternativamente, en caso de tener instaladas varias máquinas virtuales de Java, también es posible configurar la JVM por defecto utilizando el comando //update-alternatives//.
83
84 Lo primero es verificar las opciones disponibles mediante el comando:
85
86
87 {{code language="bash"}}
88 update-alternatives --config java
89 {{/code}}
90
91 Esto mostrará las opciones actualmente disponibles:
92
93
94 {{code language="text"}}
95 Selección Ruta Prioridad Estado
96 ------------------------------------------------------------
97 0 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 modo automático
98 * 1 /opt/jdk1.6.0_45/bin/java 0 modo manual
99 {{/code}}
100
101 Incluiremos entonces como seleccion 2 a la JMV descargada:
102
103
104 {{code language="bash"}}
105 sudo update-alternatives --install /usr/bin/java java /opt/jdk8u252-b09/bin/java 2
106 {{/code}}
107
108 Esto incorporará una nueva entrada para java, a lo último de la tabla de alternativas.
109
110
111 {{code language="text"}}
112 Selección Ruta Prioridad Estado
113 ------------------------------------------------------------
114 0 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 modo automático
115 * 1 /opt/jdk1.6.0_45/bin/java 0 modo manual
116 2 /opt/jdk8u252-b09/java 3 modo manual
117 {{/code}}
118
119 Luego se puede seleccionar la alternativa para la JVM recientemente instalada mediante el siguiente comando e indicando el número 2:
120
121
122 {{code language="bash"}}
123 update-alternatives --config java
124 {{/code}}
125
126 De esta forma, la tabla quedará configurada de la siguiente manera (notar el cambio en la posición del asterisco):
127
128
129 {{code language="text"}}
130 Selección Ruta Prioridad Estado
131 ------------------------------------------------------------
132 0 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 modo automático
133 1 /opt/jdk1.6.0_45/bin/java 0 modo manual
134 * 2 /opt/jdk8u252-b09/java 3 modo manual
135 {{/code}}
136
137 Una vez configurada la JVM, se recomienda reiniciar la sesión en terminal y verificar si efectivamente la configuración quedó correctamente realizada. Para ésto, simplemente invocamos al comando java requiriendo su versión:
138
139
140 {{code language="bash"}}
141 java -version
142 {{/code}}
143
144 Lo cual debería arrojar algo como resultado algo similar a lo siguiente (variando según la versión):
145
146
147 {{code language="text"}}
148 openjdk version "1.8.0_252"
149 OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_252-b09)
150 OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.252-b09, mixed mode)
151 {{/code}}
152
153 = PostgresSQL {{id name="postgressql" /}}=
154
155 == Descarga {{id name="descarga-1" /}}==
156
157 Existen varias maneras de instalar Postgres. En el presente documento se utiliza una opción que no requiere instalación de paquetes dependientes de la distribución de Linux a utilizar. Adicionalmente, esta alternativa será la misma más allá de la versión a instalar, dado que el procedimiento es siempre el mismo. De todas maneras, puede optar por otra opción si es que cuenta con la posibilidad de una alternativa más directa.
158
159 Al momento de escribir este documento, Libertya soporta las versiones de PostgreSQL 8.4 a 10.11. Esto no quiere decir que con versiones más recientes LY no funcione, sino que todavía no fue verificado y por consiguiente no se puede garantizar su correcto funcionamiento. Por consiguiente, se recomienda la instalación de la versión 10.
160
161 == Instalación {{id name="instalación-1" /}}==
162
163 En este documento realizaremos la instalación de Postgres mediante la compilación de los fuentes, a fin de evitar depender de repositorios y/o versiones según la distribución. Adicionalmente, estos pasos son siempre los mismos más allá de la versión de Postgres a instalar.
164
165 En este ejemplo instalaremos la versión 10.10. Para ésto, accederemos al sitio de descargas de Postgres, el cual actualmente se ubica en la URL https://www.postgresql.org/ftp/source/, y luego descargaremos la versión en cuestión, por ejemplo: https://ftp.postgresql.org/pub/source/v10.10/postgresql-10.10.tar.gz.
166
167 Una vez descargada, procederemos a descomprimir y extraer los fuentes. Suponiendo que la descarga se realizó en **~~/Descargas**, ejecutaremos:
168
169
170 {{code language="bash"}}
171 cd ~/Descargas
172 gunzip postgresql-10.10.tar.gz
173 tar -xvf postgresql-10.10.tar
174 {{/code}}
175
176 Una vez realizados estos pasos, en **~~/Descargas/postgresql-10.10** se encontrarán los fuentes listos para ser compilados. Los pasos para la compilación se encuentran detallados en el archivo **~~/Descargas/postgresql-10.10/INSTALL**. Por ejemplo:
177
178
179 {{code language="bash"}}
180 ./configure \
181 --without-icu \
182 --with-systemd \
183 --with-openssl \
184 --with-uuid=e2fs \
185 CFLAGS='-fno-aggressive-loop-optimizations'
186 make
187 su
188 make install
189 adduser postgres
190 mkdir /usr/local/pgsql/data
191 chown postgres /usr/local/pgsql/data
192 su - postgres
193 /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
194 /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &
195 {{/code}}
196
197 Los modificadores **–with-*** para el configure son opcionales:
198
199 ~-~-with-systemd necesario si se utilizará systemd (recomendado en nuevas distros de linux)\\~-~-with-openssl de utilidad para usar ssl en conexiones\\~-~-with-uuid=e2fs habilita la generación de UUIDs usando s2fsprogs
200
201 Se deberá ejecutar paso a paso cada uno de los comandos a fin de realizar la compilación e instalación de postgres. Dependiendo la instalación de Linux, es probable que se requieran librerías adicionales para realizar estos pasos (ante esta situación, el //configure// se detendrá a fin de que se puedan instalar las librerías en cuestión, para luego reintentar nuevamente la acción):
202
203 *. **gcc**\\
204 *. **make**\\
205 *. **libreadline-dev** (Debian) / **readline-devel** (Red Hat)\\
206 *. **zlib1g-dev** (Debian) / **zlib-devel** (Red Hat)\\
207 *. **systemd-devel** (de configurar con –with-systemd)\\
208 *. **openssl-devel** (de configurar con –with-openssl)\\
209 *. **e2fsprogs e2fsprogs-libs e2fsprogs-devel** **libuuid-devel** (de configurar con –with-uuid=e2fs)
210
211 En caso de no contar con estas librerías, simplemente deberán instalarse mediante el gestor correspondiente según la distribución de Linux (hasta que la ejecución del configure no arroje errores), por ejemplo:
212
213
214 {{code language="bash"}}
215 apt-get install gcc
216 {{/code}}
217
218 o por ejemplo:
219
220
221 {{code language="bash"}}
222 dnf install gcc
223 {{/code}}
224
225 Una vez finalizada la instalación, la instancia de postgres quedará ubicada en **/usr/local/pgsql**.
226
227 **IMPORTANTE**: Si no se aplica el modificador CFLAGS=‘-fno-aggressive-loop-optimizations’ y al ejecutar el comando **initdb** se presenta el siguiente error:
228
229
230 {{code language="text"}}
231 initializing pg_authid ... FATAL: wrong number of index expressions
232 STATEMENT: CREATE TRIGGER pg_sync_pg_database AFTER INSERT OR UPDATE OR DELETE ON pg_database FOR EACH STATEMENT EXECUTE PROCEDURE flatfile_update_trigger();
233 {{/code}}
234
235 Esto se debe a un error específico presente en algunas versiones de GCC. A fin de evitar este problema, se deberá o bien utilizar el modificador CFLAGS=‘-fno-aggressive-loop-optimizations’ o bien realizar la compilación con una modificación en los CFLAGS. En la ventana de terminal donde se está realizando la instalación, ejecutar:
236
237
238 {{code language="bash"}}
239 # Limpiar cualquier compilación fallida anteriormente realizada
240 make clean
241 rm -Rf /usr/local/pgsql/data
242 # Configurar la CFLAGS para evitar el problema
243 export CFLAGS=-fno-aggressive-loop-optimizations
244 {{/code}}
245
246 Luego reiterar los pasos de compilación e instalación detallados en el archivo **INSTALL** mencionado en el punto anterior.
247
248 Referencia: https://stackoverflow.com/questions/25583549/initdb-initializing-pg-authid-fatal-wrong-number-of-index-expressions
249
250 == Configuración {{id name="configuración-1" /}}==
251
252 La configuración que se detallará aquí es la que permite el acceso menos restrictivo al servicio. Por consiguiente, una vez verificado el correcto funcionamiento de Libertya ERP y el acceso a la base de datos, se sugiere ajustar la configuración de seguridad según considere necesario.
253
254 La configuración de PostgreSQL consta de dos simples pasos, los cuales se detallan a continuación:
255
256 === Permisos de acceso {{id name="permisos-de-acceso" /}}===
257
258 En el archivo **/usr/local/pgsql/data/pg_hba.conf** deberá incorporarse una nueva línea luego de la línea **//IPv4 local connections//**, con el siguiente contenido:
259
260
261 {{code language="text"}}
262 # IPv4 local connections:
263 host all all 0/0 trust
264 {{/code}}
265
266 === Direcciones de escucha {{id name="direcciones-de-escucha" /}}===
267
268 En el archivo **/usr/local/pgsql/data/postgresql.conf** deberá modificarse la línea **//listen_address//**, con el siguiente contenido:
269
270
271 {{code language="text"}}
272 listen_addresses = '*' # what IP address(es) to listen on;
273 {{/code}}
274
275 El dueño de estos archivos debe ser el usuario **//postgres//**, con lo cual se deberá modificar el owner de los mismos en caso de haber sido modificado el contenido de dichos archivos por otro usuario:
276
277
278 {{code language="bash"}}
279 chown postgres /usr/local/pgsql/data/pg_hba.conf
280 chown postgres /usr/local/pgsql/data/postgresql.conf
281 {{/code}}
282
283 === Variables de entorno {{id name="variables-de-entorno" /}}===
284
285 Incorporar en **/etc/profile** las siguientes entradas al final del archivo a fin de especificar la ubicación de postgres y sus bases de datos:
286
287
288 {{code language="bash"}}
289 export PGDATA=/usr/local/pgsql/data
290 export PATH=/usr/local/pgsql/bin:$PATH
291 {{/code}}
292
293 === Iniciando postgres y verificando conexión {{id name="iniciando-postgres-y-verificando-conexión" /}}===
294
295 En caso de querer iniciar PostgreSQL luego de - por ejemplo - reiniciar el sistema, es posible hacerlo mediante:
296
297
298 {{code language="bash"}}
299 su - postgres
300 /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &
301 exit
302 {{/code}}
303
304 Si desea verificar la conexión a la base de datos, puede probar a ejecutar:
305
306
307 {{code language="bash"}}
308 /usr/local/pgsql/bin/psql -h localhost -U postgres -c "select 1"
309 {{/code}}
310
311 Esto deberá retornar un resultado como el siguiente, lo cual indica que el servicio de postgres se encuentra corriendo y escuchando:
312
313
314 {{code language="text"}}
315 ?column?
316 ---------- 1 (1 row)
317 {{/code}}
318
319 = Base de datos Libertya ERP {{id name="base-de-datos-libertya-erp" /}}=
320
321 == Descarga {{id name="descarga-2" /}}==
322
323 Una vez instalado PostgreSQL, ya es posible descargar y restaurar la base de datos de Libertya. Más allá de la versión a utilizar, los pasos son siempre los mismos. En este ejemplo utilizaremos la versión 19.07AR para postgres 9.5 o superior, la cual podemos descargar desde:
324
325 https://sourceforge.net/projects/libertya/files/libertya/release/1907/multi-platform/dump_libertya_1907ar_postgres9.5.sql.zip
326
327 Notar que dependiendo la versión de PostgreSQL que estemos utilizando, existen distintas descargas. Por ejemplo, en caso de estar utilizando PostgreSQL 9.4 o inferior, debemos descargar:
328
329 [[https:~/~/sourceforge.net/projects/libertya/files/libertya/release/1907/multi-platform/dump_libertya_1907ar.sql.zip/>>https://sourceforge.net/projects/libertya/files/libertya/release/1907/multi-platform/dump_libertya_1907ar.sql.zip]]
330
331 De manera similar, si deseamos descargar otras versiones de Libertya, deberemos buscar la opción correspondiente. Por ejemplo, si deseamos descargar Libertya PyME 19.07AR para Postgres 9.5 o superior, debemos descargar:
332
333 https://sourceforge.net/projects/libertya/files/libertya/release/1907/PyME/dump_libertya_1907ar_pyme_postgres9.5.sql.zip
334
335 //**Nota**: La estructura de archivos a descargar respetará siempre el mismo formato más allá del release de Libertya a utilizar (18.06, 19.07, etc.).//
336
337 == Creación de usuario libertya (a nivel postgres) {{id name="creación-de-usuario-libertya-a-nivel-postgres" /}}==
338
339 Libertya utiliza un usuario y schema (de postgres) llamados libertya. Por única vez será necesario entonces realizar la creación correspondiente. En caso de haber realizado instalaciones previas de Libertya en la instancia en cuestión, este paso no deberá ser necesario.
340
341
342 {{code language="bash"}}
343 psql -h localhost -U postgres -c "CREATE ROLE libertya LOGIN PASSWORD 'libertya' SUPERUSER CREATEDB CREATEROLE VALID UNTIL 'infinity' IN ROLE postgres"
344 {{/code}}
345
346 Unicamente para versiones de postgres anteriores a la 9.0: es necesario crear el lenguaje plpgsql en la base de datos template1 para que cada vez que se cree una nueva base de datos la misma ya contenga el lenduaje requerido por las funciones que contiene la base de datos de libertya.
347
348
349 {{code language="bash"}}
350 createlang -U postgres -d template1 plpgsql
351 {{/code}}
352
353 == Creación Base de Datos {{id name="creación-base-de-datos" /}}==
354
355 Una vez descargado el archivo con el dump de la base de datos, deberemos descomprimirlo, para esto ejecutaremos el siguiente comando suponiendo que la descarga se efectuó en **~~/Descargas**:
356
357
358 {{code language="bash"}}
359 cd ~/Descargas
360 unzip dump_libertya_1907ar_postgres9.5.sql.zip
361 {{/code}}
362
363 Posteriormente debemos crear la base de datos y volcar allí el contenido del archivo descargado. El nombre de la base de datos puede ser cualquiera, en este caso utilizaremos el nombre **libertya_prod**:
364
365
366 {{code language="bash"}}
367 cd ~/Descargas
368 psql -h localhost -U postgres -c "CREATE DATABASE libertya_prod WITH ENCODING='UTF8' OWNER=libertya TEMPLATE=template1;"
369 psql -U libertya -d libertya_prod -f dump_libertya_1907ar_postgres9.5.sql
370 {{/code}}
371
372 El último comando efectuará el restore del dump descargado en la base de datos **libertya_prod**, lo cual requerirá de cierto tiempo para ser completado.
373
374 = Binarios Libertya ERP {{id name="binarios-libertya-erp" /}}=
375
376 == Descarga {{id name="descarga-3" /}}==
377
378 Una vez instalado Java, ya es posible descargar e instalar los binarios de Libertya ERP. Más allá de la versión a utilizar, los pasos son siempre los mismos. En este ejemplo utilizaremos la versión de binarios 19.07, la cual sirve tanto para Libertya 19.07 como para Libertya 19.07AR.
379
380 **Importante**: recordar siempre utilizar la misma versión de release (18.06, 19.07, etc.) a nivel base de datos y a nivel de binarios. No es correcto mezclar binarios de un release con la base de datos de otro release.
381
382 Los binarios de Libertya ERP 19.07 puede descargarse desde el siguiente enlace:
383
384 https://sourceforge.net/projects/libertya/files/libertya/release/1907/multi-platform/ServidorOXP_V19.07.zip
385
386 //**Nota**: Los binarios son únicos tanto para la versión 19.07 como para la versión 19.07AR. Para la versión PyME de Libertya existen binarios específicos, así como base de datos específica.//
387
388 Una vez descargado los binarios debemos descomprimirlos. Se recomienda descomprimirlos en el directorio raiz:
389
390
391 {{code language="bash"}}
392 cd ~/Descargas
393 mv ServidorOXP_V19.07.zip /
394 cd /
395 unzip ServidorOXP_V19.07.zip
396 {{/code}}
397
398 Esto generará el directorio **/ServidorOXP** con los binarios de Libertya ERP. Luego debemos darle permisos de ejecución a los archivos .sh allí contenidos:
399
400
401 {{code language="bash"}}
402 cd /ServidorOXP
403 chmod ugo+x *.sh -R
404 {{/code}}
405
406 == Configuración {{id name="configuración-2" /}}==
407
408 Lo primero a realizar es configurar la variable de entorno **OXP_HOME** en el archivo **/etc/profile**, incorporando la siguiente entrada al final de dicho archivo:
409
410
411 {{code language="bash"}}
412 export OXP_HOME=/ServidorOXP
413 {{/code}}
414
415 Luego de descomprimir los binarios será necesario configurar la instancia. Se recomienda realizar estos pasos con el usuario **root** para evitar problemas de permisos (más adelante veremos alternativas para mejorar la seguridad):
416
417
418 {{code language="bash"}}
419 cd /ServidorOXP
420 ./Configurar.sh
421 {{/code}}
422
423 Esto abrirá una ventana con las opciones de configuración, deberá completarse la información acordemente, indicando la ubicación de java, el nombre de la base de datos, la contraseña de los usuarios postgres y libertya, los puertos para las distintas actividades, etc.
424
425 En lo que refiere a los puertos, se recomienda utilizar los siguientes valores:
426
427 *. Puerto JNP: 1099\\
428 *. Puerto Web: 8080\\
429 *. Puerto SSL: 8443
430
431 Siguiendo el ejemplo visto hasta el momento, la ventana de configuración debería quedar configurada de esta manera (lógicamente con variaciones dado que - por ejemplo - el equipo probablemente tenga un nombre diferente a pc-usuario):
432
433 [[image:image1.png]]
434
435 Una vez realizada la configuración, es posible hacer click en el botón **Comprobar**. Esto verificará que los valores indicados sean los correctos, o presentará un error según corresponda. Ciertos errores pueden ignorarse, como por ejemplo si el servidor de correo presenta error. Sin embargo, si por ejemplo hay un error de puerto usado o de imposibilidad de conexión a la base de datos, se deberá verificar el problema y resolver el inconveniente.
436
437 Por último deberá hacer click en Guardar a fin de completar el proceso. Esta actividad puede demorar varios minutos, y al finalizar se cerrará la ventana de configuración. La instancia ya estará lista para ser usada.
438
439 //**Nota**: Si se está realizando la instalación en una instancia sin interfaz gráfica, también es posible realizar la configuración desde terminal. Para ésto es necesario copiar el template de configuración y luego editarlo://
440
441
442 {{code language="bash"}}
443 cd /ServidorOXP
444 cp LibertyaEnvTemplate.properties LibertyaEnv.properties
445 nano LibertyaEnv.properties
446 {{/code}}
447
448 //Se deberá configurar adecuadamente el archivo **LibertyaEnv.properties** de manera similar a lo realizado mediante la configuración gráfica. Una vez realizado ésto, se deberá ejecutar el **ConfigurarAuto.sh**, el cual realiza la misma actividad que al clickear el botón **Guardar** desde la ventana de configuración.//
449
450 Al configurar **LibertyaEnv.properties** cambiar los puertos por defecto de a los utilizados en el ejemplo aanterior: Puerto JNP: 1099, Puerto Web: 8080, Puerto SSL: 8443 en caso contrario pueden presentarse problemas al iniciar el servidor automáticamente (daemon libertyad).
451
452
453 {{code language="bash"}}
454 cd /ServidorOXP
455 ./ConfigurarAuto.sh
456 {{/code}}
457
458 == Iniciando el servidor de aplicaciones {{id name="iniciando-el-servidor-de-aplicaciones" /}}==
459
460 El servidor de aplicaciones se encarga de varias tareas como brindar el portal web de Libertya ERP, generar las entradas contables automáticamente, realizar tareas programadas en segundo plano, etc. Para cualquiera de estas actividades es necesario iniciar el servidor de aplicaciones. Para ésto debe ejecutar el siguiente comando, el cual ejecutaremos mediante el usuario **root** (luego veremos alternativas para mejorar la seguridad):
461
462
463 {{code language="bash"}}
464 cd /ServidorOXP/utils
465 ./IniciarServidor.sh
466 {{/code}}
467
468 Esto iniciará el proceso de booteo del contenedor web JBoss. Si no se presentan inconvenientes, se visualizará como última salida en la terminal un mensaje similar al siguiente:
469
470
471 {{code language="text"}}
472 14:32:04,823 INFO [Server] JBoss (MX MicroKernel) [4.0.2 (build: CVSTag=JBoss_4_0_2 date=200505022023)] Started in 18s:277ms
473 {{/code}}
474
475 Esto significa que el servidor ha iniciado correctamente. Si se desea finalizar la ejecución del mismo, simplemente podemos presionar **CTRL+C** desde el teclado.
476
477 = Accediendo a Libertya ERP {{id name="accediendo-a-libertya-erp" /}}=
478
479 Ver el documento **Iniciando Libertya**.
480
481 = Configuraciones avanzadas {{id name="configuraciones-avanzadas" /}}=
482
483 Importante: estos pasos pueden variar dependiendo la distribución del sistema operativo.
484
485 = Inicio de PostgreSQL en arranque del sistema {{id name="inicio-de-postgresql-en-arranque-del-sistema" /}}=
486
487 **MUY IMPORTANTE**: En nuevas versiones de Linux (por ejemplo (RHEL/Alma/Rocky 9), los pasos restantes difieren considerablemente. Para estas plataformas más recientes, los pasos son los siguientes.
488
489 Crear el archivo **/etc/systemd/system/postgresql.service** con el siguiente contenido en caso de haber compilado postgres con soporte para systemd:
490
491
492 {{code language="text"}}
493 [Unit]
494 Description=PostgreSQL database server
495 Documentation=man:postgres(1)
496 After=network-online.target
497 Wants=network-online.target
498 [Service]
499 Type=notify
500 User=postgres
501 ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
502 ExecReload=/bin/kill -HUP $MAINPID
503 KillMode=mixed
504 KillSignal=SIGINT
505 TimeoutSec=infinity
506 [Install]
507 WantedBy=multi-user.target
508 {{/code}}
509
510 Luego ejecutar:
511
512
513 {{code language="bash"}}
514 systemctl daemon-reload
515 systemctl enable postgresql
516 {{/code}}
517
518 Para iniciar o detener el servicio:
519
520
521 {{code language="bash"}}
522 systemctl start postgresql
523 systemctl stop postgresql
524 {{/code}}
525
526 Para versiones más antiguas de Linux, seguir con los pasos indicados a continuación.
527
528
529 ----
530
531 Para que PostgreSQL pueda iniciar automáticamente al iniciar el sistema operativo, se pueden seguir los siguientes pasos.
532
533 Dentro de los fuentes de postgres se incluye un script de base, el cual debe ser copiado al init.d del sistema operativo. Suponiendo que los fuentes de postgres fueron descargados en **~~/Descargas**, y siguiendo con el ejemplo de versión 10.10 entonces deberemos realizar:
534
535
536 {{code language="bash"}}
537 cp ~/Descargas/postgresql-10.10/contrib/start-scripts/linux /etc/init.d/postgresql
538 chmod ugo+x /etc/init.d/postgresql
539 {{/code}}
540
541 Luego debemos configurar para que el script se ejecute al inicio. Esto dependerá de la distribución de Linux, por ejemplo Red Hat o derivados (también de la versión, ver **NOTA** a continuación).
542
543
544 {{code language="bash"}}
545 chkconfig --add postgresql
546 {{/code}}
547
548 o bien para Debian o derivados:
549
550
551 {{code language="bash"}}
552 update-rc.d postgresql defaults
553 {{/code}}
554
555 **NOTA**: En versiones más recientes, es posible utilizar el comando **systemctl**. Para ésto se deben incorporar las siguientes lineas al inicio del script ubicado en **/etc/init.d/postgresql**:
556
557
558 {{code language="text"}}
559 #! /bin/sh
560 ### BEGIN INIT INFO
561 # Provides: postgresql
562 # Required-Start: $local_fs $network
563 # Required-Stop:
564 # Default-Start: 2 3 4 5
565 # Default-Stop: 0 1 6
566 ### END INIT INFO
567 {{/code}}
568
569 Posteriormente ejecutar:
570
571
572 {{code language="bash"}}
573 systemctl enable postgresql
574 {{/code}}
575
576 En caso de que el servicio no inicie correctamente al bootear el equipo, se deberá verificar el origen del problema. En ocasiones los inconvenientes de inicio automático se originan en la falta de permisos para el acceso y ejecución de ciertos archivos.
577
578 Ejecutando el siguiente comando podremos determinar la causa del problema:
579
580
581 {{code language="bash"}}
582 journalctl -u postgresql.service
583 {{/code}}
584
585 Esto devolverá por ejemplo información de error como la siguiente:
586
587
588 {{code language="text"}}
589 localhost.localdomain postgresql[783]: /etc/rc.d/init.d/postgresql: línea 101: /bin/su: Permiso denegado
590 localhost.localdomain
591 systemd[1]: postgresql.service: Control process exited, code=exited, status=126/n/a
592 localhost.localdomain
593 systemd[1]: postgresql.service: Failed with result 'exit-code'.
594 localhost.localdomain
595 systemd[1]: Failed to start SYSV: PostgreSQL RDBMS.
596 {{/code}}
597
598 En función del error especificado se deberá actuar acordemente a fin de resolver el problema en cuestión. Dado que el script postgresql requiere el uso del comando //su//, las acciones correctivas pueden abarcar la necesidad de realizar modificaciones sobre el grupo wheel de /etc/group, sobre los archivos /etc/pam.d/su y/o /etc/pam.d/sudo, entre otros.
599
600 Para verificar el inicio o detención manualmente, podemos ejecutar:
601
602
603 {{code language="bash"}}
604 service postgresql start
605 service postgresql stop
606 {{/code}}
607
608 Si se optó por utilizar la versión con systemctl (systemd) el inicio y detencion manual se realiza con los siguientes comandos:
609
610
611 {{code language="bash"}}
612 systemctl start postgresql
613 systemctl stop postgresql
614 {{/code}}
615
616 Y puede verificarse el estado de la siguiente forma:
617
618
619 {{code language="bash"}}
620 systemctl status postgresql
621 {{/code}}
622
623 **Deshabilitar SELinux**
624
625 SELinux puede traer problemas a la hora de configurar el daemon para inicio automático de PostgreSQL, para deshabilitarlo modificar el archivo **/etc/selinux/config**\\ubicar la linea
626
627
628 {{code language="text"}}
629 SELINUX=enforcing
630 {{/code}}
631
632 y cambiarla por
633
634
635 {{code language="text"}}
636 SELINUX=disabled
637 {{/code}}
638
639 guardar los cambios y cerrar el archivo. Ahora en el próximo reboot SELinux estará deshabilitado
640
641 = Inicio de Libertya ERP en arranque del sistema {{id name="inicio-de-libertya-erp-en-arranque-del-sistema" /}}=
642
643 El primer paso es crear el usuario **libertya** (a nivel de sistema operativo) dado que de esta manera será dicho usuario quien inicie el servidor de aplicaciones, lo cual es una medida de seguridad a fin de evitar que el superusuario **root** sea quien realice esta tarea.
644
645
646 {{code language="bash"}}
647 adduser libertya
648 {{/code}}
649
650 Por consiguiente, a partir de ahora el dueño de la carpeta **/ServidorOXP** y todos sus archivos deberán ser del usuario **libertya**:
651
652
653 {{code language="bash"}}
654 chown libertya:libertya /ServidorOXP -R
655 {{/code}}
656
657
658 ----
659
660 **MUY IMPORTANTE**: En nuevas versiones de Linux (por ejemplo (RHEL/Alma/Rocky 9), los pasos restantes difieren considerablemente. Para estas plataformas más recientes, los pasos son lo siguientes.
661
662 Crear el archivo **/etc/systemd/system/libertyad.service** con el siguiente contenido, modificando **JAVA_HOME** según corresponda en función de la ubicación de Java en el sistema:
663
664
665 {{code language="text"}}
666 [Unit]
667 Description=Libertya Application Server
668 After=network.target
669 [Service]
670 Type=simple
671 User=libertya
672 Group=libertya
673 WorkingDirectory=/ServidorOXP
674 Environment=JAVA_HOME=/opt/jdk8u462-b08
675 Environment=OXP_HOME=/ServidorOXP
676 RuntimeDirectory=libertya
677 RuntimeDirectoryMode=0755
678 ExecStart=/bin/bash -lc '/ServidorOXP/utils/IniciarServidor.sh & sleep 1; exit 0'
679 ExecStop=/bin/bash -lc '/ServidorOXP/utils/DetenerServidor.sh -S'
680 RemainAfterExit=yes
681 TimeoutStartSec=3min
682 TimeoutStopSec=45s
683 Restart=on-failure
684 RestartSec=5
685 [Install]
686 WantedBy=multi-user.target
687 {{/code}}
688
689 Luego ejecutar:
690
691
692 {{code language="bash"}}
693 systemctl daemon-reload
694 systemctl enable libertyad
695 {{/code}}
696
697 Para iniciar o detener el servicio:
698
699
700 {{code language="bash"}}
701 systemctl start libertyad
702 systemctl stop libertyad
703 {{/code}}
704
705 Para versiones más antiguas de Linux, seguir con los pasos indicados a continuación.
706
707
708 ----
709
710 Para que Libertya ERP pueda iniciar automáticamente al iniciar el sistema operativo, se pueden seguir los siguientes pasos.
711
712 Dado que el inicio del servicio se iniciará internamente con el usuario llamado libertya, se creará el PID del proceso con ese usuario. Como en **/var/run** no tendremos permisos para escritura al iniciar el proceso, se debe crear la carpeta **libertya** dentro de ese directorio, y asignarle el usuario **libertya** como dueño:
713
714
715 {{code language="bash"}}
716 cd /var/run
717 mkdir libertya
718 chown libertya libertya -R
719 {{/code}}
720
721 **IMPORTANTE**: Para versiones más recientes de Linux, será necesario crear una configuración a fin de que el directorio **/var/run/libertya** se regenere adecuadamente ante cada reinicio del sistema. Para ésto, crear y editar el archivo **/etc/tmpfiles.d/libertya.conf** con el siguiente contenido:
722
723
724 {{code language="text"}}
725 d /var/run/libertya 0755 libertya libertya -
726 {{/code}}
727
728 De manera similar a PostgreSQL, Libertya ERP distribuye el script necesario para incorporarlo a la configuración de inicio. Este script se encuentra en **/ServidorOXP/utils/unix** y existen variantes según la distribución del sistema operativo:
729
730 *. libertyad_centos.sh\\
731 *. libertyad_fedora.sh\\
732 *. libertyad_ubuntu-debian.sh
733
734 Para el ejemplo, utlizaremos la opción **libertyad_ubuntu-debian.sh**. Copiamos el script y damos permisos de ejecución al mismo:
735
736
737 {{code language="bash"}}
738 cp /ServidorOXP/utils/unix/libertyad_ubuntu-debian.sh /etc/init.d/libertyad
739 chmod ugo+x /etc/init.d/libertyad
740 {{/code}}
741
742 Luego debemos configurar a fin de que el script se ejecute al inicio, similar a lo realizado con PostgreSQL. Esto dependerá de la distribución de Linux, por ejemplo Red Hat o derivados:
743
744
745 {{code language="bash"}}
746 chkconfig --add libertyad
747 {{/code}}
748
749 o bien para Debian o derivados:
750
751
752 {{code language="bash"}}
753 update-rc.d libertyad defaults
754 {{/code}}
755
756 **NOTA**: En versiones más recientes, es posible utilizar el comando **systemctl**. Para ésto se deben incorporar las siguientes lineas al inicio del script ubicado en **/etc/init.d/libertyad**:
757
758
759 {{code language="text"}}
760 #!/bin/bash
761 ### BEGIN INIT INFO
762 # Provides: libertyad
763 # Required-Start: $ALL
764 # Required-Stop:
765 # Default-Start: 2 3 4 5
766 # Default-Stop: 0 1 6
767 ### END INIT INFO
768 {{/code}}
769
770 Posteriormente ejecutar:
771
772
773 {{code language="bash"}}
774 systemctl enable libertyad
775 {{/code}}
776
777 Para verificar el inicio o detención manualmente, podemos hacer lo siguiente (vale mencionar que especificamente para distros Red-Had, CentOS o deriavos, se requiere previamente realizar los pasos detallados a continuación):
778
779
780 {{code language="bash"}}
781 service libertyad start
782 service libertyad stop
783 {{/code}}
784
785 Si se optó por utilizar la versión con systemctl (systemd) el inicio y detencion manual se realiza con los siguientes comandos:
786
787
788 {{code language="bash"}}
789 systemctl start libertyad
790 systemctl stop libertyad
791 {{/code}}
792
793 Y puede verificarse el estado de la siguiente forma:
794
795
796 {{code language="bash"}}
797 systemctl status libertyad
798 {{/code}}
799
800 **Importante:** el script **libertyad** utiliza el comando **//start-stop-daemon//**, el cual es propio de distribuciones Debian. Este comando puede no estar disponible bajo Red Hat y derivados, con lo cual es necesario instalarlo manualmente.
801
802 Para ésto, será necesario descargar el archivo con los fuentes de la funcionalidad start-stop-daemon, para luego compilarlos:
803
804
805 {{code language="bash"}}
806 cd /usr/local/src
807 wget http://developer.axis.com/download/distribution/apps-sys-utils-start-stop-daemon-IR1_9_18-2.tar.gz
808 {{/code}}
809
810 Desempaquetar el archivo comprimido
811
812
813 {{code language="bash"}}
814 tar zxvf apps-sys-utils-start-stop-daemon-IR1_9_18-2.tar.gz
815 cd apps/sys-utils/start-stop-daemon-IR1_9_18-2/
816 {{/code}}
817
818 Compilar la aplicación
819
820
821 {{code language="bash"}}
822 gcc start-stop-daemon.c -o start-stop-daemon
823 {{/code}}
824
825 Copiar el binario de start-stop-daemon en /usr/sbin
826
827
828 {{code language="bash"}}
829 cp start-stop-daemon /usr/sbin
830 {{/code}}
831
832 En caso de que el servicio no inicie correctamente, se deberá verificar el origen del problema ejecutando el siguiente comando a fin de poder resolver el inconveniente:
833
834
835 {{code language="bash"}}
836 journalctl -u libertyad.service
837 {{/code}}
838
839 En función del error especificado se deberá actuar acordemente a fin de resolver el problema en cuestión, de manera similar a lo realizado en la configuración de inicio automático de postgres.