Búsqueda de sitios web

Cómo instalar PostgreSQL usando el código fuente en Linux


PostgreSQL, un sistema de gestión de bases de datos relacionales de código abierto, es ampliamente reconocido por sus sólidas funciones y extensibilidad. Si bien muchas distribuciones de Linux proporcionan PostgreSQL a través de sus administradores de paquetes, instalarlo desde el código fuente permite una mayor personalización y control.

En este artículo, explicaremos cómo instalar PostgreSQL 16 mediante la instalación del código fuente en sistemas Linux.

Para aquellos que buscan un método de instalación más sencillo desde el administrador de paquetes de distribución, siga las guías a continuación:

Requisitos previos

Antes de sumergirse en el proceso de instalación de PostgreSQL, asegúrese de que su sistema cumpla con los siguientes requisitos previos:

  • Una distribución de Linux (en esta guía usaremos Debian con fines de demostración).
  • Un sistema Linux con un usuario no root con privilegios sudo.
  • Se instalan herramientas de desarrollo esenciales como GCC y Make.

1. Instalar requisitos previos en Linux

Primero, instale herramientas de desarrollo esenciales como GCC y Make usando el administrador de paquetes de distribución como se muestra.

En distribuciones basadas en RHEL como CentOS, Fedora, Rocky Linux y Alma Linux:

sudo yum groupinstall development-tools
sudo yum install zlib-devel readline-devel libicu-devel

En distribuciones basadas en Debian como Ubuntu y Linux Mint.

sudo apt install gcc build-essential zlib1g-dev libreadline6-dev libicu-dev pkg-config

2. Descargue el código fuente de PostgreSQL

Una vez instalados los requisitos previos necesarios, descargue el archivo tar del código fuente del sitio web oficial de Postgres utilizando el siguiente comando wget directamente en el sistema. Al momento de escribir este artículo, la última versión es PostgreSQL 16.1.

wget https://ftp.postgresql.org/pub/source/v16.1/postgresql-16.1.tar.bz2

A continuación, utilice el comando tar para extraer el archivo tarball descargado. Se creará un nuevo directorio llamado postgresql-16.1.

tar -xvf postgresql-16.1.tar.bz2
cd postgresql-16.1/
ls -l

Resultado de muestra:

-rw-r--r--.  1 tecmint tecmint    365 Nov  7 03:34 aclocal.m4
drwxr-xr-x.  2 tecmint tecmint   4096 Nov  7 03:47 config
-rwxr-xr-x.  1 tecmint tecmint 584560 Nov  7 03:34 configure
-rw-r--r--.  1 tecmint tecmint  87292 Nov  7 03:34 configure.ac
drwxr-xr-x. 61 tecmint tecmint   4096 Nov  7 03:47 contrib
-rw-r--r--.  1 tecmint tecmint   1192 Nov  7 03:34 COPYRIGHT
drwxr-xr-x.  3 tecmint tecmint   4096 Nov  7 03:47 doc
-rw-r--r--.  1 tecmint tecmint   4288 Nov  7 03:34 GNUmakefile.in
-rw-r--r--.  1 tecmint tecmint    277 Nov  7 03:34 HISTORY
-rw-r--r--.  1 tecmint tecmint  64601 Nov  7 03:48 INSTALL
-rw-r--r--.  1 tecmint tecmint   1875 Nov  7 03:34 Makefile
-rw-r--r--.  1 tecmint tecmint 102017 Nov  7 03:47 meson.build
-rw-r--r--.  1 tecmint tecmint   6266 Nov  7 03:34 meson_options.txt
-rw-r--r--.  1 tecmint tecmint   1213 Nov  7 03:34 README
drwxr-xr-x. 16 tecmint tecmint   4096 Nov  7 03:48 src

3. Configurar PostgreSQL desde la fuente

Como postgres es una base de datos de código abierto, se puede construir a partir del código fuente de acuerdo con las necesidades/requisitos de cada uno. Podemos personalizar el proceso de compilación e instalación proporcionando una o más opciones de línea de comando para varias funciones adicionales.

Utilice el siguiente comando para obtener ayuda con varias opciones y uso de configuración, como se muestra.

./configure --help

Ahora ejecute el script de configuración, que verificará las dependencias de su sistema y configurará la compilación en consecuencia.

./configure

4. Instale PostgreSQL desde la fuente

Una vez configurado, utilice los siguientes comandos para compilar e instalar PostgreSQL desde el código fuente.

make
sudo make install

5. Creando un usuario de Postgres

Ahora cree un usuario y un directorio postgres para usarlos como directorio de datos para inicializar el clúster de la base de datos. El propietario de este directorio de datos debe ser un usuario de postgres y los permisos deben ser 700. También establezca una ruta para los archivos binarios de PostgreSQL para nuestra comodidad.

sudo useradd postgres
sudo passwd postgres
sudo mkdir -p /pgdatabase/data
sudo chown -R postgres: /pgdatabase/data
sudo sh -c "echo 'export PATH=$PATH:/opt/PostgreSQL/bin' > /etc/profile.d/postgres.sh"
source /etc/profile.d/postgres.sh 

6. Inicializando la base de datos de Postgres

Ahora inicialice la base de datos usando el siguiente comando como usuario de postgres antes de usar cualquier comando de postgres.

su postgres
initdb -D /pgdatabase/data/ -U postgres -W

Donde -D es la ubicación de este clúster de base de datos o podemos decir que es el directorio de datos donde queremos inicializar el clúster de base de datos, -U para el nombre de superusuario de la base de datos y -W para solicitar contraseña para el superusuario de la base de datos.

Para obtener más información y opciones, podemos consultar initdb --help.

7. Inicie el servicio PostgreSQL

Después de inicializar la base de datos, inicie el clúster de la base de datos o, si necesita cambiar el puerto o escuchar la dirección del servidor, edite el archivo /pgdatabase/data/postgresql.conf en el directorio de datos de el servidor de base de datos.

nano /pgdatabase/data/postgresql.conf

Ahora, inicie el servicio PostgreSQL.

pg_ctl -D /pgdatabase/data/ start

Después de iniciar la base de datos, verifique el estado del proceso del servidor postgres utilizando los siguientes comandos ps y netstat.

ps -ef |grep -i postgres
netstat -apn |grep -i 51751

Podemos ver que el clúster de la base de datos está funcionando bien y los registros de inicio se pueden encontrar en la ubicación especificada con la opción -l al iniciar el clúster de la base de datos.

pg_ctl -D /pgdatabase/data/ -l logfile start

8. Conéctese a PostgreSQL

Ahora conéctese al clúster de la base de datos y cree una base de datos utilizando los siguientes comandos.

psql -p 5432
postgres=# create database test;
postgres=# \l to list all databases in cluster
postgres=# \q to quit form postgres console

Si está buscando una herramienta gráfica llamada pgAdmin para administrar su PostgreSQL, siga estas guías para instalar pgAdmin en su distribución de Linux.

Conclusión

Ha instalado correctamente PostgreSQL desde el código fuente en su sistema Linux. Este proceso proporciona flexibilidad y control sobre su instalación de PostgreSQL, permitiéndole adaptarla a sus requisitos específicos.