Conceptos básicos de instalación
8 ejemplos para instalar PostgreSQL 18 en plataformas comunes: 6 básicos y 2 intermedios.
Requisitos previos
# Verifica que tienes sudo o root para las instalaciones de paquetes
uname -a- Objetivo: PostgreSQL 18.4 (estable 18) o la versión menor actual de tu versión mayor compatible.
- Prefiere los paquetes oficiales sobre las compilaciones desde el código fuente, a menos que necesites indicadores de compilación personalizados.
- Ejecuta el usuario del sistema operativo de la base de datos como una cuenta dedicada
postgres, nunca como root.
Ejemplos básicos
1. Comprobar la versión instalada
Confirma lo que ya está en el host antes de cambiar nada.
psql --version
postgres --versionpsqles el cliente;postgreses el binario del servidor.- La versión mayor debe coincidir entre el cliente y el servidor para las restauraciones de
pg_dump. - Las instancias administradas en la nube ocultan el binario; usa
SELECT version();en su lugar.
Relacionado: initdb y Directorio de Datos - configuración inicial del clúster
2. Instalar en Debian/Ubuntu
Usa el repositorio apt de PGDG para las versiones mayores actuales.
sudo apt install -y postgresql-common
sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
sudo apt update
sudo apt install -y postgresql-18 postgresql-client-18- PGDG rastrea las versiones más rápido que los paquetes predeterminados de la distribución.
postgresql-18crea un clúster medianteinitdbautomáticamente en sistemas de la familia Debian.- Fija la versión mayor en la automatización; no confíes únicamente en el metapackage
postgresql.
3. Instalar en RHEL/Rocky/Alma
Habilita el repositorio yum de PGDG e instala el paquete del servidor.
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo dnf -qy module disable postgresql
sudo dnf install -y postgresql18-server postgresql18
sudo /usr/pgsql-18/bin/postgresql-18-setup initdb
sudo systemctl enable --now postgresql-18- Deshabilita el módulo
postgresqlpredeterminado para evitar conflictos de versiones. postgresql-18-setup initdbcreaPGDATAen/var/lib/pgsql/18/data.- Habilita la unidad de systemd al arrancar para hosts de producción.
Relacionado: Systemd y Gestión de Servicios - iniciar/detener/recargar
4. Instalar en macOS (Homebrew)
Instalaciones rápidas de desarrollo local en Macs con Apple Silicon o Intel.
brew install postgresql@18
brew services start postgresql@18
echo 'export PATH="/opt/homebrew/opt/postgresql@18/bin:$PATH"' >> ~/.zshrc- Homebrew no crea un usuario de sistema
postgres; tu usuario de macOS es el propietario del directorio de datos. - Añade la ruta
bin"keg-only" aPATHparapsqleinitdb. - Adecuado para desarrollo; usa paquetes o contenedores para paridad de producción.
5. Verificar que el servidor se está ejecutando
Conéctate localmente y lee la versión del catálogo.
SELECT version();
SHOW server_version;
SHOW data_directory;server_versiones el GUC numérico;version()incluye los indicadores de compilación.data_directoryconfirma quéPGDATAutiliza esta instancia.- Si la conexión falla, comprueba
pg_hba.confy si el servicio está activo.
6. Paquetes vs. Compilación desde Código Fuente
Elige paquetes a menos que tengas una razón documentada para compilar.
| Enfoque | Usar cuando | Evitar cuando |
|---|---|---|
| Paquetes OS/PGDG | Producción, parches, contratos de soporte | Necesitas parches no publicados |
| Imagen Docker | Desarrollo, CI, entornos efímeros | Necesitas ajuste a nivel de host sin contenedores |
| Compilación desde código fuente | Extensiones personalizadas, indicadores de CPU específicos | OLTP estándar con limitaciones de ancho de banda del equipo de operaciones |
- Los paquetes proporcionan combinaciones probadas de bibliotecas y unidades de systemd.
- Las compilaciones desde código fuente transfieren la responsabilidad de los parches a tu equipo.
- Documenta el método de instalación en tu runbook en cualquier caso.
Ejemplos intermedios
7. Docker para desarrollo local
Ejecuta una instancia aislada de 18.x sin afectar la instalación del host.
docker run -d \
--name pg18 \
-e POSTGRES_PASSWORD=devonly \
-p 5432:5432 \
-v pg18data:/var/lib/postgresql/data \
postgres:18.4- El volumen con nombre
pg18datapersiste los datos entre reinicios del contenedor. - Monta directorios del host solo cuando entiendas el mapeo de UID en Linux.
- Nunca uses contraseñas predeterminadas fuera de localhost.
Relacionado: pg_hba.conf y Autenticación - refuerza la autenticación después del arranque
8. Versiones base de sistemas operativos compatibles
Alinea el sistema operativo del host con las ventanas de soporte del proveedor.
| Familia de SO | Versión base | Notas |
|---|---|---|
| Debian 12 / Ubuntu 22.04+ | LTS con PGDG | Opción principal para autoalojado |
| RHEL 9 / Rocky 9 | Estándar empresarial | Los contextos SELinux son importantes para PGDATA |
| macOS 14+ | Solo desarrollo | No es un host de producción para Postgres |
| Windows Server 2022 | Compatible pero raro | Prefiere Linux para el ecosistema de herramientas de alta disponibilidad |
- Ejecuta una versión menor compatible del SO antes de actualizar la versión mayor de PostgreSQL.
- SO fuera de soporte (EOL) + Postgres actual es un riesgo de cumplimiento, incluso si el binario se instala.
- Postgres administrado en la nube elimina la aplicación de parches del SO de tu alcance, pero no la política de versiones.
Versiones de la pila: Esta página se escribió para PostgreSQL 18.4 (estable 18, mantenimiento 17), pgvector 0.8+, PgBouncer 1.x, Patroni 3.x y PostGIS 3.5+.