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
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
Publicar un comentario