Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El presente documento es una guía rápida de instalación de alguna herramienta particular. De seguro
existen otras formas de realizar el proceso de instalación, pero esta es la que mejor le ha funcionado al
autor a lo largo de los años. Para utilizar el presente documento se requieren conocimientos mínimos de
linux, su estructura básica de directorios, el uso de la consola y las instrucciones básicas de shell.
Además, se espera que el lector tenga suficiente sentido común para adaptarse a cualquier diferencia
existente entre el procedimiento que se describe en este documento y la distribución o versión de linux
utilizada.
PASO 1:
Descargar PostgreSQL de: http://www.postgresql.org/
postgresql-8.4.0.tar.gz
--- Los siguientes pasos deben hacerse como super-usuario (root) ---
PASO 2:
Copiar o mover, usando el comando cp o mv, el archivo descargado al directorio /usr/local/src
PASO 3:
Ubicarse, utilizando el comando cd (Ej: cd /usr/local/src), en el directorio
/usr/local/src
PASO 4:
Descomprimir el archivo descargado usando el comando tar:
PASO 5:
Ubicarse, utilizando el comando cd (Ej: cd /usr/local/src), en el directorio
/usr/local/src/postgresql-8.4.0
PASO 6:
Configurar y crear el Makefile usando el comando:
./configure
Esto mostrará una serie de “checks” como por ejemplo:
...
checking for strip... strip
checking whether it is possible to strip libraries... yes
checking for ar... ar
checking for tar... /bin/tar
checking whether ln -s works... yes
checking for gawk... gawk
...
Eventualmente alguno de los “checks” puede fallar, por ejemplo:
...
checking for gawk... gawk
checking for bison... bison
configure: using bison (GNU Bison) 2.3
checking for flex... no
configure: WARNING:
*** Without Flex you will not be able to build PostgreSQL from CVS or
*** change any of the scanner definition files. You can obtain Flex from
*** a GNU mirror site. (If you are using the official distribution of
*** PostgreSQL then you do not need to worry about this because the Flex
*** output is pre-generated.)
...
En este caso la falla es sólo una advertencia y el proceso de compilación puede continuar (aunque
seguramente se desactivarán algunas características del PostgreSQL resultante de la compilación). En
otros casos, la falla es fatal y el proceso aborta. En estos casos, es necesario leer cuidadosamente el
mensaje generado e instalar los paquetes requeridos para resolver el problema.
Por ejemplo, la advertencia anterior se puede resolver instalando flex, en debian o ubuntu esto se
puede hacer con el siguiente comando:
Pero dependiendo del mensaje de error puede ser posible que sea necesario instalar otros paquetes y
librerías.
Es necesario asegurarse que al terminar su ejecución el script no generó ningún error, por ejemplo, en
el caso particular del autor el script termina correctamente de la siguiente forma:
...
config.status: creating GNUmakefile
config.status: creating src/Makefile.global
config.status: creating src/include/pg_config.h
config.status: creating src/interfaces/ecpg/include/ecpg_config.h
config.status: linking ./src/backend/port/tas/dummy.s to src/backend/port/tas.s
config.status: linking ./src/backend/port/dynloader/linux.c to
src/backend/port/dynloader.c
config.status: linking ./src/backend/port/sysv_sema.c to src/backend/port/pg_sema.c
config.status: linking ./src/backend/port/sysv_shmem.c to
src/backend/port/pg_shmem.c
config.status: linking ./src/backend/port/dynloader/linux.h to
src/include/dynloader.h
config.status: linking ./src/include/port/linux.h to src/include/pg_config_os.h
config.status: linking ./src/makefiles/Makefile.linux to src/Makefile.port
PASO 8:
Se compila el PostgreSQL con el siguiente comando:
make
El proceso de compilación puede tardar un rato. Es necesario asegurarse de que cuando termine no
haya generado ningún error. Por ejemplo, en el caso particular del autor el comando make termina de
la siguiente forma:
make[1]: Entering directory `/usr/local/src/postgresql-8.4.0/config'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/usr/local/src/postgresql-8.4.0/config'
All of PostgreSQL successfully made. Ready to install.
PASO 9:
Se instala el PostgreSQL con el siguiente comando:
make install
El proceso de instalación puede tardar un rato. Es necesario asegurarse de que cuando termine no haya
generado ningún error. Por ejemplo, en el caso particular del autor el comando make install
termina de la siguiente forma:
/bin/sh ../config/install-sh -c -m 755 ./install-sh
'/usr/local/pgsql/lib/pgxs/config/install-sh'
/bin/sh ../config/install-sh -c -m 755 ./mkinstalldirs
'/usr/local/pgsql/lib/pgxs/config/mkinstalldirs'
make[1]: Leaving directory `/usr/local/src/postgresql-8.4.0/config'
PostgreSQL installation complete.
El PostgreSQL se instala por defecto en el directorio /usr/local/pgsql, de modo que si todo
salió bien este directorio debe existir y contener el resultado de la instalación.
PASO 10:
Crear un usuario postgres:
adduser postgres
PASO 11:
Crear el directorio donde se almacenarán las bases de datos y asignarle los permisos adecuados:
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
PASO 12:
Inicializar el repositorio de datos (esto se debe hacer como el usuario postgres)
su – postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
exit
Es necesario asegurarse que el comando initdb ejecutó correctamente y no generó ningún error, por
ejemplo en el caso particular del autor del presente documento el resultado fue:
postgres@cyrano:~$ /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.
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
or
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
postgres@cyrano:~$
PASO 13:
Es necesario instalar el script para iniciar PostgreSQL al estilo SysV para esto es necesario copiar el
script de arranque al directorio /etc/init.d. El script de arranque se llama linux y está ubicado en
el directorio contrib/start-scripts/ relativo al directorio raíz de los fuentes de PostgreSQL.
Suponiendo que los fuentes están en /usr/local/src, se puede copiar el script con el siguiente
comando:
cp /usr/local/src/postgresql-8.4.0/contrib/start-scripts/linux
/etc/init.d/postgresql
El comando anterior (que es una sola línea) adicionalmente permite renombrar el script de “linux” a
“postgresql”.
PASO 14:
Para iniciar el servidor de bases de datos, es necesario como super usuario (root) ejecutar el siguiente
comando:
/etc/init.d/postgresql start
PASO 15:
Luego de iniciar el servidor, y como parte del proceso de instalación, se puede crear una base de datos
de pruebas:
PASO 16:
Luego, debe ser posible conectarse a la consola del servidor de bases de datos usando el siguiente
comando:
/etc/init.d/postgresql stop
PASO 18:
Finalmente, si no se desea escribir /usr/local/pgsql/bin/ cada vez que se desea correr algún
ejecutable de PostgreSQL, entonces es posible añadir el directorio /usr/local/pgsql/bin/ al
PATH, tal como se ha hecho en el caso de Java y Eclipse:
Desde un terminal:
export PATH=/usr/local/pgsql/bin:$PATH
O para hacerlo permanente cada vez que se abre un terminal, es necesario añadir las siguientes líneas al
.bashrc o al .bash_profile dependiendo del caso:
export POSTGRESQL_HOME=/usr/local/pgsql
PATH=$POSTGRESQL_HOME/bin:$PATH
Para mayor información ver los comentarios al respecto de los tutoriales de instalación de Java y
Eclipse.