He compilado e instalado con éxito la última versión de PostgreSQL (17.4) en Ubuntu ARM32.
Los comandos de este artículo provienen principalmente de la documentación oficial de PostgreSQL. Ya he probado cada comando de este artículo.
Puede ver los sistemas donde la instalación fue exitosa aquí Granja de construcción de PostgreSQL
Compilar e instalar PostgreSQL 17.4
1. Crear un directorio y entrar en él
mkdir postgresql && cd postgresql
mkdir postgresql
: Crea un nuevo directorio llamadopostgresql
.cd postgresql
: Entra en el directoriopostgresql
recién creado.
2. Descargar el código fuente de PostgreSQL
wget https://ftp.postgresql.org/pub/source/v17.4/postgresql-17.4.tar.bz2
wget
: Descarga un archivo desde la URL especificada.https://..../postgresql-17.4.tar.bz2
: Enlace de descarga del paquete de código fuente comprimido de la versión 17.4 de PostgreSQL. Si el enlace no funciona, puede buscar un nuevo enlace usted mismo.
3. Descomprimir el paquete de código fuente
tar xjf postgresql-17.4.tar.bz2
-
tar
: Se utiliza para procesar archivos comprimidos.tar
. -
xjf
: Opciones para descomprimir archivostar
:x
: Descomprimir el archivo.j
: Utiliza el formato de compresión bzip2 (.bz2).f
: Especifica el archivo a descomprimir.
-
postgresql-17.4.tar.bz2
: El nombre del archivo a descomprimir.
4. Entrar en el directorio del código fuente descomprimido
cd postgresql-17.4
- Entra en el directorio del código fuente descomprimido de PostgreSQL 17.4.
5. Instalar los paquetes de dependencia
sudo apt install libssl-dev libsystemd-dev libxml2-dev libreadline-dev
sudo apt install
: Utiliza el gestor de paquetesapt
para instalar los paquetes.libssl-dev
,libsystemd-dev
,libxml2-dev
,libreadline-dev
: Instala las bibliotecas de desarrollo necesarias para compilar PostgreSQL, que son la biblioteca SSL, la biblioteca Systemd, la biblioteca XML y la biblioteca Readline, respectivamente.
6. Configurar las opciones de compilación
./configure --prefix=/usr/local/pgsql --with-openssl --with-libxml --with-systemd
./configure
: Prepara el entorno de compilación de PostgreSQL.--prefix=/usr/local/pgsql
: Especifica el directorio de instalación de PostgreSQL como/usr/local/pgsql
.--with-openssl
: Habilita el soporte de OpenSSL.--with-libxml
: Habilita el soporte de XML.--with-systemd
: Habilita el soporte de Systemd.
7. Compilar el código fuente
make -j$(nproc)
make
: Inicia el proceso de compilación.-j$(nproc)
: Utilizanproc
(el número de núcleos de CPU del sistema) para ejecutar tareas de compilación en paralelo, acelerando el proceso de compilación.
8. Instalar PostgreSQL
sudo make install
sudo make install
: Utilizasudo
para ejecutar la instalación con permisos de administrador,make install
instala los archivos compilados en el sistema, instalándolos en el directorio/usr/local/pgsql
especificado en el comando./configure
anterior.
9. Establecer variables de entorno
Utilice un editor de texto 1. Edite el archivo /etc/profile
:
sudo nano /etc/profile
sudo
: Indica que el comando se ejecuta con permisos de superusuario (administrador). Esto se debe a que la modificación del archivo/etc/profile
requiere permisos de administrador.nano
: Este es un editor de texto, que se utiliza a menudo para editar archivos en un entorno de terminal./etc/profile
: Este es un archivo de configuración global, que se utiliza para establecer variables de entorno y configuraciones de inicio en todo el sistema. Todos los usuarios ejecutarán la configuración en este archivo al iniciar sesión en el sistema.
- Agregar variables de entorno:
export PATH=/usr/local/pgsql/bin:$PATH
export
: Se utiliza para establecer una variable de entorno, haciéndola disponible en el proceso actual y en los subprocesos.PATH
: Esta es una variable de entorno que contiene una lista de directorios de archivos ejecutables en el sistema. Cuando se ejecuta un comando, el sistema busca el comando de acuerdo con los directorios enumerados en la variablePATH
./usr/local/pgsql/bin
: Este es el directorio de archivos ejecutables de la base de datos PostgreSQL, agregarlo significa que los archivos ejecutables en este directorio (comopsql
) serán reconocidos por el sistema.:$PATH
: Aquí,$PATH
representa la ruta original existente, y la nueva ruta/usr/local/pgsql/bin
se agrega al principio de laPATH
original. De esta forma, el sistema primero comprobará el nuevo directorio y luego comprobará la ruta original.
La función de este comando es agregar el directorio de archivos ejecutables de PostgreSQL a la variable de entorno PATH
del sistema, asegurando que los comandos de PostgreSQL (como psql
) se puedan ejecutar directamente en la línea de comandos sin proporcionar la ruta completa. La configuración modificada se aplica a todos los usuarios.
Inicializar la base de datos PostgreSQL
Estos comandos se utilizan principalmente para configurar manualmente el servidor de base de datos PostgreSQL en un servidor Linux, incluida la creación de un usuario del sistema PostgreSQL, la inicialización de la base de datos, el inicio del servicio de base de datos y su registro como un servicio systemd
para que se inicie automáticamente al arrancar.
1. Crear un usuario de PostgreSQL
sudo useradd -m -U -r -d /var/lib/postgresql -s /bin/bash postgres
sudo
: Ejecuta el comando con permisos de superusuario.useradd
: Crea un nuevo usuario.-m
: Crea el directorio home del usuario.-U
: Crea también un grupo de usuarios con el mismo nombre que el nombre de usuario.-r
: Crea un usuario del sistema (el UID del usuario del sistema es inferior a 1000, no se utiliza para iniciar sesión).-d /var/lib/postgresql
: Especifica el directorio home como/var/lib/postgresql
.-s /bin/bash
: Especifica el shell como/bin/bash
.postgres
: Nombre de usuario.
Este comando crea un usuario del sistema dedicado a PostgreSQL llamado postgres
.
2. Cambiar el propietario del directorio PostgreSQL
sudo chown postgres /usr/local/pgsql
chown postgres /usr/local/pgsql
: Cambia el propietario del directorio/usr/local/pgsql
al usuariopostgres
, para que pueda leer y escribir en el directorio.
3. Establecer la contraseña del usuario de PostgreSQL
sudo passwd postgres
passwd postgres
: Modifica la contraseña del usuariopostgres
.
4. Cambiar al usuario de PostgreSQL
su postgres
su postgres
: Cambia al usuariopostgres
para poder utilizar los comandos relacionados con PostgreSQL.
5. Inicializar la base de datos
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
initdb -D /usr/local/pgsql/data
: Inicializa el almacenamiento de la base de datos en el directorio/usr/local/pgsql/data
.
6. Iniciar la base de datos PostgreSQL
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
postgres -D /usr/local/pgsql/data
: Inicia la base de datos como un procesopostgres
, y los datos se almacenan en el directorio/usr/local/pgsql/data
.
7. En otra sesión de terminal, entrar en la base de datos
su postgres
/usr/local/pgsql/bin/psql
psql
: La herramienta de interacción de línea de comandos de PostgreSQL, entra en el shell de la base de datos.
8. Establecer la contraseña del usuario de la base de datos
ALTER USER postgres WITH PASSWORD 'your_new_password';
- Modifica la contraseña del usuario de la base de datos
postgres
.
9. Crear un servicio systemd
sudo nano /etc/systemd/system/postgresql.service
nano /etc/systemd/system/postgresql.service
: Edita el archivo de configuración desystemd
para que PostgreSQL pueda ejecutarse como un servicio.
Contenido del archivo de configuración:
[Unit]
Description=PostgreSQL server
#Documentation=man:postgres(1)
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
User=postgres
ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
KillSignal=SIGINT
TimeoutSec=infinity
[Install]
WantedBy=multi-user.target
Description=PostgreSQL server
: Describe que este servicio es el servidor PostgreSQL.After=network-online.target
: Espera a que la conexión de red esté disponible antes de iniciar PostgreSQL.User=postgres
: Se ejecuta como el usuariopostgres
.ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
: Inicia el servidor PostgreSQL.ExecReload=/bin/kill -HUP $MAINPID
: Envía la señalHUP
al recargar.KillMode=mixed
: Modo de terminación mixto.KillSignal=SIGINT
: La señal para terminar el proceso PostgreSQL.TimeoutSec=infinity
: El tiempo de espera se establece en infinito.
10. Habilitar el servicio systemd
sudo systemctl daemon-reload
sudo systemctl start postgresql
sudo systemctl status postgresql
sudo systemctl enable postgresql
daemon-reload
: Recarga la configuración desystemd
para que el nuevopostgresql.service
entre en vigor.start postgresql
: Inicia el servicio PostgreSQL.status postgresql
: Comprueba el estado de funcionamiento de PostgreSQL.enable postgresql
: Inicia PostgreSQL automáticamente al arrancar.
El propósito de estos comandos es:
- Crear un usuario
postgres
dedicado a ejecutar PostgreSQL. - Inicializar el directorio de almacenamiento de la base de datos.
- Iniciar la base de datos PostgreSQL y entrar en la línea de comandos interactiva
psql
. - Configurar
systemd
para que PostgreSQL se ejecute como un servicio del sistema y admita el inicio automático al arrancar.
De esta forma, el servidor PostgreSQL puede funcionar normalmente y puede iniciarse automáticamente al iniciar el sistema.
Referencias
PostgreSQL: Documentación: 17: Capítulo 17. Instalación desde el código fuente
Otras versiones de esta página web
Este artículo tiene versiones en varios idiomas.
Si desea publicar un comentario, visite la siguiente página web:
Estas páginas web solo admiten la navegación, no pueden publicar comentarios ni mensajes, pero ofrecen más opciones de idiomas y tienen tiempos de carga más cortos:
ZH EN ZH-TW JA RU KO CS ES AR FR PT DE TR IT NL SV DA FI PL UK HE RO HU EL HR TH HI BN ID SW VI NO
Este artículo fue traducido de Chinese (Simplified) a Spanish por AI.