Ir al contenido principal

Instalar PostgreSQL 9 en Centos 5.x

Este artículo se describe la instalación de PostgreSQL 9 en CentOS.
PostgreSQL 9 es el primer gran lanzamiento de PostgreSQL desde hace buen tiempo y la estructura de archivos ha cambiado un poco.

Si usted está usando Webmin, también le mostrare cómo configurar Webmin para administrar PostgreSQL 9.

Hay una versión 9.1.1 alpha disponible, pero hoy vamos a instalar 9.0.2 Para CentOS y voy a necesitar:

http://yum.pgrpms.org/reporpms/9.0/pgdg-centos-9.0-2.noarch.rpm

Asi que desde la consola terminal escriba lo siguiente para descargar el RPM.
[root@superahacker ~]
# wget http://yum.pgrpms.org/reporpms/9.0/pgdg-centos-9.0-2.noarch.rpm
--2010-10-29 15:38:15--  http://yum.pgrpms.org/reporpms/9.0/pgdg-centos-9.0-2.noarch.rpm
Resolving yum.pgrpms.org... 77.79.103.58
Connecting to yum.pgrpms.org|77.79.103.58|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4623 (4.5K) [application/x-rpm]
Saving to: `pgdg-centos-9.0-2.noarch.rpm'

100%[=================================>] 4,623       --.-K/s   in 0s

2010-10-29 15:38:15 (259 MB/s) - `pgdg-centos-9.0-2.noarch.rpm' saved [4623/4623]

Completa la descarga es momento de instalar el RPM.
[root@superahacker ~]# rpm -ivh pgdg-centos-9.0-2.noarch.rpm

Ahora es necesario editar nuestra configuración de repositorios e indicarle que excluya o ignore el paquete Postgres para los repositorios [base] y [updates]
[root@superahacker ~]# vim /etc/yum.repos.d/CentOS-Base.repo

Agregaremos exclude=postgresql* para [base] y [updates].
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
exclude=postgresql*

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?
release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
exclude=postgresql* 

Ahora instalaremos con YUM, PostgreSQL y sus dependencias.
[root@superahacker ~]# yum -y install postgresql90*
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * addons: mirror.ash.fastserv.com
 * base: yum.singlehop.com
 * extras: mirrors.netdna.com
 * updates: mirror.cogentco.com
Excluding Packages from CentOS-5 - Base
Finished
Excluding Packages from CentOS-5 - Updates
Finished
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package postgresql90-server.x86_64 0:9.0.1-1PGDG.rhel5 set to be updated
--> Processing Dependency: postgresql90 = 9.0.1-1PGDG.rhel5 for package: postgresql90-server
--> Running transaction check
---> Package postgresql90.x86_64 0:9.0.1-1PGDG.rhel5 set to be updated
---> Package postgresql90-libs.x86_64 0:9.0.1-1PGDG.rhel5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                  Arch        Version                 Repository   Size
================================================================================
Installing:
 postgresql90-server      x86_64      9.0.1-1PGDG.rhel5       pgdg90      4.6 M
Installing for dependencies:
 postgresql90             x86_64      9.0.1-1PGDG.rhel5       pgdg90      1.3 M
 postgresql90-libs        x86_64      9.0.1-1PGDG.rhel5       pgdg90      209 k

Transaction Summary
================================================================================
Install      3 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 6.5 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): postgresql90-libs-9.0.1-1PGDG.rhel5.x86_64.rpm    | 209 kB     00:01
(2/3): postgresql90-9.0.1-1PGDG.rhel5.x86_64.rpm         | 1.3 MB     00:02
(3/3): postgresql90-server-9.0.1-1PGDG.rhel5.x86_64.rpm  | 4.6 MB     00:07
--------------------------------------------------------------------------------
Total                                           535 kB/s | 5.9 MB     00:10
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : postgresql90-libs                                        1/4
  Installing     : libxslt                                                  2/4
  Installing     : postgresql90                                             3/4
  Installing     : postgresql90-server                                      4/4

Installed:
  postgresql90-server.x86_64 0:9.0.1-1PGDG.rhel5

Dependency Installed:  
  postgresql90.x86_64 0:9.0.1-1PGDG.rhel5
  postgresql90-libs.x86_64 0:9.0.1-1PGDG.rhel5

Complete!

Definimos y generamos el directorio de datos (PGDATA) de PostgreSQL.
[root@superahacker ~]# service postgresql-9.0 initdb

Registramos PostreSQL para que carge con el arranque del sistema.
[root@superahacker ~]# chkconfig postgresql-9.0 on 

Iniciamos el servicio postgreSQL.
[root@superahacker ~]# service postgresql-9.0 start 

Si necesita ingresar a la consola PGSQL lo puede hacer con el siguiente comando.
[root@superahacker ~]# su - postgres -c 'psql'


Configuración de Webmin

Para que Webmin pueda trabajar con PostgreSQL 9 necesitamos hacer unos cambios en la configuración del modulo de [Postgres Database Server] en Webmin.



1. Path to psql command:

Original:
/usr/bin/psql
Cambiar por:
/usr/pgsql-9.0/bin/psql
2. Command to start PostgreSQL

Original:
if [ -r /etc/rc.d/init.d/rhdb ]; then /etc/rc.d/init.d/rhdb start; else /etc/rc.d/init.d/postgresql start; fi
Cambiar por:
if [ -r /etc/rc.d/init.d/rhdb ]; then /etc/rc.d/init.d/rhdb start; else /etc/rc.d/init.d/postgresql-9.0 start; fi
3. Command to stop PostgreSQL

Original:
if [ -r /etc/rc.d/init.d/rhdb ]; then /etc/rc.d/init.d/rhdb stop; else /etc/rc.d/init.d/postgresql stop; fi
Cambiar por:
if [ -r /etc/rc.d/init.d/rhdb ]; then /etc/rc.d/init.d/rhdb stop; else /etc/rc.d/init.d/postgresql-9.0 stop; fi
4. Command to initialize PostgreSQL

Original:
if [ -r /etc/rc.d/init.d/rhdb ]; then /etc/rc.d/init.d/rhdb start; else /etc/rc.d/init.d/postgresql initdb ; /etc/rc.d/init.d/postgresql start; fi
Cambiar por:
if [ -r /etc/rc.d/init.d/rhdb ]; then /etc/rc.d/init.d/rhdb start; else /etc/rc.d/init.d/postgresql-9.0 initdb ; /etc/rc.d/init.d/postgresql-9.0 start; fi
5. Path to postmaster PID file

Original:
/var/run/postmaster.pid
Cambiar por:
/var/run/postmaster-9.0.pid
6. Paths to host access config file

Original:
/var/lib/pgsql/data/pg_hba.conf
Cambiar por:
/var/lib/pgsql/9.0/data/pg_hba.conf
7. Default backup repository directory

Original:
/home/db_repository
Cambiar por:
/var/lib/pgsql/9.0/backups

Guardamos la configuración y ahora podemos administrar PostreSQL desde Webmin, Saludos desde Perú.

Comentarios

  1. Muchas gracias por compartir esta informacion, todo funciono tal cual lo mencionas. es de gran ayuda tu aporte..

    Fco. ml

    ResponderBorrar

Publicar un comentario

Entradas más populares de este blog

JSP y MySQL Conexion a Base de Datos

Tema anterior: http://superahacker.blogspot.com/2009/06/instalacion-netbeans-glassfish.html El modulo JSP con conexion a una base de datos MySQL, tiene las siguientes caracteristicas usar una clase Java llamada "Customers" que se encuentra en un package llamado "Mypackage" , para usar sus metodos y con ellos llevar acabo una consulta.

JSP y MsSQL Conexion a Base de Datos

Tema anterior: http://superahacker.blogspot.com/2009/09/jsp-y-mysql-conexion-base-de-datos.html El modulo JSP con conexion a una base de datos Ms SQL Server, tiene las siguientes caracteristicas usar una clase Java llamada "Customers" que se encuentra en un package llamado "Mypackage" , para usar sus metodos y con ellos llevar acabo una consulta.

FreeTDS para el acceso a MsSQL desde PHP en Linux CentOS 5

Tema Anterior: http://superahacker.blogspot.com/2009/04/instalacion-de-unixodbc-para-la.html En esta ocasion la situación es como conectar con PHP 5 desde un Servidor Linux a una base de Datos Ms Sql Server en Servidor Windows.