离线用到的包,百度链接:
https://pan.baidu.com/s/14baq72bveIWMbN89tvEgXQ 提取码:573f

我是把防火墙关了的,方便连接数据库

关闭防火墙:systemctk stop firewalld

一、离线安装postgresql使用gz包

  1. postgresql文件夹里面的上传到/usr/local下面,root用户
    进入/usr/local文件夹里面:cd /usr/local 先安装gcc,g++编译工具,不然安装报以下错误
    【configure: error: no acceptable C compiler found in $PATH】
    解压gccpackages.tar.gz到opt文件夹:tar -zxvf gccpackages.tar.gz -C /opt/ 进入opt文件夹:cd /opt/gccpackages 执行安装命令:rpm -Uvh *.rpm --nodeps --force 进入/usr/local文件夹里面:cd /usr/local 先把rpm文件安装(如果不安装会报下图错误):
  2. meson linux 离线安装 linux 离线安装命令_linux


执行命令:rpm -ivh ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm 执行命令:rpm -ivh readline-6.2-11.el7.x86_64.rpm

执行命令:rpm -ivh readline-devel-6.2-11.el7.x86_64.rpm --force --nodeps

执行命令:rpm -ivh zlib-devel-1.2.7-18.el7.x86_64.rpm

执行命令:rpm -ivh xz-devel-5.2.2-1.el7.x86_64.rpm

执行命令:rpm -ivh libxml2-2.9.1-6.el7.5.x86_64.rpm

执行命令:rpm -ivh libxml2-devel-2.9.1-6.el7.5.x86_64.rpm --nodeps

解压数据库:tar -zxvf postgresql-9.5.7.tar.gz

到解压后文件夹:cd postgresql-9.5.7

执行命令:./configure --prefix=/usr/local/postgresql --with-libxml

编译:gmake

meson linux 离线安装 linux 离线安装命令_meson linux 离线安装_02


安装:gmake install

meson linux 离线安装 linux 离线安装命令_postgresql_03


创建用户:useradd postgres

进入到postgres目录:cd /usr/local/postgresql

创建data文件夹:mkdir data

赋予权限:chown -R postgres:postgres data

2. 设置环境变量

执行命令:vi /etc/profile

在末尾添加:

export PGDATA=/usr/local/postgresql/data 
export PGHOME=/usr/local/postgresql 
export PATH=$PGHOME/bin:$PATH

刷新配置:source /etc/profile 3. 初始化数据库

切换用户:su postgres

数据库初始化操作:initdb

meson linux 离线安装 linux 离线安装命令_xml_04


返回到根目录:cd

启动数据库:pg_ctl -D /usr/local/postgresql/data -l logfile start

执行命令:psql

修改密码:alter user postgres with password '密码';

执行命令:\q

4. 数据库配置,如果postgres用户修改不了就切换到root用户

进入到data文件夹:cd /usr/local/postgresql/data/

执行命令:vi postgresql.conf

修改listen_addresses="*"

执行命令:vi pg_hba.conf

# IPv4 local connections:
每个机器都能远程连接
host    all             all             0.0.0.0/0            md5

重启数据库:pg_ctl -D /usr/local/postgresql/data -l logfile restart 测试连接:

meson linux 离线安装 linux 离线安装命令_postgis_05


测试:

CREATE TABLE xmltab01(books xml);
INSERT INTO xmltab01(books) VALUES ('<title>Book0001</title>');

二、离线安装postgis

参考链接 我是参考上面的链接安装,并自己做了调整

5. 进入到gisfile文件夹:cd /var/gisfile

里面是安装postgresl时候上传进来的文件

meson linux 离线安装 linux 离线安装命令_meson linux 离线安装_06


2. 先安装bzip,不然会报以下错误

meson linux 离线安装 linux 离线安装命令_meson linux 离线安装_07


进入/var/gisfile文件夹:cd /var/gisfile

安装命令:rpm -ivh bzip2-1.0.6-13.el7.x86_64.rpm3.(上面已经装过可以省略)安装gcc,g++编译工具,不然安装报以下错误

configure: error: no acceptable C compiler found in $PATH

进入/var/gisfile文件夹:cd /var/gisfile 解压gccpackages.tar.gz到opt文件夹:tar -zxvf gccpackages.tar.gz -C /opt/

进入opt文件夹:cd /opt/gccpackages

执行安装命令:rpm -Uvh *.rpm --nodeps --force

4. 安装gdal拓展

进入/var/gisfile文件夹:cd /var/gisfile

解压文件:tar -zxvf gdal-2.0.0.tar.gz -C /opt

进入到解压后目录:cd /opt/gdal-2.0.0

将gdal安装到/usr/local/gdal-2.0.0目录下

注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/gdal-2.0.0

编译:make

安装:make install

5. 安装geos扩展

进入/var/gisfile文件夹:cd /var/gisfile

解压文件:tar -jxf geos-3.6.3.tar.bz2 -C /opt

进入到解压后目录:cd /opt/geos-3.6.3/

将geos安装到/usr/local/geos-3.6.3目录下

注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/geos-3.6.3

编译:make

安装:make install

6. 安装libxml2扩展

进入/var/gisfile文件夹:cd /var/gisfile

解压文件:tar -zxvf libxml2-2.9.1.tar.gz -C /opt 进入到解压后目录:cd /opt/libxml2-2.9.1/

将libxml2安装到/usr/local/libxml2-2.7.2目录下

注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/libxml2-2.9.1 --with-python=no

编译:make

安装:make install

7. 安装proj拓展

进入/var/gisfile文件夹:cd /var/gisfile

解压文件:tar -zxvf proj-5.2.0.tar.gz -C /opt

进入到解压后目录:cd /opt/proj-5.2.0

将proj安装到/usr/local/proj-5.2.0目录下

注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/proj-5.2.0

编译:make

安装:make install

8. 安装json-c拓展

进入/var/gisfile文件夹:cd /var/gisfile

解压文件:tar xzf json-c-json-c-0.13.1-20180305.tar.gz -C /opt

进入到解压后目录:cd /opt/json-c-json-c-0.13.1-20180305

将json-0.12安装到/usr/local/json-0.12目录下

注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/json-0.12

编译:make

安装:make install

9. 安装json-c拓展

需要安装perl依赖

进入/var/gisfile文件夹:cd /var/gisfile

解文件perl-5.32.1.tar.gz:tar xzf perl-5.32.1.tar.gz

进入到解压后文件夹:cd /var/gisfile/perl-5.32.1

执行命令:./Configure -des -Dprefix=/usr/local/perl

依次执行命令:make make test make install

查看是否安装成功:perl –v

如果该命令不能用就使用:perl –version

meson linux 离线安装 linux 离线安装命令_postgresql_08


安装postgis

进入/var/gisfile文件夹:cd /var/gisfile

解压文件:tar -zxvf postgis-2.5.1.tar.gz -C /opt

进入到解压后目录:cd /opt/postgis-2.5.1

分行复制,不要复制 \ 不然执行会报错,复制到linux中手动加上\ ,\后面不要有空格

执行命令:

./configure --prefix=/usr/local/postgis \ --with-pgcnotallow=/usr/local/postgresql/bin/pg_config \ --with-xml2cnotallow=/usr/local/libxml2-2.9.1/bin/xml2-config \ --with-geoscnotallow=/usr/local/geos-3.6.3/bin/geos-config \ --with-gdalcnotallow=/usr/local/gdal-2.0.0/bin/gdal-config \ --with-projdir=/usr/local/proj-5.2.0

meson linux 离线安装 linux 离线安装命令_postgresql_09


如果出现:configure: error: could not find GDAL错误

执行命令:vi /etc/ld.so.conf

在里面添加:

/usr/local/lib

/usr/local/postgresql/lib

然后在执行上面的步骤编译:make 安装:make install

10. 安装postgis拓展

切换到postgres用户:su postgres

执行:psql

创建数据库:create database postgis;

切换到postgis数据库:\c postgis

执行命令:create extension postgis;

如果报错:ERROR: could not load library “/usr/local/postgresql/lib/postgis-2.5.so”: libgeos_c.so.1: 无法打开共享对象文件: 没有那个文件或目录

执行命令(lib后面的文件):ldd /usr/local/postgresql/lib/postgis-2.5.so

meson linux 离线安装 linux 离线安装命令_xml_10


缺少so文件,直接把/usr/local对应的安装文件里面复制到postgresql的lib文件夹下

执行命令:cp /usr/local/geos-3.6.3/lib/libgeos_c.so.1 /usr/local/postgresql/lib/

执行命令:cp /usr/local/proj-5.2.0/lib/libproj.so.13 /usr/local/postgresql/lib/

执行命令:cp /usr/local/libxml2-2.9.1/lib/libxml2.so.2 /usr/local/postgresql/lib/

再次执行:ldd /usr/local/postgresql/lib/postgis-2.5.so

meson linux 离线安装 linux 离线安装命令_xml_11


再切换到postgis数据库执行:create extension postgis;

报错:could not load library “/usr/local/postgresql/lib/rtpostgis-2.5.so”: libgdal.so.20: 无法打开共享对象文件: 没有那个文件或目录

执行命令(lib后面的文件):ldd /usr/local/postgresql/lib/rtpostgis-2.5.so

meson linux 离线安装 linux 离线安装命令_meson linux 离线安装_12


执行命令:cp /usr/local/gdal-2.0.0/lib/libgdal.so.20 /usr/local/postgresql/lib/

再次执行:ldd /usr/local/postgresql/lib/rtpostgis-2.5.so

meson linux 离线安装 linux 离线安装命令_postgresql_13


如果创建拓展报错:ERROR: could not load library “/usr/local/postgresql/lib/rtpostgis-2.0.so”:libpq.so.5: cannot open shared object file: No such file or directory

把postgresql安装包里libpq.so.5的添加到64位系统中:

ln -s /usr/local/postgresql-9.5.7/src/interfaces/libpq/libpq.so.5  /usr/lib64/libpq.so.5

再次切换到postgis数据库执行:create extension postgis;

meson linux 离线安装 linux 离线安装命令_meson linux 离线安装_14


为了更好的使用postgis功能,决定把所有的扩展都装了:create extension postgis_topology;

meson linux 离线安装 linux 离线安装命令_linux_15


测试postgis是否成功,打开navicat打开postgis数据库

执行sql:select st_buffer(st_geometryfromtext ('POINT (0 0)',0),100 )

如果有结果说明已完成!

meson linux 离线安装 linux 离线安装命令_meson linux 离线安装_16