Instalación de PostgreSQL en RedHat 7.5 desde código fuente

¡Bienvenidos nuevamente!

En esta oportunidad vamos a estar instalando un servidor de PostgreSQL 9.2 en un servidor RedHat 7.5. No aclaré la versión del motor en el título del post ya que las instalaciones desde el código fuente son más o menos iguales para todas las versiones de PostgreSQL, y este documento puede ser de ayuda para todas ellas.

Vale aclarar, no soy experto. Simplemente documento en este post los pasos que a mi me sirvieron para realizar esta tarea. Puede estar bien o mal, puede haber mejores o peores formas, pero esta me sirvio.

¡Basta de cháchara y manos al código!

PostgreSQL nos exige básicamente dos dependencias, ellas son:

 - GNU Readline: es una librería necesaria para recordar los comandos que utilicemos con la herramienta psql al estilo Linux. Podemos instalar PostgreSQL sin ella pero es altamente recomendable.

- Zlib: es una librería necesaria para la compresión de archivos cuando utilizamos pg_dum o pg_restore.

Si nuestro servidor ya tiene alguna instalación de PostgreSQL, puede que ya estén instaladas, podemos verificarlo con los siguientes comandos:

yum list installed | grep readline
yum list installed | grep zlib

En la salida deben de existir paquetes con este nombre (o similares):

readline-devel.x86_64

zlib-devel.x86_64

Lo importante es que tengan el "devel", porque lo que necesitamos son las librerías de desarrollo. Si esto es así, pueden saltearse este paso.

Si no tenemos las librerías instaladas, paso primero, instalémoslas en nuestro sistema operativo. 

Busquemos con el comando "yum search readline" para ver si tenemos esta librería disponible para instalar en nuestro repositorio. 

En el resultado deberíamos ver un paquete con el siguiente nombre o similar "readline-devel.x86_64". Procedemos a instalarlo con "yum install readline-devel.x86_64".

 Segundo paso, realizar lo mismo para la librería Zlib.

yum search zlib
yum install zlib-devel.x86_64

Si corremos de nuevo los comandos de busqueda ya nos deberían aparecer instaladas.

yum list installed | grep readline
yum list installed | grep zlib

 Muy bien, ya tenemos todo lo necesario. Comencemos con la instalación del motor.

En el siguiente link podemos encontrar todos los códigos fuente de todas las versiones de PostgreSQL, en este caso voy a elegir la 9.2. La descargamos y pasamos a nuestro servidor mediante alguna herramienta FTP.

https://www.postgresql.org/ftp/source/

Archivo elegido: postgresql-9.2.24.tar.gz

Lo descomprimimos con el siguiente comando: tar -xvzf postgresql-9.2.24.tar.gz

Luego accedemos a la carpeta y ejecutamos en la terminal (con usuario root):

./configure
gmake
gmake install

Luego de ejecutar estos comandos que seguramente demorarán varios minutos, ya tenemos instalado el servidor PostgreSQL en nuestro sistema.

Sigamos trabajando, ahora debemos de crear el usuario que va a administrar el sistema, por defecto lo denominamos "postgres":

adduser postgres
passwd postgres
Le ponemos una contraseña segura

Ahora debemos de crear la carpeta "data" para inicializar nuestro servidor.

Yo decidí crearlo en la siguiente ruta: /opt/apps/pgsql/9.2/data

Para inicializar la base de datos se nos exige que el usuario postgres sea el dueño de la carpeta data y que los permisos sobre ella sean 700, para ello:

chown postgres:postgres /opt/apps/pgsql/9.2/data
chmod 700 /opt/apps/psql/9.2/data

Estamos listos, inicialicemos el servidor:

/usr/local/pgsql/bin/initdb -D /opt/apps/pgsql/9.2/data -W

Nota: la ruta del ejecutable initdb puede variar dependiendo de la versión del sistema. En este caso esa es la ruta donde me dejo los binarios.

Y estamos listos, solo nos resta arrancar el servidor:

/usr/local/pgsql/bin/pg_ctl -D /opt/apps/pgsql/9.2/data -l /opt/apps/pgsql/9.2/data/startup_log.log start

Si nos fue bien... ¡LISTO!

Podemos probar acceder al servidor desde el cliente psql

/usr/local/pgsql/bin/psql

Ahora, para facilidad, configuremos un script para gestionar el servicio del servidor.

Hace un tiempo encontré este script y es el que vengo utilizando:

https://www.manniwood.com/2005_01_0 /postgresql_startup_script_for_etcinitd.html

Copiamos el contenido y creamos un archivo en /etc/init.d/postgresql_service

Cambiamos los permisos para que se pueda ejecutar:

chmod 755 /etc/init.d/postgresql_service

Nota: debemos modificar las variables como por ejemplo el directorio para el DATA o los binarios.

Una vez este pronto, ya podemos gestionar el servicio de PostgreSQL

/etc/init.d/postgresql_service start|status|stop|restart

Podemos también agregar este script para que se ejecute en el boot del sistema, por si tenemos un reinicio por ejemplo, para ello:

chkconfig --add postgresql_service

Terminamos, ¡ya tenemos nuestro servidor PostgreSQL!

¡Hasta la próxima!

Referencias:

https://www.postgresql.org/docs/9.3/installation.html
https://access.redhat.com/es/solutions/238003
https://www.manniwood.com/2005_01_01/postgresql_startup_script_for_etcinitd.html

Comentarios

Entradas más populares de este blog

Cómo obtener las queries bloqueadas y liberarlas en PostgreSQL

Cómo crear un usuario de sólo lectura en PostgreSQL

Permisos en PostgreSQL