====== Guia de instalación libertya en Linux Ubuntu ====== ===== Guía de instalación Libertya en Ubuntu. ===== Esta es una recopilación de los threads del foro: [[http://www.libertya.org/component/option,com_kunena/Itemid,82/catid,7/func,view/id,654/||Instalacion de Libertya 9.10 en Ubuntu Server 9.10]] y [[http://www.libertya.org/component/option,com_kunena/Itemid,82/catid,7/func,view/id,774/#779||Actualizacion del script libertyad]]. Los mismos son una colaboración de [[http://www.libertya.org/component/option,com_kunena/Itemid,82/func,fbprofile/task,showprf/userid,1199/||Hermann Schimpf]]. ==== Instalar Ubuntu Server 9.10 ==== Instalamos el sistema base. OBS: Para este ejemplo se utilizo la version de 32 bits. Si se desea utilizar una version de 64 bits se debera modificar las rutas a los ficheros JDK y otros. **No seleccionar Postgresql desde la instalacion ya que instalara la version 8.4 y aqui utilizaremos la version 8.3.** ==== Instalacion de Postgres 8.3, pgAdmin III y JDK 1.6 ==== Si hemos instalado el synaptic podemos ingresar a este y seleccionar los paquetes. O podemos ejecutar el siguiente comando el cual instalara estos paquetes desde consola: sudo apt-get install postgresql-8.3 pgadmin3 sun-java6-jdk Los directorios de estos paquetes quedaran de la siguiente manera: **Postgres:** /usr/lib/postgressql/8.3/ **JDK:** Directorio Home de la instalacion de java /usr/lib/jvm/java-6-sun-1.6.0.16/ **Enlace simbolico a /usr/lib/jvm/java-6-sun-1.6.0.16 (no lo utilizaremos)**: /usr/lib/jvm/java-6-sun ==== Descargar Libertya 9.10 ==== Descomprimirlo en /ServidorOXP. Ubicarse en el directorio /ServidorOXP y ejecutar el siguiente comando para asignar permisos de ejecucion a todos los ficheros bash: sudo chmod 777 -R *.sh ==== Configuramos Postgres y pljava ==== Editamos el fichero enviroment de postgres: sudo vi /etc/postgresql/8.3/main/environment Le agregamos una linea con el directorio de java: JAVA_HOME='/usr/lib/jvm/java-6-sun-1.6.0.16' Editamos el fichero pg_hba.conf de postgres: sudo vi /etc/postgresql/8.3/main/pg_hba.conf Lo dejamos de la siguiente manera asignando trust para que permita el acceso desde cualquier lugar: # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 trust host all all 0/0 trust # IPv6 local connections: host all all ::1/128 trust Editamos el archivo postgresql.conf ubicado en el mismo directorio sudo vi /etc/postgresql/8.3/main/postgresql.conf Buscamos siguiente linea: #listen_addresses = 'localhost' La descomentamos y le asignamos '*' al valor quedando de la siguiente manera: listen_addresses = '*' Buscamos la siguiente linea #dynamic_library_path = '$libdir' La descomentamos y le asignamos como valor el directorio de librerias del postgres quedando de la siguiente manera: dynamic_library_path = '$libdir:/usr/lib/jvm/java-6-sun-1.6.0.16/jre/lib/i386:/usr/lib/jvm/java-6-sun-1.6.0.16/jre/lib/i386/client:/usr/lib/postgresql/8.3/lib:/ServidorOXP/lib' Buscamos la siguiente linea: #custom_variable_classes = // La descomentamos y le asignamos pljava: custom_variable_classes = 'pljava' Agregamos luego de la linea anterior la siguiente linea con la ruta al fichero pljava.jar (mas adelante copiaremos el fichero en esta ubicacion): pljava.classpath = '/usr/lib/postgresql/8.3/lib/pljava.jar' Editamos el fichero de configuracion de pljava (si no existe lo creamos) sudo vi /etc/ld.so.conf.d/pljava.conf Le agregamos las siguientes lineas: /usr/lib/jvm/java-6-sun-1.6.0.16/jre/lib/i386 /usr/lib/jvm/java-6-sun-1.6.0.16/jre/lib/i386/client /usr/lib/jvm/java-6-sun-1.6.0.16/jre/lib/i386/server /usr/lib/jvm/java-6-sun-1.6.0.16/jre/lib/i386/native_threads Descargamos el paquete de instalacion pljava-i686-pc-linux-gnu-pg8.3-1.4.0.tar.gz. Pueden descargarlo de este enlace: [[http://pgfoundry.org/frs/download.php/1598/pljava-i686-pc-linux-gnu-pg8.3-1.4.0.tar.gz]]. Creamos un directorio pljava: mkdir pljava Mover el fichero descargado a la carpeta: mv pljava-i686-pc-linux-gnu-pg8.2-1.4.0.tar.gz pljava/ Nos situamos en la carpeta pljava y descomprimimos el fichero: cd pljava tar xvf pljava-i686-pc-linux-gnu-pg8.2-1.4.0.tar.gz Copiamos los archivos pljava.jar y pljava.so al directorio de librerias del postgresql: sudo cp pljava.* /usr/lib/postgresql/8.3/lib/ Asignamos permisos de ejecucion sobre estos ficheros. (me ha sucedido de que en un paso mas adelante me daba errores y el problema era ese): sudo chmod 777 /usr/lib/postgresql/8.3/lib/pljava.* Ejecutamos el comando ldconfig para cargar las configuraciones realizadas sudo ldconfig Reiniciamos el servidor postgresql sudo /etc/init.d/postgresql-8.3 restart Ahora debemos instalar el pljava. Nos vamos a la carpeta donde descomprimos el pljava y ejecutamos el siguiente comando: psql -U postgres -f install.sql Verifiquen que este comando no retorne errores. Este paso no tiene que fallar. ==== Creacion de Usuarios y DB ==== Ingresamos al pgAdmin para crear el usuario y DB libertya. Si no se tiene entorno grafico se puede ejecutar el siguiente comando desde consola para crear el ROL de LOGIN: psql -U postgres -c "CREATE ROLE libertya LOGIN ENCRYPTED PASSWORD 'md52b2861c4d594f29f9ce9107c4560f3ae' SUPERUSER CREATEDB CREATEROLE VALID UNTIL 'infinity' IN ROLE postgres; UPDATE pg_authid SET rolcatupdate=true WHERE rolname='libertya';" Y este creara la DB: psql -U postgres -c "CREATE DATABASE libertya WITH ENCODING='UTF8' OWNER=libertya;" Ahora debemos instalar el pljava en la DB libertya. Ejecutamos el siguiente comando desde el directorio donde este el fichero install de pljava: psql -d libertya -U libertya -f install.sql Luego corremos el dump de la base de datos libertya: psql -d libertya -U libertya -f libertya_final_0910i.sql Despues de instalar el dump hay que actualizar el sqlj. Lo realizamos mediante el siguiente comando: psql -d libertya -U libertya -c "select sqlj.install_jar('file:///ServidorOXP/lib/sqlj.jar', 'libertya', true); select sqlj.set_classpath('libertya', 'libertya');" ==== Configuracion Inicial de Libertya ==== En este paso ya hemos configurado todo lo necesario para iniciar Libertya. Lo que debemos realizar ahora es ejecutar el script de configuracion inicial de libertya. Nos vamos a la carpeta /ServidorOXP y ejecutamos el siguiente comando (este paso requiere de entorno grafico): cd /ServidorOXP sudo ./Configurar.sh Comprobamos los directorios de instalación de Java y Libertya: **Servidor de Aplicaciones**: para utilizar nombres en lugar de direcciones ip, debemos poner a punto el fichero /etc/hosts, incluyendo en él los pares nombre/dirección_ip necesarios. **Puerto web**: 80 (si nos dice que esta en uso podemos utilizar algun otro como 8080 o 8088) **Servidor de base de datos**: igual que el servidor de aplicaciones. **Usuario de la base de datos**: libertya. **Contraseña**: libertya. **Tipo de base de datos**: PostgreSQL **Puerto BD**: dejar el que viene por defecto. **Servidor de correo**: Puede ser la propia máquina si ejecutas sendmail. También vale con el servidor de correo de tu isp. El sistema lo utilizará para enviar los mails salientes desde la aplicación. Luego de verificar estos datos comprobamos que las configuraciones esten bien mediante el boton comprobar. Si todo fue bien guardamos los cambios. Nos mostrara un mensaje de que los datos han sido guardados. No cerremos la ventana luego de este mensaje puesto que luego del mensaje ejecuta algunas configuraciones. Al finalizar las configuraciones la ventana se cerrara sola. ==== Iniciar Libertya ==== Ya hemos configurado completamente libertya. Ahora solo nos queda iniciar el servidor. Yo realize un script para iniciarlo puesto que debemos setear algunas variables de entorno antes de iniciar el servidor. El contenido es el siguiente: #! /bin/bash export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.16 export OXP_HOME=/ServidorOXP cd /ServidorOXP/utils/ ./IniciarServidor.sh Le asignamos permisos de ejecucion y lo corremos como root: sudo chmod 777 iniciarLibertya.sh sudo ./iniciarLibertya.sh Este proceso durara aproximadamente un minuto dependiendo de la configuracion de hardware del servidor. Este script mostrara una linea parecida a la siguiente con la que sabremos que el servidor Libertya ya ha iniciado correctamtente: 12:51:09,350 INFO [[Server]] JBoss (MX MicroKernel) [[4.0.2|(build: CVSTag=JBoss_4_0_2 date=200505022023)]] Started in 32s:964ms Ahora podemos acceder al navegador web y ejecutar el cliente libertya. localhost:8080 (u 8088, dependiendo del que se especifico en la configuracion) ===== Registrar Libertya como servicio ===== En mi caso yo destine un servidor para libertya. Asi que realize un script para que inicie automaticamente el servidor Libertya cuando inicia Ubuntu. Creamos el fichero /etc/init.d/libertyad con el siguiente contenido: #!/bin/bash ## Libertyad v0.3 ## path: /etc/init.d/libertyad ## author: Hermann D. Schimpf # verificamos si el usuario es root if [[|$EUID -ne 0 ]] ;then # mostramos un mensaje echo "Se requiere ejecutar como root" 2>&1 # salimos de la ejecucion exit 1 fi # creamos una funcion function findLogs() { # esta funcion retorna la cantidad de ficheros log del directorio de Libertya (( $1 = `find /ServidorOXP/log/ServidorOXP_\`date +%Y-%m-%d\`_* -type f -exec ls -l {} \; | wc -l` )) } # almacenamos el nombre del fichero PID para el demonio Libertya PID=/var/run/libertya.pid # almacenamos la ruta al script a ejecutar para iniciar el demonio Libertya STARTLIBERTYA=/ServidorOXP/utils/IniciarServidor.sh # almacenamos la ruta al script para detener el demonio Libertya STOPLIBERTYA=/ServidorOXP/utils/./DetenerServidor.sh # ingresamos a un case para verificar que accion tomamos case "$1" in # si especifico 'start' start) # mostramos un mensaje echo -n "Iniciando servidor Libertya... " # verificamos si el demonio esta corriendo if test -f $PID ;then # mostramos un mensaje echo "El servidor ya se encuentra iniciado" else # exportamos la variable con la ruta a java export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.15 # exportamos la variable con la ruta al servidor de aplicaciones export OXP_HOME=/ServidorOXP # iniciamos el servidor de aplicaciones como demonio start-stop-daemon --start --background -m --pidfile $PID --exec $STARTLIBERTYA # obtenemos la cantidad actual de ficheros findLogs cantLogs # obtenemos la cantidad actual de ficheros findLogs cantLogsNew # ingresamos a un bucle, mientras exista la misma cantidad de ficheros while [[|$cantLogs = $cantLogsNew ]]; do # esperamos 500 milisegundos sleep 0.5 # volvemos a obtener la cantidad de ficheros findLogs cantLogsNew done # mostramos ok al mensaje echo "OK" fi ;; # si especifico stop stop) # mostramos un mensaje echo -n "Deteniendo servidor Libertya... " # verificamos si el demonio esta corriendo if test -f $PID ;then # detenemos el demonio $STOPLIBERTYA -S > /dev/null 2>&1 # esperamos 10 segundos sleep 10; # eliminamos el fichero PID del demonio rm -f $PID # mostramos ok al mensaje echo "OK" else # mostramos un mensaje echo "El servidor no esta iniciado" fi ;; # si especifico restart restart) # nos reejecutamos con el comando stop $0 stop # esperamos un segundo sleep 1 # nos reejecutamos con el comando start $0 start ;; # en cualquier otro caso *) # mostramos un mensaje echo "Utilizacion: /etc/init.d/$0 {start|stop|restart}" # salimos de la ejecucion exit 1 ;; esac exit 0 Le asignamos permisos de ejecucion: sudo chmod 777 /etc/init.d/libertyad Registramos el script como servicio del sistema mediante el siguiente comando sudo update-rc.d libertyad defaults Ahora al iniciar Ubuntu el servidor Libertya iniciara automaticamente. Podemos manejar el servidor Libertya mediante los siguientes comandos: sudo /etc/init.d/libertyad start sudo /etc/init.d/libertyad stop sudo /etc/init.d/libertyad restart