Instalación y configuración de PostgreSQL bajo GNU_Linux

46
Instalación y configuración de PostgreSQL bajo GNU/Linux

description

una guía completa y funcional acerca de la instalación y configuración del gestor de base de datos PostgreSQL en ambiente GNU/Linux

Transcript of Instalación y configuración de PostgreSQL bajo GNU_Linux

Page 1: Instalación y configuración de PostgreSQL bajo GNU_Linux

Instalación y configuración de PostgreSQL bajo GNU/Linux

Page 2: Instalación y configuración de PostgreSQL bajo GNU_Linux

1. Introducción2. Requerimientos del sistema3. Proceso de instalación4. Proceso de configuración5. Métodos de configuración de la base de datos (forma consola)6. Métodos de configuración de la base de datos (forma consola)7. Conclusiones8. Bibliografía relacionada.

1. Introducción

La utilización de las bases de datos en las empresas ha sido una prioridad y una necesidad. En ellas se almacena la información de forma organizada, y se puede recuperar en la misma forma en que se ingresa, y también puede ser utilizado por varios usuarios dentro del mismo sistema. Usar un sistema de gestión de base de datos (SGBD) perfecto siempre ha sido una constante para los especialistas en sistemas e informática, y las versiones actuales de los mejores SGBD han sido diseñados para poder automatizar la mayoría de los procesos de almacén de datos.

Hay dos corrientes de SGBD: los diseñados por la comunidad de usuarios de informática y sistemas, y los diseñados por empresas encargadas del área. La mayoría de ellos pueden ser utilizados en diversos sistemas operativos, principalmente de los tres más conocidos: Windows, GNU/Linux y MacOS; aunque también pueden ser usados en diversos SO basados en servidores.

El SGBD que planeo usar en este artículo será PostgreSQL, debido a ser uno de los más amplios y completos en el universo GNU/Linux, y también el que está bien documentado en el área. Procederé a instalarlo en un sistema operativo Ubuntu (distribución GNU/Linux basada en Debian, que ha sido optimizada para ser usada por usuarios noveles que entran al mundo del Software Libre), lo configuraré y luego usaré una aplicación denominada PGAdminIII, la más usada en GNU/Linux.

2. Requerimientos del sistema

Para poder utilizar de forma apropiada el gestor de base de datos PostgreSQL hay que poseer una distribución GNU/Linux (aunque hay un binario para Windows que funciona de la misma forma). Hay cientos de distribuciones personalizadas a la medida del usuario promedio; pero en esencia todas vienen casi de la misma rama. En el sitio http://distrowatch.org hay unas guías que pueden permitir al usuario medio escoger una distribución a su estilo. La lista de requerimientos para una distribución GNU/Linux no es muy compleja (a diferencia de Microsoft Windows); a saber:

a) PC IBM o compatible, con procesador Pentium o AMD.b) Procesador Pentium/AMD con velocidad desde 100 hasta 1GHz. Si hay

más, entonces funcionará mejor.c) Memoria RAM desde 64 MB hasta 1GB (si tiene más, el rendimiento se

incrementará).d) Disco duro con espacio desde 100MB hasta 10 GB (dependiendo de lo que

se requiere instalar).

Page 3: Instalación y configuración de PostgreSQL bajo GNU_Linux

e) Unidad de CD/DVD (depende de la distribución escogida).f) Conexión a Internet (para bajar paquetes adicionales y actualizar el

sistema en caso de que se requiera).Para el caso de PostgreSQL es requerido únicamente:g) Domino de la consola (o terminal).h) Conocimiento de las instrucciones en GNU/Linux (no imprescindible, si

algo falla, se consulta por Internet las dudas).i) Conocimiento del manejo de archivos en GNU/Linux (igual que el

anterior).

3. Proceso de instalación

Ahora se procede a instalar el gestor de base de datos en nuestro sistema. Antes es necesario haber instalado una distribución GNU/Linux en nuestra PC para poder operar. También es posible instalar los mismos SGBD en Windows, y algunos aditamentos incluidos; pero para GNU/Linux y otros se deberán instalar por separado.

Supondré que ya ha sido instalada una distribución de GNU/Linux en la PC, por lo que si no la has realizado ya, puedes buscar en DistroWatch la que más te guste, bajarla vía web o torrent, grabarla en un CD ó DVD e instalarla. Previamente se debe salvar la data en otros medios (CD’s ó DVD’s, dispositivos extraíbles, red, disco duro interno o externo, o incluso otra partición del mismo disco). Si no sabes cómo realizar este procedimiento, la Web puede ayudarte. Para el caso actual de la instalación usaré una distribución muy popular: Ubuntu 10.04, pero si quieres otra, el procedimiento se ejecuta igual. Así que vamos a comenzar:

1. Iniciada la sesión vamos a la consola de terminal y escribimos:(nota: las instrucciones están escritas tal cual como se ven, por cuestiones de espacio no se muestran las pantallas. En root@miguel-lt:/home/miguel-lt# se denomina así porque es el usuario actual: root es el usuario que ejecuta la terminal, @miguel-lt es el nombre de la PC en la que se ejecuta Linux; y /home/miguel-lt es un directorio. Puedes acceder al mismo en una ventana cualquiera. Ve a LugaresCarpeta personal, y listo.)//para poder acceder a la función de root y así instalar y eliminar paquetes.root@miguel-lt:/home/miguel-lt# sudo aptitude search postgrep aolserver4-nspostgres - AOLserver 4 module: Postgres connector p cl-sql-postgresql - CLSQL database backend, PostgreSQL via library p cl-sql-postgresql-socket - CLSQL database backend, PostgreSQL via sockets p courier-authlib-postgresql - PostgreSQL support for the Courier authentication library p dpm-postgres - Disk Pool Manager (DPM) server with postgres database backend p dpm-postgres-copyd - DPM copy server with postgres database backend p dpm-postgres-nameserver - DPM nameserver server with postgres database backend p dpm-postgres-srmv1 - DPM SRM version 1 server with postgres database backend p dpm-postgres-srmv2 - DPM SRM version 2 server with postgres database backend p dpm-postgres-srmv22 - DPM SRM version 2.2 server with postgres database backend p dsyslog-module-postgresql - advanced modular syslog daemon - PostgreSQL support p eekboek-db-postgresql - PostgreSQL database driver for EekBoek p freeradius-postgresql - PostgreSQL module for FreeRADIUS server

Page 4: Instalación y configuración de PostgreSQL bajo GNU_Linux

p gambas2-gb-db-postgresql - The PostgreSQL driver for the Gambas database component p gforge-db-postgresql - collaborative development tool - database (using PostgreSQL) p gforge-shell-postgresql - collaborative development tool - shell accounts (using PostgreSQL) v haskell-hdbc-postgresql-doc - p haskell-hsql-postgresql-doc - API documentation of the hsql-postgresql library for Haskell p lfc-postgres - LCG File Catalog (LFC) server with postgres database backend p libapq-postgresql-dbg - APQ Ada 95 Postgresql Binding Plugin (debug) p libapq-postgresql1-dev - APQ Ada 95 Postgresql Binding Plugin (development) p libapq-postgresql3.0 - APQ Ada 95 Postgresql Binding Plugin (library) p libdataobjects-postgres-ruby1.8 - postgres adapter for libdataobjects-ruby1.8 p libgda-4.0-postgres - PostgreSQL provider for libgda database abstraction library p libgda3-postgres - PostgreSQL backend plugin for GNOME Data Access library for GNOME2 p libghc6-haskelldb-hdbc-postgresql-dev- HaskellDB support for the HDBC PostgreSQL driver v libghc6-haskelldb-hdbc-postgresql-dev-0.13-fc21d - p libghc6-haskelldb-hdbc-postgresql-doc - HaskellDB support for the HDBC PostgreSQL driver; documentation p libghc6-hdbc-postgresql-dev - PostgreSQL HDBC (Haskell Database Connectivity) Driver for GHC p libghc6-hdbc-postgresql-doc - PostgreSQL HDBC (Haskell Database Connectivity) documentation p libghc6-hsql-postgresql-dev - PostgreSQL driver of the HSQL library for GHC6 v libghc6-hsql-postgresql-dev-1.7.3-1c1b8 - p libghc6-hsql-postgresql-prof - PostgreSQL driver of the HSQL library for GHC6; profiling libraries v libghc6-hsql-postgresql-prof-1.7.3-1c1b8 - p libhk-classes-postgres - PostgreSQL driver plugin for libhk-classes p liblua5.1-sql-postgres-2 - luasql library for the Lua language version 5.1 p liblua5.1-sql-postgres-dev- luasql development files for the Lua language version 5.1 p libpostgresql-ocaml - OCaml bindings to PostgreSQL's libpq (runtime) p libpostgresql-ocaml-dev - OCaml bindings to PostgreSQL's libpq v libpostgresql-ocaml-dev-r8oj6 - v libpostgresql-ocaml-r8oj6 - p librdf-storage-postgresql - RDF library, PostGreSQL backend p libsoci-postgresql-gcc - C++ Database Access Library (PostgreSQL backend) p odbc-postgresql - ODBC driver for PostgreSQL p openoffice.org-sdbc-postgresql - OpenOffice.org extension for PostgreSQL SDBC driver p openser-postgres-module - PostgreSQL database connectivity module for OpenSER p perdition-postgresql - Library to allow perdition to access PostgreSQL based popmaps p postgresql - object-relational SQL database (supported version) p postgresql-8.3-orafce - Oracle support functions for PostgreSQL v postgresql-8.3-pljava - p postgresql-8.3-pljava-gcj - Java procedural language for PostgreSQL

Page 5: Instalación y configuración de PostgreSQL bajo GNU_Linux

p postgresql-8.3-plruby - Ruby procedural language for PostgreSQL p postgresql-8.4 - object-relational SQL database, version 8.4 server p postgresql-8.4-debversion - Debian version number type for PostgreSQL p postgresql-8.4-hstore-new - PostgreSQL data type for storing sets of (key,value) pairs p postgresql-8.4-ip4r - IPv4 and IPv4 range index types for PostgreSQL 8.4 p postgresql-8.4-pllua - Lua procedural language for PostgreSQL p postgresql-8.4-plproxy - PL/Proxy is a proxy language used for remote database p postgresql-8.4-plr - Procedural language interface between PostgreSQL and R p postgresql-8.4-plsh - PL/sh procedural language for PostgreSQL 8.4 p postgresql-8.4-postgis - geographic objects support for PostgreSQL 8.4 p postgresql-8.4-prefix - Prefix Range module for PostgreSQL p postgresql-8.4-preprepare - Pre Prepare your Statement server side p postgresql-8.4-slony1 - replication system for PostgreSQL: PostgreSQL server plug-in p postgresql-autodoc - Utility to create a PostgreSQL database schema overview in HTML, DOT and XML p postgresql-client - front-end programs for PostgreSQL (supported version) p postgresql-client-8.4 - front-end programs for PostgreSQL 8.4 p postgresql-client-common - manager for multiple PostgreSQL client versions p postgresql-common - PostgreSQL database-cluster manager p postgresql-contrib - additional facilities for PostgreSQL (supported version) p postgresql-contrib-8.4 - additional facilities for PostgreSQL p postgresql-doc - documentation for the PostgreSQL database management system p postgresql-doc-8.4 - documentation for the PostgreSQL database management system p postgresql-filedump-8.3 - Utility to format PostgreSQL files p postgresql-filedump-8.4 - Utility to format PostgreSQL files p postgresql-plperl-8.4 - PL/Perl procedural language for PostgreSQL 8.4 p postgresql-plpython-8.4 - PL/Python procedural language for PostgreSQL 8.4 v postgresql-plr - p postgresql-pltcl-8.4 - PL/Tcl procedural language for PostgreSQL 8.4 p postgresql-server-dev-8.4 - development files for PostgreSQL 8.4 server-side programming p postgrey - greylisting implementation for Postfix p pure-ftpd-postgresql - Pure-FTPd FTP server with PostgreSQL user authentication p rt3.8-db-postgresql - PostgreSQL database backend for request-tracker3.8 p ser-postgres-module - PostgreSQL database connectivity module for SER p sisu-postgresql - SiSU dependencies for use with PostgreSQL database p spl-postgres - SPL Programming Language -- postgres adapter p sqlrelay-postgresql - SQL Relay PostgreSQL connection daemon p tntdb-postgresql1 - PostgreSQL backend for tntdb database access library root@miguel-lt:/home/miguel-lt#

Ahora vamos a escoger 7 paquetes principales: postgresql, postgresql-8.4, postgresql-client-8.4, postgresql-common, postgresql-contrib, postgresql-contrib-8.4, postgresql-doc y éstos a su vez instalarán las demás dependencias; y con ello ya se habrá instalado el postgresql en Ubuntu ¡Pero espera, que es el primero de 3 pasos!

Page 6: Instalación y configuración de PostgreSQL bajo GNU_Linux

root@miguel-lt:/home/miguel-lt# sudo aptitude install postgresql postgresql-8.4 postgresql-client-8.4 postgresql-common postgresql-contrib postgresql-contrib-8.4 postgresql-docLeyendo lista de paquetes... HechoCreando árbol de dependencias Leyendo la información de estado... HechoLeyendo la información de estado extendido Inicializando el estado de los paquetes... HechoSe instalarán los siguiente paquetes NUEVOS: libossp-uuid16{a} libpq5{a} postgresql postgresql-8.4 postgresql-client-8.4 postgresql-client-common{a} postgresql-common postgresql-contrib postgresql-contrib-8.4 postgresql-doc postgresql-doc-8.4{a} 0 paquetes actualizados, 11 nuevos instalados, 0 para eliminar y 0 sin actualizar.Necesito descargar 7257kB de ficheros. Después de desempaquetar se liberarán 52,2MB.¿Quiere continuar? [Y/n/?] YEscribiendo información de estado extendido... HechoDes:1 http://ve.archive.ubuntu.com/ubuntu/ lucid/main libossp-uuid16 1.6.2-1ubuntu1 [58,5kB]Des:2 http://ve.archive.ubuntu.com/ubuntu/ lucid-updates/main libpq5 8.4.4-0ubuntu10.04 [80,9kB]Des:3 http://ve.archive.ubuntu.com/ubuntu/ lucid/main postgresql-client-common 106 [52,2kB]Des:4 http://ve.archive.ubuntu.com/ubuntu/ lucid-updates/main postgresql-client-8.4 8.4.4-0ubuntu10.04 [785kB]Des:5 http://ve.archive.ubuntu.com/ubuntu/ lucid/main postgresql-common 106 [88,3kB] Des:6 http://ve.archive.ubuntu.com/ubuntu/ lucid-updates/main postgresql-8.4 8.4.4-0ubuntu10.04 [3896kB] Des:7 http://ve.archive.ubuntu.com/ubuntu/ lucid-updates/main postgresql 8.4.4-0ubuntu10.04 [14,9kB] Des:8 http://ve.archive.ubuntu.com/ubuntu/ lucid-updates/main postgresql-contrib-8.4 8.4.4-0ubuntu10.04 [371kB] Des:9 http://ve.archive.ubuntu.com/ubuntu/ lucid-updates/main postgresql-contrib 8.4.4-0ubuntu10.04 [14,8kB] Des:10 http://ve.archive.ubuntu.com/ubuntu/ lucid-updates/main postgresql-doc-8.4 8.4.4-0ubuntu10.04 [1891kB] Des:11 http://ve.archive.ubuntu.com/ubuntu/ lucid-updates/main postgresql-doc 8.4.4-0ubuntu10.04 [3420B] Descargados 7257kB en 2min 59s (40,4kB/s). Preconfigurando paquetes ...(Leyendo la base de datos ... 00%147836 ficheros y directorios instalados actualmente.)Desinstalando linux-headers-2.6.32-21-generic ...Desinstalando linux-headers-2.6.32-21 ...Seleccionando el paquete libossp-uuid16 previamente no seleccionado.(Leyendo la base de datos ... 00%129430 ficheros y directorios instalados actualmente.)Desempaquetando libossp-uuid16 (de .../libossp-uuid16_1.6.2-1ubuntu1_i386.deb) ...Seleccionando el paquete libpq5 previamente no seleccionado.

Page 7: Instalación y configuración de PostgreSQL bajo GNU_Linux

Desempaquetando libpq5 (de .../libpq5_8.4.4-0ubuntu10.04_i386.deb) ...Seleccionando el paquete postgresql-client-common previamente no seleccionado.Desempaquetando postgresql-client-common (de .../postgresql-client-common_106_all.deb) ...Seleccionando el paquete postgresql-client-8.4 previamente no seleccionado.Desempaquetando postgresql-client-8.4 (de .../postgresql-client-8.4_8.4.4-0ubuntu10.04_i386.deb) ...Seleccionando el paquete postgresql-common previamente no seleccionado.Desempaquetando postgresql-common (de .../postgresql-common_106_all.deb) ...Seleccionando el paquete postgresql-8.4 previamente no seleccionado.Desempaquetando postgresql-8.4 (de .../postgresql-8.4_8.4.4-0ubuntu10.04_i386.deb) ...Seleccionando el paquete postgresql previamente no seleccionado.Desempaquetando postgresql (de .../postgresql_8.4.4-0ubuntu10.04_all.deb) ...Seleccionando el paquete postgresql-contrib-8.4 previamente no seleccionado.Desempaquetando postgresql-contrib-8.4 (de .../postgresql-contrib-8.4_8.4.4-0ubuntu10.04_i386.deb) ...Seleccionando el paquete postgresql-contrib previamente no seleccionado.Desempaquetando postgresql-contrib (de .../postgresql-contrib_8.4.4-0ubuntu10.04_all.deb) ...Seleccionando el paquete postgresql-doc-8.4 previamente no seleccionado.Desempaquetando postgresql-doc-8.4 (de .../postgresql-doc-8.4_8.4.4-0ubuntu10.04_all.deb) ...Seleccionando el paquete postgresql-doc previamente no seleccionado.Desempaquetando postgresql-doc (de .../postgresql-doc_8.4.4-0ubuntu10.04_all.deb) ...Procesando disparadores para man-db ...Procesando disparadores para ureadahead ...ureadahead will be reprofiled on next rebootProcesando disparadores para doc-base ...Processing 1 added doc-base file(s)...Registering documents with scrollkeeper...Configurando libossp-uuid16 (1.6.2-1ubuntu1) ...

Configurando libpq5 (8.4.4-0ubuntu10.04) ...

Configurando postgresql-client-common (106) ...Configurando postgresql-client-8.4 (8.4.4-0ubuntu10.04) ...update-alternatives: usar /usr/share/postgresql/8.4/man/man1/psql.1.gz para proporcionar /usr/share/man/man1/psql.1.gz (psql.1.gz) en modo automático

Configurando postgresql-common (106) ...Adding user postgres to group ssl-certBuilding PostgreSQL dictionaries from installed myspell/hunspell packages... en_au en_ca en_gb en_us es

Configurando postgresql-8.4 (8.4.4-0ubuntu10.04) ...

Page 8: Instalación y configuración de PostgreSQL bajo GNU_Linux

Creating new cluster (configuration: /etc/postgresql/8.4/main, data: /var/lib/postgresql/8.4/main)...Moving configuration file /var/lib/postgresql/8.4/main/postgresql.conf to /etc/postgresql/8.4/main...Moving configuration file /var/lib/postgresql/8.4/main/pg_hba.conf to /etc/postgresql/8.4/main...Moving configuration file /var/lib/postgresql/8.4/main/pg_ident.conf to /etc/postgresql/8.4/main...Configuring postgresql.conf to use port 5432...update-alternatives: usar /usr/share/postgresql/8.4/man/man1/postmaster.1.gz para proporcionar /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) en modo automático * Starting PostgreSQL 8.4 database server [ OK ]

Configurando postgresql (8.4.4-0ubuntu10.04) ...Configurando postgresql-contrib-8.4 (8.4.4-0ubuntu10.04) ...

Configurando postgresql-contrib (8.4.4-0ubuntu10.04) ...Configurando postgresql-doc-8.4 (8.4.4-0ubuntu10.04) ...Configurando postgresql-doc (8.4.4-0ubuntu10.04) ...Procesando disparadores para libc-bin ...ldconfig deferred processing now taking placeLeyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... HechoLeyendo la información de estado extendido Inicializando el estado de los paquetes... HechoEscribiendo información de estado extendido... Hecho

root@miguel-lt:/home/miguel-lt#

Ahora revisa una cosa más antes de seguir al paso 2. Ve a SistemaAdministraciónMonitor del sistema, y comprueba si postgresql está iniciado. Dentro de ella ubica la pestaña Procesos, ve al Menú VerTodos los procesos. Debe hacer POR LO MENOS el proceso postgresql ejecutándose (los demás depende de éste último). Otra forma de comprobarlo, sin llegar más lejos: dentro de la terminal que usas escribe esto:root@miguel-lt:/home/miguel-lt# ps auxw | grep postgre… y podrás ver algo como esto:postgres 3111 0.1 1.1 45600 5676 ? S 18:50 0:00 /usr/lib/postgresql/8.4/bin/postgres -D /var/lib/postgresql/8.4/main -c config_file=/etc/postgresql/8.4/main/postgresql.confpostgres 3114 0.1 0.3 45732 1572 ? Ss 18:50 0:00 postgres: writer process postgres 3115 0.1 0.2 45732 1336 ? Ss 18:50 0:00 postgres: wal writer process postgres 3116 0.0 0.3 45740 1656 ? Ss 18:50 0:00 postgres: autovacuum launcher process postgres 3117 0.0 0.2 13900 1284 ? Ss 18:50 0:00 postgres: stats collector process

Page 9: Instalación y configuración de PostgreSQL bajo GNU_Linux

root 3155 0.0 0.1 3336 820 pts/0 S+ 18:59 0:00 grep --color=auto postgre

2. Una vez instalado y visto que se ejecuta, vamos a montar un servidor para usar en las pruebas del gestor de base de datos. Puedes escoger entre varias opciones (en el caso de Windows); pero la más recomendada en los servidores Linux es Apache, así que vamos a instalarlo. De nuevo en la consola, escribe:root@miguel-lt:/home/miguel-lt# sudo aptitude search apachep apache2 - Apache HTTP Server metapackage v apache2-dev - p apache2-doc - Apache HTTP Server documentation v apache2-mpm - p apache2-mpm-event - Apache HTTP Server - event driven model p apache2-mpm-itk - multiuser MPM for Apache 2.2 p apache2-mpm-prefork - Apache HTTP Server - traditional non-threaded model p apache2-mpm-worker - Apache HTTP Server - high speed threaded model p apache2-prefork-dev - Apache development headers - non-threaded MPM p apache2-suexec - Standard suexec program for Apache 2 mod_suexec p apache2-suexec-custom - Configurable suexec program for Apache 2 mod_suexec p apache2-threaded-dev - Apache development headers - threaded MPM p apache2-utils - utility programs for webservers p apache2.2-bin - Apache HTTP Server common binary files p apache2.2-common - Apache HTTP Server common files p apachetop - Realtime Apache monitoring tool p gforge-web-apache - transition package to gforge-web-apache2 p gforge-web-apache2 - collaborative development tool - web part (using Apache) p libapache-admin-config-perl - a Perl module to read/write Apache like configuration files p libapache-asp-perl - perl Apache::ASP - Active Server Pages for Apache with mod_perl p libapache-authenhook-perl - Perl API for Apache 2.1 authentication p libapache-authznetldap-perl - Apache-Perl module that enables to authorize a user with LDAP attributes p libapache-configfile-perl - Parse an Apache style httpd.conf configuration file p libapache-db-perl - Run the interactive Perl debugger under mod_perl p libapache-dbi-perl - Connect apache server to database via perl's DBI p libapache-dbilogger-perl - Tracks what's being transferred in a DBI database p libapache-gallery-perl - Apache module to create galleries on-the-fly p libapache-htpasswd-perl - Manage Unix crypt-style password file p libapache-mod-auth-kerb - apache module for Kerberos authentication p libapache-mod-jk-doc - Documentation of libapache2-mod-jk package p libapache-mod-security - Tighten web applications security for Apache p libapache-ruby1.8 - Ruby libraries for mod_ruby p libapache-session-perl - Perl modules for keeping persistent user data across http requests p libapache-session-wrapper-perl - A simple wrapper around Apache::Session p libapache-sessionx-perl - An extented persistence framework for session data p libapache-singleton-perl - Singleton class for mod_perl p libapache2-authcassimple-perl - Apache2 module to authentificate trough a CAS server

Page 10: Instalación y configuración de PostgreSQL bajo GNU_Linux

p libapache2-authenntlm-perl - Perform Microsoft NTLM and Basic User Authentication p libapache2-mod-antiloris - Apache2 module to defend against DoS attacks using incomplete requests p libapache2-mod-apparmor - changehat AppArmor library as an Apache module p libapache2-mod-apreq2 - generic Apache request library - Apache module p libapache2-mod-auth-cas - CAS authentication module for Apache2 p libapache2-mod-auth-kerb - apache2 module for Kerberos authentication p libapache2-mod-auth-mysql - Apache 2 module for MySQL authentication p libapache2-mod-auth-openid - OpenID authentication module for Apache2 p libapache2-mod-auth-pam - module for Apache2 which authenticate using PAM p libapache2-mod-auth-pgsql - Module for Apache2 which provides pgsql authentication p libapache2-mod-auth-plain - Module for Apache2 which provides plaintext authentication p libapache2-mod-auth-radius - Apache 2.x module for RADIUS authentication p libapache2-mod-auth-sys-group - Module for Apache2 which checks user against system group p libapache2-mod-authn-sasl - SASL authentication backend provider for Apache p libapache2-mod-authnz-external - authenticate Apache against external authentication services p libapache2-mod-authz-unixgroup - access control based on on unix group membership for Apache p libapache2-mod-axis2c - Apache web services engine - apache module p libapache2-mod-bw - bandwidth limiting module for apache2 p libapache2-mod-chroot - run Apache in a secure chroot environment p libapache2-mod-defensible - module for Apache2 which provides DNSBL usage p libapache2-mod-dnssd - Zeroconf support for Apache 2 via avahi p libapache2-mod-encoding - Apache2 module for non-ascii filename interoperability p libapache2-mod-evasive - evasive module to minimize HTTP DoS or brute force attacks p libapache2-mod-fastcgi - Apache 2 FastCGI module for long-running CGI scripts p libapache2-mod-fcgid - an alternative module compat with mod_fastcgi p libapache2-mod-fcgid-dbg - debugging symbols for mod_fcgid p libapache2-mod-geoip - GeoIP support for apache2 p libapache2-mod-gnutls - Apache module for SSL and TLS encryption with GnuTLS p libapache2-mod-jk - Apache 2 connector for the Tomcat Java servlet engine p libapache2-mod-layout - Apache web page content wrapper p libapache2-mod-ldap-userdir - Apache module that provides UserDir lookups via LDAP p libapache2-mod-line-edit - search-and-replace line editor module for apache 2 p libapache2-mod-lisp - An Apache2 module that interfaces with Lisp environments p libapache2-mod-log-sql - Use SQL to store/write your apache queries logs - Base p libapache2-mod-log-sql-dbi - Use SQL to store/write your apache queries logs - DBI interface p libapache2-mod-log-sql-mysql - Use SQL to store/write your apache queries logs - MySQL interface p libapache2-mod-log-sql-ssl - Use SQL to store/write your apache queries logs - SSL extension p libapache2-mod-macro - Create macros inside apache2 config files

Page 11: Instalación y configuración de PostgreSQL bajo GNU_Linux

p libapache2-mod-mime-xattr - Apache2 module to get MIME info from filesystem extended attributes p libapache2-mod-mono - Apache module for running ASP.NET applications on Mono p libapache2-mod-musicindex - Browse, stream, download and search through MP3/Ogg/FLAC files p libapache2-mod-neko - Apache module for running server-side Neko programs p libapache2-mod-ocamlnet - OCaml application-level Internet libraries - netcgi2 Apache2 connector p libapache2-mod-passenger - Rails and Rack support for Apache2 p libapache2-mod-perl2 - Integration of perl with the Apache2 web server p libapache2-mod-perl2-dev - Integration of perl with the Apache2 web server - development files p libapache2-mod-perl2-doc - Integration of perl with the Apache2 web server - documentation p libapache2-mod-php5 - server-side, HTML-embedded scripting language (Apache 2 module) p libapache2-mod-php5filter - server-side, HTML-embedded scripting language (apache 2 filter module) p libapache2-mod-proxy-html - Apache2 filter module for HTML links rewriting p libapache2-mod-python - Python-embedding module for Apache 2 p libapache2-mod-python-doc - Python-embedding module for Apache 2 - documentation v libapache2-mod-python2.6 - p libapache2-mod-random - Create random ads, quotes and redirects p libapache2-mod-removeip - Module to remove IP from apache2's logs p libapache2-mod-rpaf - module for Apache2 which takes the last IP from the 'X-Forwarded-For' header p libapache2-mod-ruby - Embedding Ruby in the Apache2 web server p libapache2-mod-scgi - Apache module implementing the SCGI protocol v libapache2-mod-security2 - p libapache2-mod-shib2 - Federated web single sign-on system (Apache module) p libapache2-mod-spamhaus - Apache DNSBL module that blocks listed IP addresses p libapache2-mod-speedycgi - apache2 module to speed up perl scripts by making them persistent p libapache2-mod-suphp - Apache2 module to run php scripts with the owner permissions p libapache2-mod-vhost-hash-alias - Fast and efficient way to manage virtual hosting p libapache2-mod-vhost-ldap - Apache 2 module for Virtual Hosting from LDAP p libapache2-mod-wsgi - Python WSGI adapter module for Apache p libapache2-mod-xsendfile - Serve large static files efficiently from web applications p libapache2-modxslt - XSLT processing module for Apache 2.x based on libxml2 p libapache2-redirtoservname - Apache 2 module to redirect users to the canonical hostname p libapache2-reload-perl - Reload Perl modules when changed on disk p libapache2-request-perl - generic Apache request library - Perl modules p libapache2-svn - Subversion server modules for Apache p libapache2-webauth - Apache 2 modules for WebAuth authentication p libapache2-webkdc - Apache 2 modules for a WebAuth authentication KDC p libcatalyst-engine-apache-perl - base class for Apache 1.x and 2.x Catalyst engines

Page 12: Instalación y configuración de PostgreSQL bajo GNU_Linux

p libconfig-apacheformat-perl - use Apache format config files p libmasonx-request-withapachesession-perl - Session handler in the Mason Request object p mahara-apache2 - Electronic portfolio, weblog, and resume builder - apache2 configuration p mono-apache-server - ASP.NET backend for mod_mono2 Apache module - default version p mono-apache-server1 - ASP.NET 1.1 backend for mod_mono Apache module p mono-apache-server2 - ASP.NET 2.0 backend for mod_mono2 Apache module p python-apache-openid - OpenID consumer module for Apache p rt3.8-apache2 - Apache 2 specific files for request-tracker3.8 p torrus-apache - Transitional Package for migration to torrus-apache2 p torrus-apache2 - Universal front-end for Round-Robin Databases (for apache 2.x)

Entre los paquetes mostrados instala apache2, apache2-doc, apache2-utils, apache2.2-bin, apache2.2-common. Así que ejecútalos: En terminal escribe esto:root@miguel-lt:/home/miguel-lt# sudo aptitude install apache2 apache2-doc apache2-utils apache2.2-bin apache2.2-common…y este es el resultado:Leyendo lista de paquetes... HechoCreando árbol de dependencias Leyendo la información de estado... HechoLeyendo la información de estado extendido Inicializando el estado de los paquetes... HechoSe instalarán los siguiente paquetes NUEVOS: apache2 apache2-doc apache2-mpm-worker{a} apache2-utils apache2.2-bin apache2.2-common libapr1{a} libaprutil1{a} libaprutil1-dbd-sqlite3{a} libaprutil1-ldap{a} 0 paquetes actualizados, 10 nuevos instalados, 0 para eliminar y 0 sin actualizar.Necesito descargar 5586kB de ficheros. Después de desempaquetar se usarán 22,6MB.¿Quiere continuar? [Y/n/?] YEscribiendo información de estado extendido... HechoDes:1 http://ve.archive.ubuntu.com/ubuntu/ lucid/main libapr1 1.3.8-1build1 [116kB]Des:2 http://ve.archive.ubuntu.com/ubuntu/ lucid/main libaprutil1 1.3.9+dfsg-3build1 [85,4kB]Des:3 http://ve.archive.ubuntu.com/ubuntu/ lucid/main libaprutil1-dbd-sqlite3 1.3.9+dfsg-3build1 [27,1kB]Des:4 http://ve.archive.ubuntu.com/ubuntu/ lucid/main libaprutil1-ldap 1.3.9+dfsg-3build1 [25,1kB]Des:5 http://ve.archive.ubuntu.com/ubuntu/ lucid/main apache2.2-bin 2.2.14-5ubuntu8 [2622kB] Des:6 http://ve.archive.ubuntu.com/ubuntu/ lucid/main apache2-utils 2.2.14-5ubuntu8 [159kB] Des:7 http://ve.archive.ubuntu.com/ubuntu/ lucid/main apache2.2-common 2.2.14-5ubuntu8 [290kB] Des:8 http://ve.archive.ubuntu.com/ubuntu/ lucid/main apache2-mpm-worker 2.2.14-5ubuntu8 [2364B] Des:9 http://ve.archive.ubuntu.com/ubuntu/ lucid/main apache2 2.2.14-5ubuntu8 [1482B]

Page 13: Instalación y configuración de PostgreSQL bajo GNU_Linux

Des:10 http://ve.archive.ubuntu.com/ubuntu/ lucid/main apache2-doc 2.2.14-5ubuntu8 [2257kB] Descargados 5586kB en 3min 18s (28,2kB/s). Seleccionando el paquete libapr1 previamente no seleccionado.(Leyendo la base de datos ... 00%130944 ficheros y directorios instalados actualmente.)Desempaquetando libapr1 (de .../libapr1_1.3.8-1build1_i386.deb) ...Seleccionando el paquete libaprutil1 previamente no seleccionado.Desempaquetando libaprutil1 (de .../libaprutil1_1.3.9+dfsg-3build1_i386.deb) ...Seleccionando el paquete libaprutil1-dbd-sqlite3 previamente no seleccionado.Desempaquetando libaprutil1-dbd-sqlite3 (de .../libaprutil1-dbd-sqlite3_1.3.9+dfsg-3build1_i386.deb) ...Seleccionando el paquete libaprutil1-ldap previamente no seleccionado.Desempaquetando libaprutil1-ldap (de .../libaprutil1-ldap_1.3.9+dfsg-3build1_i386.deb) ...Seleccionando el paquete apache2.2-bin previamente no seleccionado.Desempaquetando apache2.2-bin (de .../apache2.2-bin_2.2.14-5ubuntu8_i386.deb) ...Seleccionando el paquete apache2-utils previamente no seleccionado.Desempaquetando apache2-utils (de .../apache2-utils_2.2.14-5ubuntu8_i386.deb) ...Seleccionando el paquete apache2.2-common previamente no seleccionado.Desempaquetando apache2.2-common (de .../apache2.2-common_2.2.14-5ubuntu8_i386.deb) ...Seleccionando el paquete apache2-mpm-worker previamente no seleccionado.Desempaquetando apache2-mpm-worker (de .../apache2-mpm-worker_2.2.14-5ubuntu8_i386.deb) ...Seleccionando el paquete apache2 previamente no seleccionado.Desempaquetando apache2 (de .../apache2_2.2.14-5ubuntu8_i386.deb) ...Seleccionando el paquete apache2-doc previamente no seleccionado.Desempaquetando apache2-doc (de .../apache2-doc_2.2.14-5ubuntu8_all.deb) ...Procesando disparadores para man-db ...Procesando disparadores para ufw ...Procesando disparadores para ureadahead ...Procesando disparadores para doc-base ...Processing 1 added doc-base file(s)...Registering documents with scrollkeeper...Configurando libapr1 (1.3.8-1build1) ...

Configurando libaprutil1 (1.3.9+dfsg-3build1) ...

Configurando libaprutil1-dbd-sqlite3 (1.3.9+dfsg-3build1) ...Configurando libaprutil1-ldap (1.3.9+dfsg-3build1) ...Configurando apache2.2-bin (2.2.14-5ubuntu8) ...Configurando apache2-utils (2.2.14-5ubuntu8) ...Configurando apache2.2-common (2.2.14-5ubuntu8) ...Enabling site default.Enabling module alias.Enabling module autoindex.Enabling module dir.Enabling module env.Enabling module mime.

Page 14: Instalación y configuración de PostgreSQL bajo GNU_Linux

Enabling module negotiation.Enabling module setenvif.Enabling module status.Enabling module auth_basic.Enabling module deflate.Enabling module authz_default.Enabling module authz_user.Enabling module authz_groupfile.Enabling module authn_file.Enabling module authz_host.Enabling module reqtimeout.

Configurando apache2-mpm-worker (2.2.14-5ubuntu8) ... * Starting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName [ OK ]

Configurando apache2 (2.2.14-5ubuntu8) ...

Configurando apache2-doc (2.2.14-5ubuntu8) ... * Reloading web server config apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName [ OK ]

Procesando disparadores para libc-bin ...ldconfig deferred processing now taking placeLeyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... HechoLeyendo la información de estado extendido Inicializando el estado de los paquetes... HechoEscribiendo información de estado extendido... Hecho[N.D.A.: He de aclarar que esto se realizó en una máquina virtual de virtualbox; por lo que las opciones desde “Configurando apache2-mpm-worker(2.2.14-5ubuntu8)…” hasta el segundo [OK] son diferentes. En un entorno Linux real, se le solicitará ingresar algunos datos adicionales, procure escribirlos bien.]

3. Ahora procede a instalar una aplicación gráfica para manejar el gestor PostgreSQL. Su nombre es PgAdminIII, y nos permitirá utilizar un servidor base para montar y mostrar las bases de datos que instalemos. De nuevo en la misma terminal que hemos usado escribe:root@miguel-lt:/home/miguel-lt# sudo aptitude search pgadmin…y el resultado será como esto:

Page 15: Instalación y configuración de PostgreSQL bajo GNU_Linux

p pgadmin3 - graphical administration tool for PostgreSQL p pgadmin3-data - graphical administration tool for PostgreSQL - documentation p phppgadmin - web-based administration tool for PostgreSQL

Así que procede a escribir las dos primeras aplicaciones, y dejar que se instalen:root@miguel-lt:/home/miguel-lt# sudo aptitude install pgadmin3 pgadmin3-dataLeyendo lista de paquetes... HechoCreando árbol de dependencias Leyendo la información de estado... HechoLeyendo la información de estado extendido Inicializando el estado de los paquetes... HechoSe instalarán los siguiente paquetes NUEVOS: libwxbase2.8-0{a} libwxgtk2.8-0{a} pgadmin3 pgadmin3-data pgagent{a} 0 paquetes actualizados, 5 nuevos instalados, 0 para eliminar y 0 sin actualizar.Necesito descargar 11,8MB de ficheros. Después de desempaquetar se usarán 29,4MB.¿Quiere continuar? [Y/n/?] YEscribiendo información de estado extendido... HechoDes:1 http://ve.archive.ubuntu.com/ubuntu/ lucid/universe libwxbase2.8-0 2.8.10.1-0ubuntu1 [689kB]Des:2 http://ve.archive.ubuntu.com/ubuntu/ lucid/universe libwxgtk2.8-0 2.8.10.1-0ubuntu1 [3455kB] Des:3 http://ve.archive.ubuntu.com/ubuntu/ lucid/universe pgadmin3-data 1.10.2-1 [5535kB] Des:4 http://ve.archive.ubuntu.com/ubuntu/ lucid/universe pgadmin3 1.10.2-1 [2072kB] Des:5 http://ve.archive.ubuntu.com/ubuntu/ lucid/universe pgagent 3.0.1-1 [39,1kB] Descargados 11,8MB en 2min 24s (81,6kB/s). Seleccionando el paquete libwxbase2.8-0 previamente no seleccionado.(Leyendo la base de datos ... 00%133088 ficheros y directorios instalados actualmente.)Desempaquetando libwxbase2.8-0 (de .../libwxbase2.8-0_2.8.10.1-0ubuntu1_i386.deb) ...Seleccionando el paquete libwxgtk2.8-0 previamente no seleccionado.Desempaquetando libwxgtk2.8-0 (de .../libwxgtk2.8-0_2.8.10.1-0ubuntu1_i386.deb) ...Seleccionando el paquete pgadmin3-data previamente no seleccionado.Desempaquetando pgadmin3-data (de .../pgadmin3-data_1.10.2-1_all.deb) ...Seleccionando el paquete pgadmin3 previamente no seleccionado.Desempaquetando pgadmin3 (de .../pgadmin3_1.10.2-1_i386.deb) ...Seleccionando el paquete pgagent previamente no seleccionado.Desempaquetando pgagent (de .../pgagent_3.0.1-1_i386.deb) ...Procesando disparadores para doc-base ...Processing 1 added doc-base file(s)...Registering documents with scrollkeeper...Procesando disparadores para man-db ...Procesando disparadores para desktop-file-utils ...Procesando disparadores para python-gmenu ...Rebuilding /usr/share/applications/desktop.es_VE.utf8.cache...Procesando disparadores para python-support ...Configurando libwxbase2.8-0 (2.8.10.1-0ubuntu1) ...

Configurando libwxgtk2.8-0 (2.8.10.1-0ubuntu1) ...

Page 16: Instalación y configuración de PostgreSQL bajo GNU_Linux

Configurando pgadmin3-data (1.10.2-1) ...Configurando pgadmin3 (1.10.2-1) ...

Configurando pgagent (3.0.1-1) ...Procesando disparadores para libc-bin ...ldconfig deferred processing now taking placeLeyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... HechoLeyendo la información de estado extendido Inicializando el estado de los paquetes... HechoEscribiendo información de estado extendido... Hecho

Listo. Ahora dos puntos antes de continuar. Abre Firefox (sí, porque ese es el navegador por defecto en la mayoría de las distribuciones, en este caso, Ubuntu) y escribe en la barra de direcciones esto: http://localhost. Si apache está ejecutándose (lo cual veremos luego), debe verse esto:

It works!This is the default web page for this server.

The web server software is running but no content has been added, yet.

En caso de que no se vea, entonces apache no se está ejecutando. Se puede resolver forzando la ejecución desde el terminal ya abierto. Otra forma de saber si apache se ejecuta es, desde luego, a través de la terminal, ejecutando:root@miguel-lt:/home/miguel-lt# ps auxw |grep apacheroot 4278 0.0 0.5 5408 2960 ? Ss 19:42 0:00 /usr/sbin/apache2 -k startwww-data 4379 0.0 0.3 5408 1784 ? S 19:42 0:00 /usr/sbin/apache2 -k startwww-data 4381 0.0 0.5 227152 3000 ? Sl 19:42 0:00 /usr/sbin/apache2 -k startwww-data 4382 0.0 0.5 227088 2976 ? Sl 19:42 0:00 /usr/sbin/apache2 -k startroot 4682 0.0 0.1 3336 820 pts/0 S+ 20:12 0:00 grep --color=auto apache

Y luego comprueba si está instalado el pgadmin3. Ve hasta AplicacionesProgramación y allí lo verás: pgAdminIII. ¡Voila!, ya completamos la primera parte.

4. Proceso de configuración

Ahora procedo a realizar la configuración de las nuevas bases de datos. Primero, estando la terminal abierta tipeo:root@miguel-lt:/home/miguel-lt# su postgres…y de inmediato cambiará la orden a:postgres@miguel-lt:/home/miguel-lt$Pero antes, hay que definirle la contraseña predeterminada. Por defecto, postgres tiene una contraseña que se genera de forma aleatoria; pero se puede cambiar. En la terminal ejecuta esta instrucción:root@miguel-lt:/home/miguel-lt# sudo su postgres -c "psql template1"

Page 17: Instalación y configuración de PostgreSQL bajo GNU_Linux

psql (8.4.4)Digite «help» para obtener ayuda.

template1=# ALTER USER postgres WITH PASSWORD sistemas101;ERROR: error de sintaxis en o cerca de «sistemas101»LÍNEA 1: ALTER USER postgres WITH PASSWORD sistemas101; ^template1=# ALTER USER postgres WITH PASSWORD 'sistemas101';ALTER ROLEtemplate1=# \qroot@miguel-lt:/home/miguel-lt#

A veces ocurre que no siempre fluyen las cosas de forma adecuada. Por ello vamos paso a paso. Digita en la terminal sudo su postgres -c "psql template1" Esto hará dos cosas: 1) Cambiará al superusuario postgres; y2) Abrirá el aplicativo psql y ejecutará la función template 1. Desde ella ahora se escribe esto: ALTER USER postgres WITH PASSWORD 'nueva_contraseña'; donde 'nueva_contraseña'; será la clave que digites para el superusuario postgres. Eso sí, debes mantener las comillas, o te pasará lo que me sucedió a mí, si observas con detenimiento la parte de arriba. Si se escribió bien, esto se mostrará:ALTER ROLELo que dirá que la operación fue un éxito. Si hay un error (como me paso a mí, verás esto):ERROR: error de sintaxis en o cerca de «sistemas101» (o algo similar).Luego se sale del aplicativo con la instrucción \q (que equivale a salir).

Ya que se ha cambiado la clave del usuario postgres, es hora de jugar con su mecánica. Vamos a ejecutar un paso que es sumamente delicado; y si se hace sin el menor recato posible se estropeará todo. En la terminal ejecuta: sudo gedit /etc/postgresql/8.4/main/postgresql.conf. [PAUSA: El original decía sudo gedit /etc/postgresql/8.2/main/postgresql.conf; pero la versión estable más actual es la 8.4; por lo que se cambia el directorio a mostrar.] Esto con la finalidad de ajustar un par de opciones de este archivo. Verás, por defecto estas configuraciones están prediseñadas para que no se admitan conexiones desde el exterior hacia nuestro servidor; sin embargo, es necesario modificarlo para que funcionen todos los accesos.

La primera línea que debes modificar es esta:#listen_addresses = 'localhost', Quitarle el # y pasar de ‘localhost’ a ‘*’ para que tenga puerta abierta a todas las conexiones a realizar.La siguiente línea que debes modificar es esta:#password_encryption = on, y quitarle el # para tener puerta abierta también. Guarda los cambios, y en la terminal ejecuta esta instrucción:root@miguel-lt:/etc/postgresql/8.4/main# sudo /etc/init.d/postgresql-8.4 restart * Restarting PostgreSQL 8.4 database server [ OK ]Ojo avizor; porque si haces esto:root@miguel-lt:/etc/postgresql/8.4/main# sudo /etc/init.d/postgresql-8.2 restart, ésta será su respuesta: sudo: /etc/init.d/postgresql-8.2: command not foundAsí que pendiente con lo que vayas a realizar, que para eso está esta guía.

Page 18: Instalación y configuración de PostgreSQL bajo GNU_Linux

Ahora viene la parte más interesante: montaje del nuevo usuario.

Para poder crear un nuevo usuario de la base de datos, en la terminal ingresa al usuario postgres mediante la siguiente instrucción:root@miguel-lt:/home/miguel-lt# su postgrespostgres@miguel-lt:/home/miguel-lt$

Y con ello ya estás ingresando a la terminal(o consola) bajo el usuario postgres. Ahora ingresa al nuevo usuario con la siguiente instrucción:postgres@miguel-lt:/home/miguel-lt$ createuser PRUEBA1

Luego, te toca seguir una simple instrucción:1: ¿Será el nuevo rol un superusuario? (s/n) |Indica que sí pulsando S y Enter. ¿Es todo? No, porque hay más cosas interesantes.Ahora procede a crear otro usuario sin función de superusuario.postgres@miguel-lt:/home/miguel-lt$ createuser PRUEBA2. En este caso, en la instrucción anterior pulsamos N y luego Enter. Pero ahora sale esto:2: ¿Debe permitírsele al rol la creación de bases de datos? (s/n) |Escoge que sí y pulsa S y luego Enter.3: ¿Debe permitírsele al rol la creación de otros roles? (s/n) |Escoge también que sí.Y allí finaliza las funciones.Ahora crea otro usuario sin función de superusuario; pero también negando todas las preguntas anteriores:postgres@miguel-lt:/home/miguel-lt$ createuser PRUEBA3¿Será el nuevo rol un superusuario? (s/n) n¿Debe permitírsele al rol la creación de bases de datos? (s/n) n¿Debe permitírsele al rol la creación de otros roles? (s/n) n

Listo, ahora hay 3 usuarios: dos usuarios comunes y silvestres, y uno con funciones de administrador. En base a ellos crea las bases de datos que usarán. En la terminal ingresa el comando createdb “basededatos”; donde el nombre “basededatos” se lo asignas nosotros; pero sin las comillas. En mi caso:postgres@miguel-lt:/home/miguel-lt$ createdb USERPRUEBA1Si todo marcha bien, el proceso concluye sin nada que mostrar; pero si acontece un error (quien sabe por qué razón) aparecerá la razón del fallo en la terminal.Uno de los fallos más comunes es este:root@miguel-lt:/home/miguel-lt# createdb USERPRUEBA2createdb: no se pudo conectar a la base de datos postgres: FATAL: la autentificaci?n Ident fall? para el usuario <<root>>; la razón principal es esta: root@miguel-lt:/home/miguel-lt# createdb USERPRUEBA2El usuario root no está facultado a crear procedimientos de usos de base de datos PostgreSQL; sólo lo puede realizar el usuario postgres.

Ahora bien; puedes administrar las bases de datos de dos formas. Una de ellas es usando el programa pgAdminIII recién instalado, y la segunda es por la misma terminal que tienes abierta. He de recordarle que, para usar los procedimientos en pgAdminIII, el usuario postgres debe estar habilitado; de lo contrario saldrán muchos fallos. Un aplicativo que puedes utilizar es psql, con funciones y métodos de uso de base de datos por la consola o terminal.

Page 19: Instalación y configuración de PostgreSQL bajo GNU_Linux

En la terminal escribe esto:postgres@miguel-lt:/home/miguel-lt$ psqlpsql (8.4.4)Digite «help» para obtener ayuda.

postgres=#

¿Ya habíamos visto esta instrucción antes? ¡Claro, fue para cambiar la clave del usuario postgres! Desde este aplicativo podemos tener acceso a las funciones de creación, modificación, edición y eliminación de todo lo que refiera a la base de datos PostgreSQL.

Page 20: Instalación y configuración de PostgreSQL bajo GNU_Linux

5. Implantación del sistemaPrimero abre el pgAdminIII en Aplicaciones-->Programación-->pgAdminIII. Verás que el programa se ve así:

Ahora voy a indicar cómo conectar a un servidor de base de datos. Previamente les indiqué que debían instalar Apache, para poder alojar las bases de datos de prueba creadas con el mismo programa. Pues bien, es hora de darle utilidad.

Primero, ve a File-->Options para cambiar las opciones del programa. Únicamente vamos a modificar el idioma, así que ve a User Language (en la pestaña General) y escoge el idioma Español y pulsa Aceptar.

Page 21: Instalación y configuración de PostgreSQL bajo GNU_Linux

Para validarlo, reinicia el programa, volviendo a Aplicaciones-->Programación-->pgAdminIII.

En el programa, agrega un servidor para alojar las primeras bases de datos que vas a utilizar: ve al botón de un enchufe (se denomina Add a connection from server), y aparecerá un recuadro como se ve aquí:

Ahora bien, ¿qué hacer aquí? Vayamos por partes, voy a resumirlo en las opciones que se deberán utilizar, las más comunes:

Page 22: Instalación y configuración de PostgreSQL bajo GNU_Linux

Nombre: será el nombre del servidor a utilizar. En mi caso, yo escogí PruebaDB. Servidor: será el sitio donde se aloje la(s) base(s) de datos. Puerto: el puerto por el que pase la información. Por defecto aparece 5432; pero si

editas el archivo postgresql.conf puedes escoger usar otro puerto. SSL: es el modo en el que se encripta la conexión (hay varias opciones: requerir,

preferir, permitir, desactivar, verificar de autoridad certificante, verificar completo). Base de datos de Mantenimiento: método de conexión inicial, que además contiene

adminpack y esquema pgAgent. Nombre de usuario: el rol de postrges que se utilizará para la conexión. Contraseña: la clave del rol de postgres elegido para la conexión.

(aquí acoto una cosa: en el comando createuser 'nombredeusuario', visto anteriormente, se crea sin una contraseña específica, por ello es recomendable iniciar con el usuario postgres; y luego, usar otros usuarios ya creados con su propia contraseña).

Almacenar contraseña (para próximas sesiones). ¡Importante: la contraseña se graba en un archivo de texto!

Restaurar env: almacenar y recuperar el entorno de navegación de pgAdmin. Importante no desactivar nunca esta casilla.

Restricción DB: limitar las bases de datos y esquemas que se muestran en pgAdmin. Estas opciones se entiende de forma simple en el manual de PostgreSQL; no las modificaremos a efectos prácticos.

Servicio: parámetros para controlar el servicio (depende del S.O.). Esta opción tampoco la modificaremos para no cometer error alguno a la hora de la implementación.

Conectar ahora: permite iniciar la conexión inmediatamente. Recomendable desactivar la casilla.

Color: muestra el servidor conectado de otro color, blanco por defecto, y otros definidos por el usuario.

Luego de haber modificado las opciones requeridas e insertado los valores que necesitemos, tal como se ve en la imagen de abajo, pulsamos el botón Aceptar.

Page 23: Instalación y configuración de PostgreSQL bajo GNU_Linux

Luego de ello ve al servidor creado al lado izquierdo y pulsa el botón derecho del ratón, y escoge la opción Conectar. Allí se te pide ingresar la contraseña del usuario escogido. Es recomendable acordarse del usuario que se escogió para las pruebas. Por lo general es postgres, por lo que, si no has cambiado la contraseña, vuelve hasta más arriba de esta guía y revisa la parte del cambio de contraseña del usuario postgres. En cambio, si has escogido otro usuario, puedes cambiarlo, acordándote de la contraseña que posee.

Si todo salió bien, debería verse algo como esto:

En caso contrario, nos saldrá algo como esto:

Page 24: Instalación y configuración de PostgreSQL bajo GNU_Linux

Es por ello que se debe colocar la clave correcta del usuario que se escogió.

Ahora bien, vamos a proceder a alojar los datos en ella. Primero, un dato necesita de ciertas variables, que se insertan dentro de una tabla; pero la tabla se aloja en una base de datos, por lo que debemos crearla primero. Si te acuerdas de algo, ya creaste una al principio, pero crearemos otra para hacer las pruebas. Para ello debes haber conectado al servidor. Si te sale como en la imagen 6, entonces el proceso marcha a la perfección; de lo contrario, revisa que funcione; luego de ello puedes seguir.

Sobre el icono del servidor (del lado izquierdo) pulsa el signo '+' para abrirlo y ver sus características. El servidor posee 4 (3 de ellas ya las vimos antes): base de datos, tablespace, roles de usuario y (la nueva función) roles de grupo. Ve hasta el icono que dice “Bases de datos” y pulsa con el botón derecho del ratón y escoge Nueva base de datos. Ahora verás una ventana como la siguiente:

Page 25: Instalación y configuración de PostgreSQL bajo GNU_Linux

Entre las opciones a modificar, están:

Nombre: es la denominación que usará la base de datos (por cuestiones de simplicidad, se debe evitar espacios, mayúsculas, acentos y separar con guión bajo: '_').

Propietario: El usuario (rol) que tendrá derechos especiales sobre la base de datos. Codificado: esquema de codificación (UTF8, LATIN1, WIN1252). Esto especifica la

forma en la que se verán los caracteres dentro de la base de datos. Plantilla: es la plantilla de creación de bases de datos que se utilizará. Como no

poseemos ninguna, se deja el campo en blanco. Espacio de tablas: el directorio donde se alojará la base de datos. Puede ser uno

predefinido, o uno que previamente hayamos creado (pero esta opción se mostrará luego).

Comentario: puedes escribir notas adicionales sobre la base de datos. Cuando se muestre el código fuente a usar, esto aparecerá como comentado, y no será tomado en cuenta por la aplicación; pero puede ser leído por otro usuario programador.

Una vez escogido lo que se desea escribir en la nueva base de datos (como se ve en la imagen de abajo), pulsa Aceptar para que se agregue la nueva base de datos. Pulsa sobre el icono de la misma para que se conecte al servidor.

Page 26: Instalación y configuración de PostgreSQL bajo GNU_Linux

El siguiente paso es agregar nuevas tablas a la misma. Si la base de datos de prueba ya fueron insertadas tablas por la terminal, aparecerán dentro de la misma; en caso contrario, mostraré cómo agregarlas. Primero pulsa el signo '+' junto a las bases de datos ya agregadas y se mostrarán sus funciones principales. Escogeremos Esquemas y veremos de qué se componen. El esquema de nuestra base de datos de prueba es public, pero se pueden escoger otros iguales, pulsando sobre el icono de Esquemas con el botón derecho del ratón y escogiendo Nuevo esquema.

Pero nuestro interés es no redundar demasiado con las informaciones, de modo que aplicaremos sobre el esquema public los valores que vamos a insertar. Primero, sobre public haz clic en el signo '+' y veremos las funciones que utiliza. Aquí podemos observar muchos métodos ya reconocidos en la introducción a la base de datos: Dominios, Disparadores, Diccionarios FTS, Secuencias, Tablas, Vistas, Funciones, entre otros. Ahora haz clic con el

Page 27: Instalación y configuración de PostgreSQL bajo GNU_Linux

botón derecho del ratón sobre el icono public y escoge Nuevo Objeto-->Nueva Tabla y se abrirá una ventana como esta:

Desde aquí insertarás los datos dentro de la tabla. Pero primero reconozcamos algunas funciones:

Nombre: la forma en la que se llamará la tabla (de nuevo, y como en el caso anterior, evitar espacios, mayúsculas, acentos y separar con guión bajo '_').

Propietario: es el usuario (rol) que tendrá derechos especiales para administrar la tabla .

Espacio de tabla: es el lugar en el que se alojará la tabla. Por defecto, este campo debe ir vacío; pero si ya existe, se puede agregar. Pero yo no lo recomiendo hasta tanto se sepa su utilidad.

Comentario: Agrega un comentario para que un usuario programador sepa qué funcionalidad tiene la tabla.

Una vez completada esta parte, pasa a la pestaña Columna, pulsa Añadir y agrega las variables y los valores que se usarán en la base de datos. Por cuestiones de simplicidad, escogeré dos variables: nombres/apellidos y cédula.

Page 28: Instalación y configuración de PostgreSQL bajo GNU_Linux

Ahora definiremos las restricciones sobre la que se manejarán esos datos, y escoger entre la clave primaria y la clave foránea:

Una vez que se escoge el nombre, escoge qué escribirle en el campo nombre, un comentario adicional, y en la pestaña Columna escoger qué variables usarán la clave primaria. Luego de ello pulsa el botón Aceptar.

Page 29: Instalación y configuración de PostgreSQL bajo GNU_Linux

Si todo sale bien, ya deberíamos ver la tabla anexada. Si ocurre un error (que suele ocurrir siempre), es necesario corregirlo para anexar la tabla. Si no usas clave primaria dentro de la misma, la Sugerencias del Gurú aparecerán advirtiendo acerca de este fallo.

Page 30: Instalación y configuración de PostgreSQL bajo GNU_Linux

Ahora vamos a insertarle valores a la tabla ya creada. Para ello busca el icono con forma de tabla vacía en la barra de herramientas y pulsa sobre el mismo. Se abrirá un editor de la base de datos, en donde podremos insertar los valores que requieren las variables.

Como puedes ver en la imagen adjunta, ya hay un valor insertado con anterioridad. Para agregar otros valores se hace doble clic sobre la celda en la que se insertará el valor. No está permitido agregar un valor vacío porque se decidió por la restricción de 'no valores nulos'.

Hay 3 iconos que vamos a utilizar en esta ventana: el icono de diskette (que representa Guardar), el icono de una papelera (que representa Eliminar), y el de la flecha roja y verde dando vueltas (que representa la opción Actualizar).

Aclaratoria: sólo está permitido actualizar, modificar y borrar datos si la tabla posee una clave primaria.

Hay otras herramientas que nos permitirán mostrar y administrar los datos ingresados en la base de datos, como por ejemplo, la herramienta de consulta SQL, que se ingresa por el icono de una hoja y un lápiz. Al pulsar el botón, se abrirá una ventana de edición SQL

Page 31: Instalación y configuración de PostgreSQL bajo GNU_Linux

Dentro de la misma, existe un constructor gráfico de consultas, que permite realizar un diagrama de relaciones entre las variables agregadas. Desde la misma ventana pulsa la pestaña que se llama, valga la redundancia, Constructor gráfico de consultas.

6. Métodos de configuración de la base de datos (forma consola)Ahora veamos algunas formas de crear y administrar las bases de datos vía terminal:1.-) douglas-morales@douglas-morales-laptop:~$ sudo su2.-) [sudo] password for douglas-morales: clave de ussuario root[Esta contraseña es la misma que utilizas para iniciar sesión]3.-) root@douglas-morales-laptop:/home/douglas-morales#4.-) root@douglas-morales-laptop:/home/douglas-morales# su postgres[Ahora el usuario postgres pasa a dominar la terminal]5.-) postgres@douglas-morales-laptop:/home/douglas-morales#6.-) postgres@douglas-morales-laptop:/home/douglas-morales# createuser nombre del nuevo root de postgres7.-) ¿Será el nuevo rol un superusuario? (s/n) s

Page 32: Instalación y configuración de PostgreSQL bajo GNU_Linux

8.-) postgres@douglas-morales-laptop:/home/douglas-morales# createdb nombre de la base de datos9.-) postgres@douglas-morales-laptop:/home/douglas-morales# exit

10.-) root@douglas-morales-laptop:/home/douglas-morales#11.1) root@douglas-morales-laptop:/home/douglas-morales# psql nombre de la base de datos11.1.1) deberia de pedirde el usuario creado como root y luego seguidamente el promt deberia ser el del punto 12

11.2.-) postgres@douglas-morales-laptop:/home/douglas-morales# psql nombre de la base de datos12.-) nombre de la base de datos=# CREATE TABLE + nombre de la tabla(tipo de datos + clave primaria)13.-) nombre de la base de datos=# \d14.-) nombre de la base de datos=# \d nombre de la tabla

15.-) INSERT INTO nombre de la tabla(tipo de datos + clave primaria)CREATE TABLE products(product_id SERIAL,description TEXT,price DECIMAL);INSERT INTO products(description,price) VALUES('A test product', 12.00);

7. Conclusiones

PostgreSQL es un gestor de base de datos multiplataforma, desarrollado en código abierto para casi todas las plataformas disponibles. La forma de instalación requiere de mucha precisión, ya que la mayor parte de los paquetes se encuentran es en los repositorios, y siempre son librerías de las cuales depende la aplicación para subsistir. El proceso de configuración (tanto por consola como por la parte gráfica) no es complicado; pero tienden a enredarse ciertas cosas, y por ello hay que vigilar cada parte del procedimiento. Hay ciertos fallos que suelen surgir, y es por esto que esta guía se ha realizado cuidando cada aspecto a ser tratado. Esta guía planea ser una introducción al uso de PostgreSQL, que quizás sea utilizada como base para diversos proyectos en el área de sistemas en el futuro.

Dependiendo de la distribución que se utilice, los paquetes se bajan de una u otra forma, pero su instalación, y su configuración se realiza de la misma manera, y desarrollar pruebas sobre una máquina virtual ayuda a aprender los pasos básicos para realizarlos después en un entorno más realista; por ello, recomiendo el uso de máquinas virtuales de código abierto, como VirtualBox, de Oracle; o de código cerrado, como VMWare; pero evitando usar el virtualizador de Microsoft (Virtual PC), porque no es compatible con GNU/Linux

8. Bibliografía relacionada.

Algunos sitios web de referencias para consulta acerca de cómo manejar este gestor son: http://www.guia-ubuntu.org/index.php?title=PgAdmin_III http://www.guia-ubuntu.org/index.php?title=PostgreSQL http://www.arpug.com.ar/trac/wiki/PgAdmin http://www.ubuntu-ve.org/node/2044 http://sonidolibre.wordpress.com/2008/04/17/instalar-postgresql-y-pgadmin-en-ubuntu/

Page 33: Instalación y configuración de PostgreSQL bajo GNU_Linux

http://iie.fing.edu.uy/~vagonbar/debian/debian22/postgresql/ postgres.htm#CrearBaseDatosPrueba

http://structio.sourceforge.net/guias/servidor_OpenBSD/postgresql.html http://perso.wanadoo.es/manel3/chuletas/I-postgresql http://luauf.com/2008/05/28/instalar-postgresql-en-ubuntu/ http://www.gentoo.org/doc/es/postgres-howto.xml http://www.virtualbox.org/