Localización de descarga (HTTP): http://www.ca.postgresql.org/ftpsite/v7.3.2/postgresql-7.3.2.tar.gz Localización de descarga (FTP): ftp://ftp8.us.postgresql.org/pub/pgsql/source/v7.3.2/postgresql-7.3.2.tar.gz Versión usada: 7.3.2 Tamaño del paquete: 11 MB Estimación del espacio necesario en disco: 68 MB |
El paquete PostgreSQL contiene el sistema de gestión de bases de datos relacionales PostgreSQL, utilidades clientes y vínculos para varios lenguajes.
Nota: Los vínculos para C++ y ODBC han sido eliminados de la distribución principal. Pueden encontrarse en el sitio Web de Proyectos de PostgreSQL en: http://gborg.postgresql.org.
PostgreSQL depende de: readline-4.3 |
Instala PostgreSQL ejecutando los siguientes comandos:
./configure --prefix=/usr && make && make install |
Inicializa un grupo de bases de datos con los siguientes comandos:
mkdir -p /var/pgsql/data && useradd -d /var/pgsql/data postgres && chown postgres /var/pgsql/data && su - postgres -c '/usr/bin/initdb -D /var/pgsql/data' |
Arranca el servidor de bases de datos con el siguiente comando:
su - postgres -c '/usr/bin/postmaster -D /var/pgsql/data > \ /var/pgsql/data/logfile 2>&1 &' |
Ahora podemos crear una base de datos y verificar la instalación:
su - postgres -c '/usr/bin/createdb test' echo "create table t1 ( name varchar(20), state_province varchar(20) );" \ | (su - postgres -c '/usr/bin/psql test ') echo "insert into t1 values ('Billy', 'NewYork');" \ | (su - postgres -c '/usr/bin/psql test ') echo "insert into t1 values ('Evanidus', 'Quebec');" \ | (su - postgres -c '/usr/bin/psql test ') echo "insert into t1 values ('Jesse', 'Ontario');" \ | (su - postgres -c '/usr/bin/psql test ') echo "select * from t1;" | (su - postgres -c '/usr/bin/psql test') |
useradd -d /var/pgsql/data postgres : Añade un usuario sin privilegios para lanzar el servidor de bases de datos. Ejecutar el servidor como root es peligroso, y por otro lado, simplemente no funcionará.
su - postgres -c '/usr/bin/initdb -D /var/pgsql/data' : Inicializa el espacio de tablas de las bases de datos. Este comando no debe ejecutarse como root.
su - postgres -c '/usr/bin/postmaster -D /var/pgsql/data > \ /var/pgsql/data/logfile 2>&1 &' : Inicia el servidor de bases de datos. Este comando debe ejecutarse también por el usuario postgres.
createdb test, create table t1 , insert into t1 values..., select * from t1 : Crea una base de datos, le añade una tabla, inserta varias filas en la tabla y las selecciona para comprobar que la instalación funciona correctamente.
$PGDATA/pg_ident.con, $PGDATA/pg_hba.conf, $PGDATA/postgresql.conf
La variable de entorno PGDATA se usa para distinguir un grupo de bases de datos de otro al establecer su valor al directorio que contiene el grupo deseado. Los tres ficheros de configuración se encuentran en cada directorio $PGDATA/. Los detalles sobre el formato de los ficheros y las opciones que pueden usarse se encuentran en:
file:///usr/share/doc/postgresql/html/tutorial.html
Guión postgres para init.d
Crea el guión de arranque de postgres con lo siguiente:
cat > /etc/rc.d/init.d/postgres << "EOF" #!/bin/bash # Inicio de $rc_base/init.d/postgres # Basado en el guión sysklogd de LFS-3.1 y anteriores. # Reescrito por Gerard Beekmans - gerard@linuxfromscratch.org source /etc/sysconfig/rc source $rc_functions case "$1" in start) echo "Iniciando el demonio PostgreSQL..." su - postgres -c '/usr/bin/pg_ctl start -W -D /var/pgsql/data \ -l /var/pgsql/data/logfile -o "-i" ' evaluate_retval ;; stop) echo "Parando el demonio PostgreSQL..." /usr/bin/pg_ctl stop -m smart -D /var/pgsql/data evaluate_retval ;; restart) $0 stop sleep 1 $0 start ;; status) /usr/bin/pg_ctl status -D /var/pgsql/data ;; *) echo "Uso: $0 {start|stop|restart|status}" exit 1 ;; esac # Fin de $rc_base/init.d/ EOF chmod 755 /etc/rc.d/init.d/postgres |
Crea los enlaces simbólicos a este fichero en los directorios pertinentes de rc.d con los siguientes comandos:
cd /etc/rc.d/init.d && ln -sf ../init.d/postgres ../rc0.d/K26postgres && ln -sf ../init.d/postgres ../rc1.d/K26postgres && ln -sf ../init.d/postgres ../rc2.d/K26postgres && ln -sf ../init.d/postgres ../rc3.d/S34postgres && ln -sf ../init.d/postgres ../rc4.d/S34postgres && ln -sf ../init.d/postgres ../rc5.d/S34postgres && ln -sf ../init.d/postgres ../rc6.d/K26postgres |
PostgreSQL contiene createdb, createlang, createuser, dropdb, droplang, dropuser, ecpg, initdb, initlocation, ipcclean, pg_config, pg_ctl, pg_dump, pg_dumpall, pg_passwd, pg_restore, pgaccess, pgtclsh, pgtksh, postgres, postmaster, psql y vacuumdb.
ipcclean elimina la memoria compartida y los semáforos dejados por un servidor de bases de datos abortado.
pg_dump vuelca los datos y metadatos de una base de datos en guiones que son usados para regenerar la base de datos.
pg_passwd es una utilidad de ficheros de contraseñas, para controlar el acceso a las bases de datos.