GNU/Linux >> Tutoriales Linux >  >> Linux

9 pasos para instalar y configurar PostgreSQL desde el origen en Linux


Similar a mySQL, postgreSQL es una base de datos muy famosa y repleta de funciones gratuita y de código abierto .

Anteriormente, hemos discutido varias instalaciones, incluida la instalación de la pila LAMP, la instalación de Apache2 desde la fuente, la instalación de PHP5 desde la fuente y la instalación de mySQL.

En este artículo, repasemos cómo instalar una base de datos PostgreSQL en Linux desde el código fuente.

Paso 1:Descarga el código fuente de PostgreSQL

Desde el sitio de descarga de PostgreSQL, elija el sitio espejo que se encuentra en su país.

# wget http://wwwmaster.postgresql.org/redir/198/f/source/v8.3.7/postgresql-8.3.7.tar.gz

Paso 2:Instalar PostgreSQL

# tar xvfz postgresql-8.3.7.tar.gz 

# cd postgresql-8.3.7

# ./configure
checking for sgmlspl... no
configure: creating ./config.status
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

# make
make[3]: Leaving directory `/usr/save/postgresql-8.3.7/contrib/spi'
rm -rf ./testtablespace
mkdir ./testtablespace
make[2]: Leaving directory `/usr/save/postgresql-8.3.7/src/test/regress'
make[1]: Leaving directory `/usr/save/postgresql-8.3.7/src'
make -C config all
make[1]: Entering directory `/usr/save/postgresql-8.3.7/config'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/usr/save/postgresql-8.3.7/config'
All of PostgreSQL successfully made. Ready to install. 

# make install
make -C test/regress install
make[2]: Entering directory `/usr/save/postgresql-8.3.7/src/test/regress'
/bin/sh ../../../config/install-sh -c  pg_regress '/usr/local/pgsql/lib/pgxs/src/test/regress/pg_regress'
make[2]: Leaving directory `/usr/save/postgresql-8.3.7/src/test/regress'
make[1]: Leaving directory `/usr/save/postgresql-8.3.7/src'
make -C config install
make[1]: Entering directory `/usr/save/postgresql-8.3.7/config'
mkdir -p -- /usr/local/pgsql/lib/pgxs/config
/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/save/postgresql-8.3.7/config'
PostgreSQL installation complete.

PostgreSQL ./configurar opciones

Las siguientes son varias opciones que se pueden pasar a ./configure:

  • –prefix=PREFIX instala archivos independientes de la arquitectura en PREFIX. La ubicación de instalación predeterminada es /usr/local/pgsql
  • –enable-integer-datetimes habilita el soporte de fecha/hora de enteros de 64 bits
  • –enable-nls[=LANGUAGES] habilita la compatibilidad con idiomas nativos
  • –disable-shared         no crear bibliotecas compartidas
  • –disable-rpath           no incrustar la ruta de búsqueda de la biblioteca compartida en los ejecutables
  • –disable-spinlocks    no use spinlocks
  • –enable-debug           compilación con símbolos de depuración (-g)
  • compilación –enable-profiling       con creación de perfiles habilitada
  • –enable-dtrace           Compilación con compatibilidad con DTrace
  • –enable-depend         activa el seguimiento automático de dependencias
  • –enable-cassert         habilitar comprobaciones de afirmación (para depuración)
  • –enable-thread-safety  hace que las bibliotecas cliente sean seguras para subprocesos
  • –enable-thread-safety-force  fuerza la seguridad de subprocesos a pesar de la falla de la prueba de subprocesos
  • –disable-largefile       omite la compatibilidad con archivos grandes
  • –with-docdir=DIR      instala la documentación en DIR [PREFIX/doc]
  • –sin-docdir         no instale la documentación
  • –with-includes=DIRS  busque archivos de encabezado adicionales en DIRS
  • –with-libraries=DIRS  busca bibliotecas adicionales en DIRS
  • –with-libs=DIRS         ortografía alternativa de –with-libraries
  • –with-pgport=PORTNUM   cambia el número de puerto predeterminado [5432]
  • –with-tcl                     construir módulos Tcl (PL/Tcl)
  • –with-tclconfig=DIR   tclConfig.sh está en DIR
  • –with-perl                   compilar módulos Perl (PL/Perl)
  • –with-python              compilar módulos de Python (PL/Python)
  • compilación –with-gssapi               compatible con GSSAPI
  • –with-krb5                  Compilación compatible con Kerberos 5
  • –with-krb-srvnam=NAME  nombre principal de servicio predeterminado en Kerberos [postgres]
  • –with-pam                  compilación compatible con PAM
  • –with-ldap                  compilación compatible con LDAP
  • compilación –with-bonjour            compatible con Bonjour
  • compilación –with-openssl            compatible con OpenSSL
  • –sin-readline      no use GNU Readline ni BSD Libedit para editar
  • –con-libedit-preferred  prefiere BSD Libedit sobre GNU Readline
  • –with-ossp-uuid        usa la biblioteca OSSP UUID al crear contrib/uuid-ossp
  • –with-libxml               compilación compatible con XML
  • –with-libxslt               usar la compatibilidad con XSLT al compilar contrib/xml2
  • –with-system-tzdata=DIR  usar datos de zona horaria del sistema en DIR
  • –sin-zlib              no use Zlib
  • –with-gnu-ld              asume que el compilador C usa GNU ld [predeterminado=no]

Problema de instalación de PostgreSQL 1:

Puede encontrar el siguiente mensaje de error al ejecutar ./configure durante la instalación de PostgreSQL.

# ./configure
checking for -lreadline... no
checking for -ledit... no
configure: error: readline library not found
If you have readline already installed, see config.log for details on the
failure.  It is possible the compiler isn't looking in the proper directory.
Use --without-readline to disable readline support.

Solución de instalación de PostgreSQL 1:

Instale readline-devel y libtermcap-devel para resolver el problema anterior.

# rpm -ivh libtermcap-devel-2.0.8-46.1.i386.rpm readline-devel-5.1-1.1.i386.rpm
warning: libtermcap-devel-2.0.8-46.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing...                ########################################### [100%]
   1:libtermcap-devel       ########################################### [ 50%]
   2:readline-devel         ########################################### [100%]

Paso 3:Verificar la estructura de directorios de PostgreSQL

Después de la instalación, asegúrese de que los directorios bin, doc, include, lib, man y share se creen en el directorio predeterminado /usr/local/pgsql como se muestra a continuación.

# ls -l /usr/local/pgsql/
total 24
drwxr-xr-x 2 root root 4096 Apr  8 23:25 bin
drwxr-xr-x 3 root root 4096 Apr  8 23:25 doc
drwxr-xr-x 6 root root 4096 Apr  8 23:25 include
drwxr-xr-x 3 root root 4096 Apr  8 23:25 lib
drwxr-xr-x 4 root root 4096 Apr  8 23:25 man
drwxr-xr-x 5 root root 4096 Apr  8 23:25 share

Paso 4:Cree una cuenta de usuario de PostgreSQL

# adduser postgres

# passwd postgres
Changing password for user postgres.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

Paso 5:crear un directorio de datos de PostgreSQL

Cree el directorio de datos de postgres y haga que el usuario de postgres sea el propietario.

# mkdir /usr/local/pgsql/data

# chown postgres:postgres /usr/local/pgsql/data

# ls -ld /usr/local/pgsql/data
drwxr-xr-x 2 postgres postgres 4096 Apr  8 23:26 /usr/local/pgsql/data

Paso 6:Inicialice el directorio de datos de PostgreSQL

Antes de que pueda comenzar a crear cualquier base de datos PostgreSQL, el directorio de datos vacío creado en el paso anterior debe inicializarse con el comando initdb como se muestra a continuación.

# su - postgres

# /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 en_US.UTF-8.
The default database encoding has accordingly been set to UTF8.
The default text search configuration will be set to "english".

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 ... 32MB/204800
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:

    /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

Paso 7:validar el directorio de datos de PostgreSQL

Asegúrese de que todos los archivos de configuración de la base de datos de postgres (por ejemplo, postgresql.conf) se creen en el directorio de datos como se muestra a continuación.

$ ls -l /usr/local/pgsql/data
total 64
drwx------ 5 postgres postgres  4096 Apr  8 23:29 base
drwx------ 2 postgres postgres  4096 Apr  8 23:29 global
drwx------ 2 postgres postgres  4096 Apr  8 23:29 pg_clog
-rw------- 1 postgres postgres  3429 Apr  8 23:29 pg_hba.conf
-rw------- 1 postgres postgres  1460 Apr  8 23:29 pg_ident.conf
drwx------ 4 postgres postgres  4096 Apr  8 23:29 pg_multixact
drwx------ 2 postgres postgres  4096 Apr  8 23:29 pg_subtrans
drwx------ 2 postgres postgres  4096 Apr  8 23:29 pg_tblspc
drwx------ 2 postgres postgres  4096 Apr  8 23:29 pg_twophase
-rw------- 1 postgres postgres     4 Apr  8 23:29 PG_VERSION
drwx------ 3 postgres postgres  4096 Apr  8 23:29 pg_xlog
-rw------- 1 postgres postgres 16592 Apr  8 23:29 postgresql.conf

Paso 8:Inicie la base de datos PostgreSQL

Use el comando postgres postmaster para iniciar el servidor postgreSQL en segundo plano, como se muestra a continuación.

$ /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 &
[1] 2222

$ cat logfile
LOG:  database system was shut down at 2009-04-08 23:29:50 PDT
LOG:  autovacuum launcher started
LOG:  database system is ready to accept connections

Paso 9:Crear base de datos postgreSQL y probar la instalación

Cree una base de datos de prueba y conéctese a ella para asegurarse de que la instalación se haya realizado correctamente, como se muestra a continuación. Una vez que comience a usar la base de datos, realice copias de seguridad con frecuencia como se menciona en el artículo Cómo realizar copias de seguridad y restaurar PostgreSQL.

$ /usr/local/pgsql/bin/createdb test

$ /usr/local/pgsql/bin/psql test
Welcome to psql 8.3.7, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

test=#

Linux
  1. Instale Apache 2 desde la fuente en Linux

  2. Cómo instalar y configurar EMC PowerPath en Linux

  3. 12 pasos para instalar y configurar Alfresco en UNIX/Linux

  4. Cómo instalar y configurar Nginx desde el origen en Linux

  5. Cómo instalar TBB desde la fuente en Linux y hacer que funcione

Cómo instalar y configurar Odoo en Ubuntu Linux

4 sencillos pasos para instalar y configurar VMware Server 2 en Linux

Cómo instalar y configurar el servidor DNS en Linux

Cómo instalar y configurar ZSH en distribuciones de Linux

Cómo instalar y configurar AnyDesk en el sistema Linux

Cómo instalar y configurar Django en un sistema Linux