Instalación

Advertencia:
Esta sección se mantiene como referencia pero su contenido puede ya no ser del todo útil por la versión de programas usados: PostgreSQL 9.3 en Slackware Linux 14.1

A continuación se dan los pasos básicos para compilar e instalar el SGBD PostgreSQL:

  1. Descarga el código fuente de PostgreSQL:

  2. Descomprime el código fuente de PostgreSQL.

    • En este caso se obtiene el directorio postgresql-9.3.5 y los siguientes pasos serán llevados a cabo en él.
  3. Configura las opciones para la compilación del código fuente de PostgreSQL:

    • Podrás obtener una lista de las opciones que tienes disponibles para compilar el código de PostgreSQL, de acuerdo a tus necesidades o carácteristicas del sistema operativo, mediante el comando configure --help.

    • Una de las opciones básicas es --prefix que nos permite indicar en que directorio se depositarán todos los archivos binarios de PostgreSQL, esto es: archivos ejecutables, de configuración, librerías, cabeceras (headers), etc.

    • Como ejemplo, suponiendo que el código fuente de PostgreSQL se encuentre en el directorio postgresql-9.3.5 y se desea que los archivos binarios sean depositados en el directorio /var/tmp/pg1:

        [alumno@servidor postgresql-9.3.5]$ ./configure --prefix=/var/tmp/pg1
        checking build system type... i686-pc-linux-gnu
        checking host system type... i686-pc-linux-gnu
        ...
        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
      
    • Para más información: http://www.postgresql.org/docs/9.3/static/install-procedure.html

  4. Compila el código fuente:

     [alumno@servidor postgresql-9.3.5]$ make
     make -C src all
     make[1]: Entering directory ...
     ...
     make[1]: Leaving directory ...
     All of PostgreSQL successfully made. Ready to install.`
    
  5. Instala los archivos binarios de PostgreSQL:

     [alumno@servidor postgresql-9.3.5]$ make install-strip
     make use_install_sh=yes \
         INSTALL_PROGRAM_ENV=”STRIPPROG=’strip’” \
     ...
     PostgreSQL installation complete.
     make[1]: Leaving directory ...
    
    • Opcionalmente, para instalar la documentación ofrecida dentro del código fuente de PosgreSQL ejecuta:

        [alumno@servidor postgresql-9.3.5]$ make install-docs
        make -C doc install
        make[1]: Entering directory ...
        ...
        make[2]: Leaving directory ...
        make[1]: Leaving directory ...
      
    • Opcionalmente, para instalar los modulos ofrecidos dentro del código fuente de PostgreSQL ejecuta:

        [alumno@servidor postgresql-9.3.5]$ cd contrib/
        [alumno@servidor contrib]$ make all
        make -C adminpack all
        make[1]: Entering directory ...
        ...
        make[1]: Leaving directory
        make use_install_sh=yes \
            INSTALL_PROGRAM_ENV=”STRIPPROG=’strip’” \
        ...
        make[2]: Leaving directory ...
        make[1]: Leaving directory ...
      

Notas

  • Observa la estructura interna de /var/tmp/pg1/, ya sea con FileZilla o desde la línea de comandos con el comando tree:

     [alumno@servidor ~]$ tree -L 1 /var/tmp/pg1/ 
     /var/tmp/pg1/
     ├── bin
     ├── include
     ├── lib
     └── share
    
     4 directories, 0 files
     [alumno@servidor ~]$ tree -L 1 /var/tmp/pg1/bin/
     /var/tmp/pg1/bin/
     ├── clusterdb
     ├── createdb
     ├── createlang
     ├── createuser
     ├── dropdb
     ├── droplang
     ├── dropuser
     ├── ecpg
     ├── initdb
     ├── oid2name
     ├── pg_archivecleanup
     ├── pg_basebackup
     ├── pg_config
     ├── pg_controldata
     ├── pg_ctl
     ├── pg_dump
     ├── pg_dumpall
     ├── pg_isready
     ├── pg_receivexlog
     ├── pg_resetxlog
     ├── pg_restore
     ├── pg_standby
     ├── pg_test_fsync
     ├── pg_test_timing
     ├── pg_upgrade
     ├── pg_xlogdump
     ├── pgbench
     ├── postgres
     ├── postmaster -> postgres
     ├── psql
     ├── reindexdb
     ├── vacuumdb
     └── vacuumlo
    
     0 directories, 33 files
    
  • La instalación se encuentra en un directorio ”no estandar” por lo que no se ha integrado PostgreSQL al sistema operativo. Lo anterior, visto de otra forma, indica que el sistema operativo desconoce la instalación de PostgreSQL por lo que la configuración y ejecución de una instancía de PostgreSQL recae en nuestras manos, pero sobre todo las actualizaciones de PostgreSQL.

    • Ante esta situación podemos tener instaladas varias versiones de PostgreSQL, por ejemplo la versión 9.2.4 en el directorio /opt/postgres/9.2.4/ y la versión 9.0.10 en el directorio /opt/postgres/9.0.10.