pg>编译安装-自定义安装目录
2022-01-24 15:52:49    94    0    0
ivan
本次自定义安装在/home/pg12/pgsql下
*linux最好dash该bash,可见http://ivan.gold/blog/post/ivan/Debian%E7%B3%BBdash%E6%94%B9bash
1、pg源码下载
   https://www.postgresql.org/ftp/source/
   下载postgresql-12.7.tar.gz
   [root@centos home]# wget -c https://ftp.postgresql.org/pub/source/v12.7/postgresql-12.7.tar.gz
2、解压
   [root@centos home]# tar -zxvf postgresql-12.7.tar.gz
   [root@centos home]# cd postgresql-12.7
3、指定安装目录
   [root@centos postgresql-12.7]# ./configure --prefix=/home/pg12/pgsql
   [root@centos postgresql-12.7]# make
   [root@centos postgresql-12.7]# make install
   #在执行configure或make过程中,可能会有依赖错误,需要自己改正
   [root@centos postgresql-12.7]# cd /home/pg12/pgsql
   [root@centos pgsql]# ll
    rwxr-xr-x 2 postgres12 postgres12 4096 10月 27 10:04   bin
    drwxr-xr-x 6 postgres12 postgres12 4096 10月 27 10:04 include
    drwxr-xr-x 4 postgres12 postgres12 4096 10月 27 11:27 lib
    drwxr-xr-x 7 postgres12 postgres12 4096 10月 27 11:27 share
   #以上是主程序安装完毕,由于PostgreSQL是插件可扩展的,主程序安装完后,其实有好多实用功能是没有的,源码中自带了,但是没有安装,需要自己手动安装
   #进入解压的源码包中:
   [root@centos pgsql]# cd /home/postgresql-12.7/contrib
   [root@centos contrib]# ll
   	drwxrwxrwx * * * * * adminpack
	drwxrwxrwx * * * * * amcheck
	drwxrwxrwx * * * * * auth_delay
	drwxrwxrwx * * * * * auto_explain
	drwxrwxrwx * * * * * bloom
	drwxrwxrwx * * * * * bool_plperl
	drwxrwxrwx * * * * * btree_gin
	drwxrwxrwx * * * * * btree_gist
	drwxrwxrwx * * * * * citext
	-rw-r--r-- * * * * * contrib-global.mk
	drwxrwxrwx * * * * * cube
	drwxrwxrwx * * * * * dblink
	drwxrwxrwx * * * * * dict_int
	drwxrwxrwx * * * * * dict_xsyn
	drwxrwxrwx * * * * * earthdistance
	drwxrwxrwx * * * * * file_fdw
	drwxrwxrwx * * * * * fuzzystrmatch
	drwxrwxrwx * * * * * hstore
	drwxrwxrwx * * * * * hstore_plperl
	drwxrwxrwx * * * * * hstore_plpython
	drwxrwxrwx * * * * * intagg
	drwxrwxrwx * * * * * intarray
	drwxrwxrwx * * * * * isn
	drwxrwxrwx * * * * * jsonb_plperl
	drwxrwxrwx * * * * * jsonb_plpython
	drwxrwxrwx * * * * * lo
	drwxrwxrwx * * * * * ltree
	drwxrwxrwx * * * * * ltree_plpython
	-rw-r--r-- * * * * * Makefile
	drwxrwxrwx * * * * * oid2name
	drwxrwxrwx * * * * * old_snapshot
	drwxrwxrwx * * * * * pageinspect
	drwxrwxrwx * * * * * passwordcheck
	drwxrwxrwx * * * * * pg_buffercache
	drwxrwxrwx * * * * * pgcrypto
	drwxrwxrwx * * * * * pg_freespacemap
	drwxrwxrwx * * * * * pg_prewarm
	drwxrwxrwx * * * * * pgrowlocks
	drwxrwxrwx * * * * * pg_stat_statements
	drwxrwxrwx * * * * * pgstattuple
	drwxrwxrwx * * * * * pg_surgery
	drwxrwxrwx * * * * * pg_trgm
	drwxrwxrwx * * * * * pg_visibility
	drwxrwxrwx * * * * * postgres_fdw
	-rw-r--r-- * * * * * README
	drwxrwxrwx * * * * * seg
	drwxrwxrwx * * * * * sepgsql
	drwxrwxrwx * * * * * spi
	drwxrwxrwx * * * * * sslinfo
	drwxrwxrwx * * * * * start-scripts
	drwxrwxrwx * * * * * tablefunc
	drwxrwxrwx * * * * * tcn
	drwxrwxrwx * * * * * test_decoding
	drwxrwxrwx * * * * * tsm_system_rows
	drwxrwxrwx * * * * * tsm_system_time
	drwxrwxrwx * * * * * unaccent
	drwxrwxrwx * * * * * uuid-ossp
	drwxrwxrwx * * * * * vacuumlo
	drwxrwxrwx * * * * * xml2
    #以上是源码自带的,但没有安装的一些实用功能
    [root@centos contrib]# make && make install
    [root@centos contrib]# cd /home/pg12/pgsql/share/extension
    [root@centos extension]# ll
	-rw-r--r-- 1 * * * * * adminpack--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * adminpack--1.0.sql
	-rw-r--r-- 1 * * * * * adminpack--1.1--2.0.sql
	-rw-r--r-- 1 * * * * * adminpack--2.0--2.1.sql
	-rw-r--r-- 1 * * * * * adminpack.control
	-rw-r--r-- 1 * * * * * amcheck--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * amcheck--1.0.sql
	-rw-r--r-- 1 * * * * * amcheck--1.1--1.2.sql
	-rw-r--r-- 1 * * * * * amcheck--1.2--1.3.sql
	-rw-r--r-- 1 * * * * * amcheck.control
	-rw-r--r-- 1 * * * * * autoinc--1.0.sql
	-rw-r--r-- 1 * * * * * autoinc.control
	-rw-r--r-- 1 * * * * * bloom--1.0.sql
	-rw-r--r-- 1 * * * * * bloom.control
	-rw-r--r-- 1 * * * * * btree_gin--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * btree_gin--1.0.sql
	-rw-r--r-- 1 * * * * * btree_gin--1.1--1.2.sql
	-rw-r--r-- 1 * * * * * btree_gin--1.2--1.3.sql
	-rw-r--r-- 1 * * * * * btree_gin.control
	-rw-r--r-- 1 * * * * * btree_gist--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * btree_gist--1.1--1.2.sql
	-rw-r--r-- 1 * * * * * btree_gist--1.2--1.3.sql
	-rw-r--r-- 1 * * * * * btree_gist--1.2.sql
	-rw-r--r-- 1 * * * * * btree_gist--1.3--1.4.sql
	-rw-r--r-- 1 * * * * * btree_gist--1.4--1.5.sql
	-rw-r--r-- 1 * * * * * btree_gist--1.5--1.6.sql
	-rw-r--r-- 1 * * * * * btree_gist.control
	-rw-r--r-- 1 * * * * * citext--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * citext--1.1--1.2.sql
	-rw-r--r-- 1 * * * * * citext--1.2--1.3.sql
	-rw-r--r-- 1 * * * * * citext--1.3--1.4.sql
	-rw-r--r-- 1 * * * * * citext--1.4--1.5.sql
	-rw-r--r-- 1 * * * * * citext--1.4.sql
	-rw-r--r-- 1 * * * * * citext--1.5--1.6.sql
	-rw-r--r-- 1 * * * * * citext.control
	-rw-r--r-- 1 * * * * * cube--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * cube--1.1--1.2.sql
	-rw-r--r-- 1 * * * * * cube--1.2--1.3.sql
	-rw-r--r-- 1 * * * * * cube--1.2.sql
	-rw-r--r-- 1 * * * * * cube--1.3--1.4.sql
	-rw-r--r-- 1 * * * * * cube--1.4--1.5.sql
	-rw-r--r-- 1 * * * * * cube.control
	-rw-r--r-- 1 * * * * * dblink--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * dblink--1.1--1.2.sql
	-rw-r--r-- 1 * * * * * dblink--1.2.sql
	-rw-r--r-- 1 * * * * * dblink.control
	-rw-r--r-- 1 * * * * * dict_int--1.0.sql
	-rw-r--r-- 1 * * * * * dict_int.control
	-rw-r--r-- 1 * * * * * dict_xsyn--1.0.sql
	-rw-r--r-- 1 * * * * * dict_xsyn.control
	-rw-r--r-- 1 * * * * * earthdistance--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * earthdistance--1.1.sql
	-rw-r--r-- 1 * * * * * earthdistance.control
	-rw-r--r-- 1 * * * * * file_fdw--1.0.sql
	-rw-r--r-- 1 * * * * * file_fdw.control
	-rw-r--r-- 1 * * * * * fuzzystrmatch--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * fuzzystrmatch--1.1.sql
	-rw-r--r-- 1 * * * * * fuzzystrmatch.control
	-rw-r--r-- 1 * * * * * hstore--1.1--1.2.sql
	-rw-r--r-- 1 * * * * * hstore--1.2--1.3.sql
	-rw-r--r-- 1 * * * * * hstore--1.3--1.4.sql
	-rw-r--r-- 1 * * * * * hstore--1.4--1.5.sql
	-rw-r--r-- 1 * * * * * hstore--1.4.sql
	-rw-r--r-- 1 * * * * * hstore--1.5--1.6.sql
	-rw-r--r-- 1 * * * * * hstore--1.6--1.7.sql
	-rw-r--r-- 1 * * * * * hstore--1.7--1.8.sql
	-rw-r--r-- 1 * * * * * hstore.control
	-rw-r--r-- 1 * * * * * insert_username--1.0.sql
	-rw-r--r-- 1 * * * * * insert_username.control
	-rw-r--r-- 1 * * * * * intagg--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * intagg--1.1.sql
	-rw-r--r-- 1 * * * * * intagg.control
	-rw-r--r-- 1 * * * * * intarray--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * intarray--1.1--1.2.sql
	-rw-r--r-- 1 * * * * * intarray--1.2--1.3.sql
	-rw-r--r-- 1 * * * * * intarray--1.2.sql
	-rw-r--r-- 1 * * * * * intarray--1.3--1.4.sql
	-rw-r--r-- 1 * * * * * intarray--1.4--1.5.sql
	-rw-r--r-- 1 * * * * * intarray.control
	-rw-r--r-- 1 * * * * * isn--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * isn--1.1--1.2.sql
	-rw-r--r-- 1 * * * * * isn--1.1.sql
	-rw-r--r-- 1 * * * * * isn.control
	-rw-r--r-- 1 * * * * * lo--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * lo--1.1.sql
	-rw-r--r-- 1 * * * * * lo.control
	-rw-r--r-- 1 * * * * * ltree--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * ltree--1.1--1.2.sql
	-rw-r--r-- 1 * * * * * ltree--1.1.sql
	-rw-r--r-- 1 * * * * * ltree.control
	-rw-r--r-- 1 * * * * * moddatetime--1.0.sql
	-rw-r--r-- 1 * * * * * moddatetime.control
	-rw-r--r-- 1 * * * * * old_snapshot--1.0.sql
	-rw-r--r-- 1 * * * * * old_snapshot.control
	-rw-r--r-- 1 * * * * * pageinspect--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * pageinspect--1.1--1.2.sql
	-rw-r--r-- 1 * * * * * pageinspect--1.2--1.3.sql
	-rw-r--r-- 1 * * * * * pageinspect--1.3--1.4.sql
	-rw-r--r-- 1 * * * * * pageinspect--1.4--1.5.sql
	-rw-r--r-- 1 * * * * * pageinspect--1.5--1.6.sql
	-rw-r--r-- 1 * * * * * pageinspect--1.5.sql
	-rw-r--r-- 1 * * * * * pageinspect--1.6--1.7.sql
	-rw-r--r-- 1 * * * * * pageinspect--1.7--1.8.sql
	-rw-r--r-- 1 * * * * * pageinspect--1.8--1.9.sql
	-rw-r--r-- 1 * * * * * pageinspect.control
	-rw-r--r-- 1 * * * * * pg_buffercache--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * pg_buffercache--1.1--1.2.sql
	-rw-r--r-- 1 * * * * * pg_buffercache--1.2--1.3.sql
	-rw-r--r-- 1 * * * * * pg_buffercache--1.2.sql
	-rw-r--r-- 1 * * * * * pg_buffercache.control
	-rw-r--r-- 1 * * * * * pgcrypto--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * pgcrypto--1.1--1.2.sql
	-rw-r--r-- 1 * * * * * pgcrypto--1.2--1.3.sql
	-rw-r--r-- 1 * * * * * pgcrypto--1.3.sql
	-rw-r--r-- 1 * * * * * pgcrypto.control
	-rw-r--r-- 1 * * * * * pg_freespacemap--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * pg_freespacemap--1.1--1.2.sql
	-rw-r--r-- 1 * * * * * pg_freespacemap--1.1.sql
	-rw-r--r-- 1 * * * * * pg_freespacemap.control
	-rw-r--r-- 1 * * * * * pg_prewarm--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * pg_prewarm--1.1--1.2.sql
	-rw-r--r-- 1 * * * * * pg_prewarm--1.1.sql
	-rw-r--r-- 1 * * * * * pg_prewarm.control
	-rw-r--r-- 1 * * * * * pgrowlocks--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * pgrowlocks--1.1--1.2.sql
	-rw-r--r-- 1 * * * * * pgrowlocks--1.2.sql
	-rw-r--r-- 1 * * * * * pgrowlocks.control
	-rw-r--r-- 1 * * * * * pg_stat_statements--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * pg_stat_statements--1.1--1.2.sql
	-rw-r--r-- 1 * * * * * pg_stat_statements--1.2--1.3.sql
	-rw-r--r-- 1 * * * * * pg_stat_statements--1.3--1.4.sql
	-rw-r--r-- 1 * * * * * pg_stat_statements--1.4--1.5.sql
	-rw-r--r-- 1 * * * * * pg_stat_statements--1.4.sql
	-rw-r--r-- 1 * * * * * pg_stat_statements--1.5--1.6.sql
	-rw-r--r-- 1 * * * * * pg_stat_statements--1.6--1.7.sql
	-rw-r--r-- 1 * * * * * pg_stat_statements--1.7--1.8.sql
	-rw-r--r-- 1 * * * * * pg_stat_statements--1.8--1.9.sql
	-rw-r--r-- 1 * * * * * pg_stat_statements.control
	-rw-r--r-- 1 * * * * * pgstattuple--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * pgstattuple--1.1--1.2.sql
	-rw-r--r-- 1 * * * * * pgstattuple--1.2--1.3.sql
	-rw-r--r-- 1 * * * * * pgstattuple--1.3--1.4.sql
	-rw-r--r-- 1 * * * * * pgstattuple--1.4--1.5.sql
	-rw-r--r-- 1 * * * * * pgstattuple--1.4.sql
	-rw-r--r-- 1 * * * * * pgstattuple.control
	-rw-r--r-- 1 * * * * * pg_surgery--1.0.sql
	-rw-r--r-- 1 * * * * * pg_surgery.control
	-rw-r--r-- 1 * * * * * pg_trgm--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * pg_trgm--1.1--1.2.sql
	-rw-r--r-- 1 * * * * * pg_trgm--1.2--1.3.sql
	-rw-r--r-- 1 * * * * * pg_trgm--1.3--1.4.sql
	-rw-r--r-- 1 * * * * * pg_trgm--1.3.sql
	-rw-r--r-- 1 * * * * * pg_trgm--1.4--1.5.sql
	-rw-r--r-- 1 * * * * * pg_trgm--1.5--1.6.sql
	-rw-r--r-- 1 * * * * * pg_trgm.control
	-rw-r--r-- 1 * * * * * pg_visibility--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * pg_visibility--1.1--1.2.sql
	-rw-r--r-- 1 * * * * * pg_visibility--1.1.sql
	-rw-r--r-- 1 * * * * * pg_visibility.control
	-rw-r--r-- 1 * * * * * plpgsql--1.0.sql
	-rw-r--r-- 1 * * * * * plpgsql.control
	-rw-r--r-- 1 * * * * * postgres_fdw--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * postgres_fdw--1.0.sql
	-rw-r--r-- 1 * * * * * postgres_fdw.control
	-rw-r--r-- 1 * * * * * refint--1.0.sql
	-rw-r--r-- 1 * * * * * refint.control
	-rw-r--r-- 1 * * * * * seg--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * seg--1.1--1.2.sql
	-rw-r--r-- 1 * * * * * seg--1.1.sql
	-rw-r--r-- 1 * * * * * seg--1.2--1.3.sql
	-rw-r--r-- 1 * * * * * seg--1.3--1.4.sql
	-rw-r--r-- 1 * * * * * seg.control
	-rw-r--r-- 1 * * * * * tablefunc--1.0.sql
	-rw-r--r-- 1 * * * * * tablefunc.control
	-rw-r--r-- 1 * * * * * tcn--1.0.sql
	-rw-r--r-- 1 * * * * * tcn.control
	-rw-r--r-- 1 * * * * * tsm_system_rows--1.0.sql
	-rw-r--r-- 1 * * * * * tsm_system_rows.control
	-rw-r--r-- 1 * * * * * tsm_system_time--1.0.sql
	-rw-r--r-- 1 * * * * * tsm_system_time.control
	-rw-r--r-- 1 * * * * * unaccent--1.0--1.1.sql
	-rw-r--r-- 1 * * * * * unaccent--1.1.sql
	-rw-r--r-- 1 * * * * * unaccent.control
    #以上是安装完源码下contrib包里的插件后生成的文件;如果不安装contrib包里的插件,则只会有
    -rw-r--r-- 1 * * * * * plpgsql--1.0.sql
	-rw-r--r-- 1 * * * * * plpgsql.control
	这一项。
	#下面准备初始化数据库
4、建linux用户
    groupadd postgres12
    useradd -g postgres12 postgres12 -m
    mkdir /home/pg12/pgsql/data
    chown -R postgres12:postgres12  /home/pg12/pgsql/data
5、切用户完成初始化
    su - postgres12
    #配置环境变量
    [postgres12@centos]$ vi ~/.bash_profile
    export PGHOME=/home/pg12/pgsql
    export PGDATA=/home/pg12/pgsql/data
    export PATH=/home/pg12/pgsql/bin:$PATH    
    [postgres12@centos]$ source ~/.bash_profile
    [postgres12@centos]$ initdb
    #初始化完成以后,启动数据库
    [postgres12@centos]$ pg_ctl start
    [postgres12@centos]$ psql postgres postgres12
    postgres=# \dx  --显示当前已经安装到当前database的可用的拓展(或者使用sql:select * from pg_catalog.pg_extension;)
    postgres=# select * from pg_available_extensions; --显示当前可用的,但是没有安装到当前database的拓展
  name       |default_version|installed_version|       comment
  -------------------+-----+-----+---------------------------------
  fuzzystrmatch      | 1.1 |     | determine similarities and distance between strings
  tcn                | 1.0 |     | Triggered change notifications
  citext             | 1.6 |     | data type for case-insensitive character strings
  refint             | 1.0 |     | functions for implementing referential integrity (obsolete)
  ltree              | 1.2 |     | data type for hierarchical tree-like structures
  pg_freespacemap    | 1.2 |     | examine the free space map (FSM)
  intarray           | 1.5 |     | functions, operators, and index support for 1-D arrays of integers
  isn                | 1.2 |     | data types for international product numbering standards
  cube               | 1.5 |     | data type for multidimensional cubes
  pg_prewarm         | 1.2 |     | prewarm relation data
  dict_xsyn          | 1.0 |     | text search dictionary template for extended synonym processing
  postgres_fdw       | 1.1 |     | foreign-data wrapper for remote PostgreSQL servers
  pgcrypto           | 1.3 |     | cryptographic functions
  btree_gist         | 1.6 |     | support for indexing common datatypes in GiST
  tablefunc          | 1.0 |     | functions that manipulate whole tables, including crosstab
  lo                 | 1.1 |     | Large Object maintenance
  plpgsql            | 1.0 | 1.0 | PL/pgSQL procedural language
  amcheck            | 1.3 |     | functions for verifying relation integrity
  pageinspect        | 1.9 |     | inspect the contents of database pages at a low level
  tsm_system_time    | 1.0 |     | TABLESAMPLE method which accepts time in milliseconds as a limit
  seg                | 1.4 |     | data type for representing line segments or floating-point intervals
  old_snapshot       | 1.0 |     | utilities in support of old_snapshot_threshold
  pg_buffercache     | 1.3 |     | examine the shared buffer cache
  pgstattuple        | 1.5 |     | show tuple-level statistics
  unaccent           | 1.1 |     | text search dictionary that removes accents
  pg_visibility      | 1.2 |     | examine the visibility map (VM) and page-level visibility info
  pg_surgery         | 1.0 |     | extension to perform surgery on a damaged relation
  adminpack          | 2.1 |     | administrative functions for PostgreSQL
  autoinc            | 1.0 |     | functions for autoincrementing fields
  intagg             | 1.1 |     | integer aggregator and enumerator (obsolete)
  hstore             | 1.8 |     | data type for storing sets of (key, value) pairs
  dict_int           | 1.0 |     | text search dictionary template for integers
  earthdistance      | 1.1 |     | calculate great-circle distances on the surface of the Earth
  tsm_system_rows    | 1.0 |     | TABLESAMPLE method which accepts number of rows as a limit
  btree_gin          | 1.3 |     | support for indexing common datatypes in GIN
  pg_stat_statements | 1.9 | 1.9 | track planning and execution statistics of all SQL statements executed
  file_fdw           | 1.0 |     | foreign-data wrapper for flat file access
  pg_trgm            | 1.6 |     | text similarity measurement and index searching based on trigrams
  pgrowlocks         | 1.2 |     | show row-level locking information
  insert_username    | 1.0 |     | functions for tracking who changed a table
  bloom              | 1.0 |     | bloom access method - signature file based index
  moddatetime        | 1.0 |     | functions for tracking last modification time
  dblink             | 1.2 |     | connect to other PostgreSQL databases from within a database
    #installed_version列有值的,说明是已经安装到当前database的可用的拓展
    #如需使用以上拓展,例如执行:
    postgres=# create extension tablefunc;
    #也请注意,执行create extension一般没有问题,但是有时候由于操作系统可能缺少依赖,在执行时可能会出现缺少so库的情况,需要自己处理。
   以上是安装步骤,如需远程访问还需修改监听配置才能使用。
 ​

 

Pre: pg>extensions>system_stats

Next: pg>元命令

94
Sign in to leave a comment.
No Leanote account? Sign up now.
0 comments
Table of content