GNU/Linux >> Linux Esercitazione >  >> Linux

9 passaggi per installare e configurare PostgreSQL dal sorgente su Linux


Simile a mySQL, postgreSQL è molto famoso e ricco di funzionalità database gratuito e open source .

In precedenza abbiamo discusso di diverse installazioni tra cui l'installazione dello stack LAMP, l'installazione di Apache2 dal sorgente, l'installazione di PHP5 dal sorgente e l'installazione di MySQL.

In questo articolo, esaminiamo come installare il database postgreSQL su Linux dal codice sorgente.

Fase 1:scarica il codice sorgente postgreSQL

Dal sito di download di PostgreSQL, scegli il sito mirror che si trova nel tuo paese.

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

Fase 2:installa 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 ./configure opzioni

Di seguito sono elencate varie opzioni che possono essere passate a ./configure:

  • –prefix=PREFIX installa file indipendenti dall'architettura in PREFIX. Il percorso di installazione predefinito è /usr/local/pgsql
  • –enable-integer-datetimes abilita supporto data/ora intero a 64 bit
  • –enable-nls[=LANGUAGES] abilita il supporto per la lingua nativa
  • –disable-shared         non crea librerie condivise
  • –disable-rpath           non incorpora il percorso di ricerca della libreria condivisa negli eseguibili
  • –disable-spinlocks    non utilizza spinlock
  • –enable-debug           build con simboli di debug (-g)
  • –enable-profiling       build con il profiling abilitato
  • –enable-dtrace           build con supporto DTrace
  • –enable-depend         attiva il monitoraggio automatico delle dipendenze
  • –enable-cassert         abilita i controlli di asserzione (per il debug)
  • –enable-thread-safety rende le librerie client thread-safe
  • –enable-thread-safety-force forza la sicurezza del thread nonostante il fallimento del test del thread
  • –disable-largefile       omette il supporto per file di grandi dimensioni
  • –with-docdir=DIR      installa la documentazione in DIR [PREFIX/doc]
  • –without-docdir         non installare la documentazione
  • –with-includes=DIRS cerca file di intestazione aggiuntivi in ​​DIRS
  • –with-libraries=DIRS cerca librerie aggiuntive in DIRS
  • –with-libs=DIRS         ortografia alternativa di –with-libraries
  • –with-pgport=PORTNUM   cambia il numero di porta predefinito [5432]
  • –con-tcl                     costruisci moduli Tcl (PL/Tcl)
  • –with-tclconfig=DIR   tclConfig.sh è in DIR
  • –con-perl                  costruisci moduli Perl (PL/Perl)
  • –con-python              crea moduli Python (PL/Python)
  • –with-gssapi               build con supporto GSSAPI
  • –with-krb5                 build con il supporto di Kerberos 5
  • –with-krb-srvnam=NAME  nome dell'entità servizio predefinito in Kerberos [postgres]
  • –con-pam                  build con supporto PAM
  • –with-ldap                 build con supporto LDAP
  • –with-bonjour            build con il supporto Bonjour
  • –with-openssl            build con supporto OpenSSL
  • –senza-readline      non utilizzare GNU Readline né BSD Libedit per la modifica
  • –with-libedit-preferred preferisce BSD Libedit su GNU Readline
  • –with-ossp-uuid        usa la libreria OSSP UUID durante la creazione di contrib/uuid-ossp
  • –with-libxml               build con supporto XML
  • –with-libxslt               utilizza il supporto XSLT durante la creazione di contrib/xml2
  • –with-system-tzdata=DIR  utilizza i dati del fuso orario di sistema in DIR
  • –senza-zlib              non utilizzare Zlib
  • –with-gnu-ld              presuppone che il compilatore C utilizzi GNU ld [default=no]

Problema di installazione di PostgreSQL1:

È possibile che venga visualizzato il seguente messaggio di errore durante l'esecuzione di ./configure durante l'installazione di 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.

Soluzione di installazione PostgreSQL1:

Installa readline-devel e libtermcap-devel per risolvere il problema precedente.

# 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%]

Fase 3:verifica la struttura della directory postgreSQL

Dopo l'installazione, assicurati che le directory bin, doc, include, lib, man e share siano create nella directory predefinita /usr/local/pgsql come mostrato di seguito.

# 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

Fase 4:crea un account utente postgreSQL

# adduser postgres

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

Fase 5:crea una directory di dati postgreSQL

Crea la directory dei dati di postgres e imposta postgres come proprietario.

# 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

Fase 6:inizializza la directory dei dati postgreSQL

Prima di poter iniziare a creare qualsiasi database postgreSQL, è necessario inizializzare la directory dei dati vuota creata nel passaggio precedente utilizzando il comando initdb come mostrato di seguito.

# 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

Fase 7:convalida la directory dei dati postgreSQL

Assicurati che tutti i file di configurazione del DB postgres (ad esempio, postgresql.conf) siano creati nella directory dei dati come mostrato di seguito.

$ 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

Fase 8:avvia il database postgreSQL

Usa il comando postgres postmaster per avviare il server postgreSQL in background come mostrato di seguito.

$ /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

Fase 9:crea un DB postgreSQL e verifica l'installazione

Crea un database di prova e connettiti ad esso per assicurarti che l'installazione sia andata a buon fine come mostrato di seguito. Una volta che inizi a utilizzare il database, esegui backup frequentemente come indicato nell'articolo come eseguire il backup e il ripristino di 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. Installa Apache 2 da Source su Linux

  2. Come installare e configurare EMC PowerPath su Linux

  3. 12 passaggi per installare e configurare Alfresco su UNIX / Linux

  4. Come installare e configurare Nginx dal sorgente su Linux

  5. Come compilare e installare software dal codice sorgente su Linux

Come installare e configurare Odoo su Ubuntu Linux

4 semplici passaggi per installare e configurare VMware Server 2 su Linux

Come installare e configurare il server DNS in Linux

Come installare e configurare ZSH su distribuzioni Linux

Come installare e configurare AnyDesk su sistema Linux

Come installare e configurare Django su sistema Linux