Tecnología - Technology

Tu sitio de Tecnología

GNU/Linux, Informática

Cómo Instalar PostgreSQL 8.3.6 en Ubuntu


image_preview

Hoy les traigo un pequeño tutorial paso a paso, de como descargar e instalar el PostgreSQL 8.3.6 en Ubuntu desde código fuente. Es sencillo de hacer y no tarda mucho tiempo. Es cuestión de seguir bien los pasos y no tendrán ningún problema. Es importante recordar que debemos tener instalado el Build-essential, para que funcione la instalación, pero si no lo tienen lo pueden instalar con este comando y como usuario root apt-get install build-essential


Pasos:

1. Lo primero que deben hacer es descargar el paquete de instalación desde la siguiente página  http://www.postgresql.org/ftp/source/v8.3.6/

Allí pueden descargar los diferentes archivos, y pueden escoger también su idioma.

2. Una vez hecho esto, Lo que sigue es abrir una terminal y descomprimir el paquete con nombre “postgresql-8.3.6.tar.gz'”, lo hacemos con el comando:.

tar xvf postgresql-8.3.6.tar.gz

3. Por consola entramos hasta la carpeta donde quedó descompreso el archivo. Allí podremos ver entre varios archivos el README, en donde hay información de utilidad sobre la instalación y el manejo del PostgreSQL.

4. Después de leerlo procedemos con la instalación. El comando por defecto para instarlo es, estando dentro de la carpeta “postgresql-8.3.6”  ./configure

Tecnologia@Tecnologia:~/ Postgresql-8.3.6$ ./configure

Al final podrían salir unos errores, Uno dice que no encuentra la librería readline, y se puede solucionar instalando el paquete libreadline5-dev, para el caso de distribuciones basadas en debian, colocando el siguiente comando en la consola, y entrando como usuario Root:

apt-get install libreadline5-dev

El otro error podría ser el de zlib library y se arregla de igual manera al anterior pero con el comando:

apt-get install zlib1g-dev

Después de haberlas instalado nuevamente ingresamos el comando ./configure estando dentro de la carpeta del PostgreSQL. Con esto y si al final no salen errores, la instalación ya se está dando correctamente.

5. El siguiente paso es ingresar el comando make con el cuál se dejarán los archivos listos para la instalación de los archivos.

Tecnologia@Tecnologia:~/ Postgresql-8.3.6$ make

Este proceso puede durar varios minutos dependiendo de tu máquina, pero por lo general es largo. Al final del proceso debe salir “All of PostgreSQL successfully made. Ready to install. ”

6. Hecho lo anterior procedemos a instalar el Postgresql, con el comando make install, Esto se debe hacer como súper usuario, de la siguiente forma:

Tecnologia@Tecnologia:~/ Postgresql-8.3.6$ sudo make install

Al final aparece lo siguiente “PostgreSQL installation complete”.



EDICION


Al terminar todo este proceso de compilación, nuestro motor relacional de postgres quedará instalado en el directorio

<!– @page { size: 21cm 29.7cm; margin: 2cm } TD P { margin-bottom: 0cm } P { margin-bottom: 0.21cm } –>

usr/local/pgsql

Sin embargo en este punto, si queremos usar cómodamente postgres, aún nos falta hacerle unos ajustes de configuración. para hacerlos seguiremos estos pasos:

Lo primero que tenemos que hacer es crear un usuario llamado postgres.

Tecnologia postgresql-8.3.6 # adduser postgres

Añadiendo usuario ‘postgres’ …

Agregando nuevo grupo ‘postgres’ (1001) …

Agregando nuevo usuario ‘postgres’ (1001) con grupo ‘postgres’ …

Creando el directorio personal ‘/home/postgres’ …

Copiando archivos desde ‘/etc/skel’ …

Introduzca la nueva contraseña de UNIX:

Vuelva a escribir la nueva contraseña de UNIX:

passwd: contraseña actualizada correctamente

Cambiando la información de usuario para postgres

Introduzca el nuevo valor, o presione ENTER para el predeterminado

Nombre completo []: Base de Datos pgsql

Número de habitación []:

Teléfono del trabajo []:

Teléfono de casa []:

Otro []:

¿Es correcta la información? [y/N] y

Ahora creamos la carpeta donde se guardarán los datos, y le asignamos como propietario el usuario postgres.

Tecnologia postgresql-8.3.6 # mkdir /usr/local/pgsql/data

Tecnologia postgresql-8.3.6 # chown postgres /usr/local/pgsql/data/

Ahora nos cambiamos al usuarios postgress, en la consola usando el comando su.

su postgres

Ahora configuramos el motor de la base de datos con los siguientes comandos.

postgres@Tecnologia $ cd /usr/local/pgsql/bin

postgres@Tecnologia /usr/local/pgsql/bin $ ./initdb -D /usr/local/pgsql/data/

The files belonging to this database system will be owned by user “postgres”.

This user must also own the server process.

The database cluster will be initialized with locale es_CO.UTF-8.

The default database encoding has accordingly been set to UTF8.

The default text search configuration will be set to “spanish”.

fixing permissions on existing directory /usr/local/pgsql/data … ok

creating subdirectories … ok

selecting default max_connections … 100

selecting default shared_buffers/max_fsm_pages … 24MB/153600

creating configuration files … ok

creating template1 database in /usr/local/pgsql/data/base/1 … ok

initializing pg_authid … ok

initializing dependencies … ok

creating system views … ok

loading system objects’ descriptions … ok

creating conversions … ok

creating dictionaries … ok

setting privileges on built-in objects … ok

creating information schema … ok

vacuuming database template1 … ok

copying template1 to template0 … ok

copying template1 to postgres … ok

WARNING: enabling “trust” authentication for local connections

You can change this by editing pg_hba.conf or using the -A option the

next time you run initdb.

Success. You can now start the database server using:

./postgres -D /usr/local/pgsql/data

or

./pg_ctl -D /usr/local/pgsql/data -l logfile start

postgres@Tecnologia /usr/local/pgsql/bin $ ./postgres -D /usr/local/pgsql/data

postgres@Tecnologia ~ $ /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &

[1] 26548

postgres@Tecnologia ~ $ cat logfile

LOG: database system was shut down at 2009-03-07 23:15:16 COT

LOG: autovacuum launcher started

LOG: database system is ready to accept connections

Lo que se hizo acá fue, movernos al directorio donde quedó instalada la base de Datos. Asignar el cluster de la base de datos al directorio /usr/local/pgsql/data, y finalmente iniciar la base de Datos guardando la salida en el archivo logfile. El cual fue leido con cat, para darnos cuenta de que la operación fue exitosa.

Para hacer más fácil el uso de postgress agregaremos al path de linux el directorio /usr/local/pgsql/bin.

Esto lo hacemos agregando las siguientes lineas al final del archivo /etc/profile

export PGSQL=/usr/local/pgsql

export PGLIB=$PGSQL/lib

export MANPATH=$MANPATH:$PGSQL/man

export LD_LIBRARY_PATH=$PGLIB

export PATH=$PATH:$PGSQL/bin

Para actualizar los cambios usamos el comando (solo se actualuzan en la consola donde se ejecuta el comando)

postgres@Tecnologia ~ $ source /etc/profile

Con esto ya está la base de datos correctamente instalada. Pero si deseas que tu Motor relacional postgres funcione, cada que se inicia el sistema, como lo hace cualquier otro servicio, tendrás que seguir estos pasos:

primero debemos crear un Shell Script el cual tendrá este contenido

#!/bin/sh
#
# description: startup and shutdown the PostgreSQL
#
echo "PostgreSQL start/stop"

POSTGRESQL_OWNER=postgres
POSTGRESQL_HOME=/usr/local/pgsql

case "$1" in
'start')
  # Start the PostgreSQL
   echo -n "Starting the PostgreSQL Server... "
   POSTMASTER="$POSTGRESQL_HOME/bin/postmaster -i -D $POSTGRESQL_HOME/data >> $POSTGRESQL_HOME/data/bitacora.btc 2>&1&"
   su - $POSTGRESQL_OWNER -c "$POSTMASTER"
   echo
   ;;
'stop')

   # Stop the PostgreSQL
   echo -n "Shutting down PostgreSQL Server... "
   KILLPOSTMASTER="kill -INT `head -1 $POSTGRESQL_HOME/data/postmaster.pid`"
   su - $POSTGRESQL_OWNER -c "$KILLPOSTMASTER"
   echo
   ;;

'restart')
   # Restart the PostgreSQL
   echo -n "Restarting PostgreSQL Server... "
   $0 stop
   $0 start
   echo
   ;;

*)
   echo "Usage: postgresqld [ start | stop | restart ]"
   exit 1
esac
exit 0

Este script lo debes guardar en el directorio /etc/init.d/ con cualquier nombre aunque te recomienedo ponerle postgresqld, por lo que la ruta completa del archivo sería

/etc/init.d/postgresqld

Para no tener problemas vamos a darle ciertos permisos a este script. con el siguiente comando.

sudo chmod 744 /etc/init.d/postgresqld

Ahora lo que vamos a hacer es indicarle al sistema que nos ejecute este script cada que se inicie el sistema.
esto lo hacemos con el siguiente comando

$ sudo update-rc.d postgresqld defaults

Cuando ejecutemos este comando saldrá algo como esto.


Tecnologia@Tecnologia ~ $ sudo update-rc.d postgresqld defaults
Adding system startup for /etc/init.d/postgresqld ...
/etc/rc0.d/K20postgresqld -> ../init.d/postgresqld
/etc/rc1.d/K20postgresqld -> ../init.d/postgresqld
/etc/rc6.d/K20postgresqld -> ../init.d/postgresqld
/etc/rc2.d/S20postgresqld -> ../init.d/postgresqld
/etc/rc3.d/S20postgresqld -> ../init.d/postgresqld
/etc/rc4.d/S20postgresqld -> ../init.d/postgresqld
/etc/rc5.d/S20postgresqld -> ../init.d/postgresqld

Con esto ya nos queda instalado el PostgreSQL 8.3.6 en nuestra máquina, y podremos empezar con la creación de las bases y demás tareas que tengamos.

para detener e iniciar el servicio manualmente, en caso de necesitarlo, en este punto podran hacerlo con los comandos.

sudo /etc/init.d/postgresqld stop
sudo /etc/init.d/postgresqld start

Espero les sea de mucha ayuda, Cualquier duda que tengan o cualquier sugerencia, solo dejen su comentario.

Saludos

14 Comentarios

  1. fenomenal tu post puntuacion 10 me ayudo mucho, yo que recien soy nuevo en ubuntu, gracias

  2. fenomenal tu post puntuacion 10 me ayudo mucho, yo que recien soy nuevo en ubuntu, gracias

  3. Katsumoto

    Excelente tu post, todo me funciono tal cual.
    Gracias por tu ayuda.

  4. Assfucker

    Excelente post se agradece mucho super detallado 10/10

  5. Assfucker

    Excelente post se agradece mucho super detallado 10/10

  6. aj

    excelente post siguan asi

    me ayudo mucho tengo mucho iniciandome en ubuntu pero no habia tenido tiempo

    ahora si a ubuntear todo el dia

    gracias por el post

  7. aj

    excelente post siguan asi

    me ayudo mucho tengo mucho iniciandome en ubuntu pero no habia tenido tiempo

    ahora si a ubuntear todo el dia

    gracias por el post

  8. Excelente post, gracias

  9. Excelente post, gracias

  10. Julian Ramirez Tenorio

    Gracias me fue de mucha ayuda en especial al momento de ejecutar el comando ./CONFIGURE. Ya tengo corriendo mi servidor Postgres sin problemas.

  11. te pasaste que buena guia

  12. te pasaste que buena guia

  13. miosenpai

    Muchas gracias por el post… puesto que tengo problemas con la version 9.2 de postgres y genexus… asi que tuve que bajarme a la 8.3 a ver si ahi me funcionan las cosas porque la 9.2 no permite blokear las tablas fuera de las transacciones que es lo correcto pero artech no da ninguna solucion al respecto. PLOP!

    saludos y muchas gracias por el post.

  14. miosenpai

    Muchas gracias por el post… puesto que tengo problemas con la version 9.2 de postgres y genexus… asi que tuve que bajarme a la 8.3 a ver si ahi me funcionan las cosas porque la 9.2 no permite blokear las tablas fuera de las transacciones que es lo correcto pero artech no da ninguna solucion al respecto. PLOP!

    saludos y muchas gracias por el post.

Leave a Reply