IES Miguel
Romero Esteo - Departamento de Informática - Linux/Unix
Gestión de software opensource
/ Taller de instalación de PostgreSQL Server
Comandos:
mkdir, cd, gcc, make
Aplicaciones:
apt-get, yum, dnf, wget, ftp.
Objetivo:
Instalar el
Sistema Gestor de Base de Batos PostgreSQL en cada instancia de AWS (
deb-aws- &
ali-aws-),
tanto por el procedimiento estandar (descarga de las fuentes
y compilación) como con las herramientas de gestión de
software propias de cada distribución (apt-*, yum, dnf) y
sus correspondientes repositorios de paquetes.
Al instalarse dos veces el
mismo aplicativo en cada máquina (fuente +
repositorios) se proponen puertos TCP/IP diferentes
para cada uno, permitiendo el funcionamiento
simultáneo de ambos (algo poco común, pero ayuda al
alumno a comprender que pueden coexistir varias
versiones del mismo producto siempre y cuando no
colisionen los puertos TCP/IP). Asignaremos el puerto
5433 a la instalación desde las fuentes y el puerto
por defecto (5432) a la instalación desde el
repositorio. Estos puertos NO tendrán que ser abiertos
en el grupo de seguridad del VPC (grupo default) ya
que el acceso a ellos se hará exlusivamente desde la
ubicación localhost
Enunciado:
En cada una de las instancias de AWS (deb-aws-,
ali-aws-) realizar las
siguientes operaciones:
- Instalación
desde las fuentes.
-
Adquir
la identidad del usuario root.
- Entrar en el directorio instalacion_en_curso.
-
Haciendo
uso del comando wget
descargar las fuentes correspondientes a la última versión
estable
del servidor de base de datos PostgreSQL.
- Descomprimir y
desempaquetar el archivo descargado.
- Posicionarse en el
directorio resultado del paso anterior.
-
Analizar el texto de los
ficheros README e INSTALL en busca de operaciones
previas a la compilación e instalación del
producto, como pueden ser: requerimientos previos,
aparición de pasos extra antes o después de la ejecución
de los pasos obligatorios (configure, make, make
install),etc...
Por lo general, en el
texto del fichero INSTALL tenemos suficiente
información al respecto, pero, no está de más, que
accedamos a la/s URL/s que aporta dicho archivo para
ampliar la información que no tenemos en el fichero
de texto.
-
Instalar PostgreSQL con las siguientes
especificaciones, funcionalidades y/o capacidades:
-
El directorio /usr/local/postgresql/
debe almacenar todo el material que el proceso de
instalación deposite.
-
El
servidor atenderá peticiones en el puerto 5433
-
Verificar
el funcionamiento del servicio con el comando /usr/local/postgresql/bin/psql.
-
Las
dependencias incumplidas se resolverán instalando lo
necesario desde los repositorios de las distro. No
desde las fuentes.
- Instalación desde los
repositorios de la distribución.
-
Adquirir
privilegios de root.
-
Haciendo
uso de las herramientas propias de la distribución
GNU/linux instalar el servidor postgresql
que haya disponible en el repositorio.
-
IMPORTANTE: Al terminar la
instalación, adquirir la identificación del usuario postgres
y verificar el funcionamiento del servidor con el
comando psql. Normalmente, en sistemas Debian y
derivados, el proceso de instalación con apt
deja todo el entorno listo para su uso, no siendo así en
sistemas RedHat y derivados. En caso de que no funcione
el comando psql (si funciona no hay que hacer
nada) hay que proceder de la siguiente forma:
- 1 Arrancar el
servicio -> systemctl start postgresql.service
-
2
En caso de que el servicio no arranque (da error el
comando de arriba) tendremos que levantar
previamente la estructura de directorios y ficheros
que sostienen a Postgresql, lo cual se hace con el
comando de abajo, y después volver a arrancar el
servicio y probar el comando psql again.
- postgresql-setup
--initdb
NOTA: Obsérvese que ambas instalaciones dejan disponible su
propia versión del comando psql. Debe utilizarse el
adecuado para cada servidor, a saber, para el instalado por el
procedimiento estandar: /usr/local/postgresql/bin/psql.
Para el instalado desde el repositorio: psql (el PATH absoluto
depende de cada distribución:
/usr/bin/psql, /bin/psql,
..., el alumno debe buscarlo).