当前位置: 首页 > wzjs >正文

团购做的好的网站专业地推团队

团购做的好的网站,专业地推团队,南京政府门户网站建设的不足,网站平台设计文章目录 环境查看依赖矩阵编译安装 PostgreSQL15.6编译过程中常见报错报错1:报错2&#xff1a;报错3报错4报错5&#xff1a;报错6&#xff1a;<奇葩的报错> 编译安装 PostGIS安装 libxml2安装 protobuf-c安装 json-c安装 sqlite-3 (因为 proj 会依赖于该库)安装 libtiff…

文章目录

  • 环境
  • 查看依赖矩阵
  • 编译安装 PostgreSQL15.6
  • 编译过程中常见报错
    • 报错1:
    • 报错2:
    • 报错3
    • 报错4
    • 报错5:
    • 报错6:<奇葩的报错>
  • 编译安装 PostGIS
    • 安装 libxml2
    • 安装 protobuf-c
    • 安装 json-c
    • 安装 sqlite-3 (因为 proj 会依赖于该库)
    • 安装 libtiff, libcurl,mpfr 等库(proj会依赖该库)
    • 安装 proj
    • 安装 geos
    • 安装 gdal
    • 安装 PostGIS
  • 注意事项

环境

[root@localhost xmz]# docker exec -it euler_compile_env  bash[root@ff66b6827bf2 /]# cat /etc/os-release 
NAME="openEuler"
VERSION="22.03 (LTS-SP3)"
ID="openEuler"
VERSION_ID="22.03"
PRETTY_NAME="openEuler 22.03 (LTS-SP3)"
ANSI_COLOR="0;31"

查看依赖矩阵

https://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS

编译安装 PostgreSQL15.6

下载并上传源码压缩包然后解压
编译 PG 安装
mkdir -p /usr/local/pgsql
cd postgresql-15.6
./configure --prefix=/usr/local/pgsql  --with-python  --with-openssl --with-libxml  --enable-debug --enable-dtrace  PYTHON=/usr/bin/python3.9 --with-readline
make -j $(nproc) world && make install-world

编译过程中常见报错

报错1:

<Python.h>file not found
解决方法:
需要去openouler网站下载并安装 rpm 包 (可以参考  more  /etc/yum.repos.d/openEuler.repo  文件)[root@localhost ~]# rpm -Uvh python3-devel-3.9.9-28.oe2203sp3.x86_64.rpm --nodeps
警告:python3-devel-3.9.9-28.oe2203sp3.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID fb37bc6f: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...1:python3-devel-3.9.9-28.oe2203sp3 ################################# [100%]
[root@localhost ~]# 

报错2:

configure: error: library 'xml2' (version >= 2.6.23) is required for XML support
解决方法:
下载并安装 libxml2与 libxml2-devel 对应的 rpm 包

报错3

configure: error: library 'crypto' is required for OpenSSL
解决方法
下载并安装 openssl-devel 对应 rpm 包

报错4

configure: error: zlib library not found
解决方法:
下载并安装 zlib zlib-devel 对应 rpm 包

报错5:

Configure: error: readline not found
解决方法:
下载并安装 readline-devel 对应 rpm 包

报错6:<奇葩的报错>

make: Warning: File 'src/Makefile.port' has modification time 1707098160 s in the future
原因:
时间不对, 可能是系统时间过于老,比如我有个环境中 系统时间是 1970 年
解决方法:
手动将系统时间调整为正确的时间 date -s "真实时间"
然后 hwclock -w; hwclock -s
然后重新 configure ; make ; make install

编译安装 PostGIS

在这里插入图片描述

先安装依赖包, 安装原则如下:能用 yum 先用 yum 安装;不能 yum 安装就 rpm 包安装;没有 rpm 包,再编译安装.
当前版本对应官网 RPM 包安装路径如下:

安装 libxml2

编译 PG 的之前已经安装了
[root@openEuler ~]# rpm -qa |grep xml
libxml2-2.9.12-15.oe2203.aarch64
libxml2-devel-2.9.12-5.oe2203.aarch64

安装 protobuf-c

直接去官网镜像站点下载并安装 protobuf 与 protobuf-c(依赖于 protobuf)
[root@openEuler ~]# rpm -qa |grep protobuf
protobuf-3.9.0-7.oe1.aarch64
protobuf-devel-3.9.0-7.oe1.aarch64
protobuf-c-1.3.2-2.oe1.aarch64
protobuf-c-devel-1.3.2-2.oe1.aarch64

安装 json-c

由于环境中已经存在 json-c 0.15
[root@openEuler ~]# rpm -qa |grep json-c
json-c-0.15-2.oe2203.aarch64
而官网中默认的 json-c 0.13
所以最好是安装 json-c-devel-0.15 以及 json-c-0.15的 rpm 包rpm -Uvh json-c-0.15-6.oe2203.aarch64.rpm
rpm -Uvh json-c-devel-0.15-6.oe2203.aarch64.rpm 

安装 sqlite-3 (因为 proj 会依赖于该库)

环境中已经存在更新的版本 sqlite-3.37.2-5.oe2203.aarch64, 所以我们只安装 sqlite-devel-3.36.0-2.oe2203.aarch64.rpm

[root@openEuler other_deps]# rpm -Uvh sqlite-3.36.0-2.oe2203.aarch64.rpm 
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]package sqlite-3.37.2-5.oe2203.aarch64 (which is newer than sqlite-3.36.0-2.oe2203.aarch64) is already installed
[root@openEuler other_deps]# rpm -Uvh sqlite-devel-3.36.0-2.oe2203.aarch64.rpm 
error: Failed dependencies:sqlite(aarch-64) = 3.36.0-2.oe2203 is needed by sqlite-devel-3.36.0-2.oe2203.aarch64
[root@openEuler other_deps]# rpm -qa |grep sqlite 
sqlite-3.37.2-5.oe2203.aarch64
[root@openEuler other_deps]# rpm -Uvh sqlite-devel-3.36.0-2.oe2203.aarch64.rpm  --nodeps
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...1:sqlite-devel-3.36.0-2.oe2203     ################################# [100%]
[root@openEuler other_deps]# 

安装 libtiff, libcurl,mpfr 等库(proj会依赖该库)

[root@openEuler other_deps]# rpm -Uvh libtiff-4.3.0-9.oe2203.aarch64.rpm 
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]package libtiff-4.3.0-24.oe2203.aarch64 (which is newer than libtiff-4.3.0-9.oe2203.aarch64) is already installed
[root@openEuler other_deps]# rpm -Uvh libtiff-devel-4.3.0-9.oe2203.aarch64.rpm 
error: Failed dependencies:libtiff = 4.3.0-9.oe2203 is needed by libtiff-devel-4.3.0-9.oe2203.aarch64
[root@openEuler other_deps]# rpm -Uvh libtiff-devel-4.3.0-9.oe2203.aarch64.rpm --nodeps
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...1:libtiff-devel-4.3.0-9.oe2203     ################################# [100%]
[root@openEuler other_deps]# Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]package mpfr-4.1.0-1.oe2203.aarch64 is already installed
[root@openEuler ~]# rpm -Uvh mpfr-devel-4.1.0-1.oe2203.aarch64.rpm  
error: Failed dependencies:gmp-devel is needed by mpfr-devel-4.1.0-1.oe2203.aarch64
[root@openEuler ~]# rpm -Uvh mpfr-devel-4.1.0-1.oe2203.aarch64.rpm --nodeps
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...1:mpfr-devel-4.1.0-1.oe2203        ################################# [100%]
[root@openEuler ~]# 
[root@openEuler ~]# rpm -Uvh libjpeg-turbo-2.1.1-1.oe2203.aarch64.rpm
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]package libjpeg-turbo-2.1.1-2.oe2203.aarch64 (which is newer than libjpeg-turbo-2.1.1-1.oe2203.aarch64) is already installed
[root@openEuler ~]# rpm -Uvh libjpeg-turbo-devel-2.1.1-1.oe2203.aarch64.rpm --nodeps
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...1:libjpeg-turbo-devel-2.1.1-1.oe220################################# [100%]
[root@openEuler ~]# rpm -Uvh libcurl-7.79.1-2.oe2203.aarch64.rpm
error: Failed dependencies:libcurl = 7.79.1-15.oe2203 is needed by (installed) curl-7.79.1-15.oe2203.aarch64
[root@openEuler ~]# rpm -Uvh libcurl-7.79.1-2.oe2203.aarch64.rpm --nodeps
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]package libcurl-7.79.1-15.oe2203.aarch64 (which is newer than libcurl-7.79.1-2.oe2203.aarch64) is already installed
[root@openEuler ~]# rpm -qa |grep libcurl
libcurl-7.79.1-15.oe2203.aarch64
[root@openEuler ~]# rpm -Uvh libcurl-devel-7.79.1-2.oe2203.aarch64.rpm
error: Failed dependencies:libcurl = 7.79.1-2.oe2203 is needed by libcurl-devel-7.79.1-2.oe2203.aarch64
[root@openEuler ~]# rpm -Uvh libcurl-devel-7.79.1-2.oe2203.aarch64.rpm --nodeps
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...1:libcurl-devel-7.79.1-2.oe2203    ################################# [100%]
[root@openEuler ~]# rpm -qa |grep libcurl
libcurl-7.79.1-15.oe2203.aarch64
libcurl-devel-7.79.1-2.oe2203.aarch64

安装 proj

proj9 开始使用的是 cmake , 他会依赖于 googletest, 需要手动下载并编译安装 googletest, 比较麻烦
而 proj9 之前的版本可以使用 三板斧 configure;make;make install, 比较方便些

mkdir -p  /usr/local/proj-8.2.1
# 如果只想编译动态库
./configure --prefix=/usr/local/proj-8.2.1 
# 如果想编译出静态库(也包含动态库)
./configure --prefix=/usr/local/proj-8.2.1   --enable-static CFLAGS='-fPIC' CXXFLAGS='-fPIC'
make -j $(nproc) && make install最终打印如下:
。。。
make[2]: Nothing to be done for 'install-exec-am'./usr/bin/mkdir -p '/usr/local/proj-8.2.1/share/doc/proj'/usr/bin/install -c -m 644 COPYING NEWS AUTHORS '/usr/local/proj-8.2.1/share/doc/proj'/usr/bin/mkdir -p '/usr/local/proj-8.2.1/lib/pkgconfig'/usr/bin/install -c -m 644 proj.pc '/usr/local/proj-8.2.1/lib/pkgconfig'
make[2]: Leaving directory '/root/other_deps/p`在这里插入代码片`roj-8.2.1'
make[1]: Leaving directory '/root/other_deps/proj-8.2.1'
[root@openEuler proj-8.2.1]# ll /usr/local/proj-8.2.1/
total 16
drwxr-xr-x 2 root root 4096 Jun 14 17:22 bin
drwxr-xr-x 3 root root 4096 Jun 14 17:22 include
drwxr-xr-x 3 root root 4096 Jun 14 17:22 lib
drwxr-xr-x 5 root root 4096 Jun 14 17:22 share

安装 geos

cd /root/other_deps/geos-3.12.1
mkdir build 
cd build# 指定安装路径,如果只想编译动态库, 命令如下
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/geos-3.12.1# 指定安装路径, 如果只想编译静态库, 命令如下
cmake -DBUILD_SHARED_LIBS=OFF .. -DCMAKE_INSTALL_PREFIX=/usr/local/geos-3.12.1# 编译与安装
cmake --build . -j $(nproc) && cmake --build . --target install -j $(nproc)# 查看结果
[root@openEuler build]# ll /usr/local/geos-3.12.1/lib64/
total 10096
drwxr-xr-x 3 root root    4096 Jun 14 21:28 cmake
-rw-r--r-- 1 root root 9740942 Jun 14 21:25 libgeos.a
-rw-r--r-- 1 root root  585120 Jun 14 21:25 libgeos_c.a
drwxr-xr-x 2 root root    4096 Jun 14 21:28 pkgconfig
可以看到只有静态库如果没有指定自定义目录, 默认是安装在了 /usr/local/lib64 下
[root@openEuler build]# ll /usr/local/lib64/*geos*
lrwxrwxrwx 1 root root      17 Jun 14 17:39 /usr/local/lib64/libgeos.so -> libgeos.so.3.12.1
-rwxr-xr-x 1 root root 3879856 Jun 14 17:31 /usr/local/lib64/libgeos.so.3.12.1
lrwxrwxrwx 1 root root      14 Jun 14 17:39 /usr/local/lib64/libgeos_c.so -> libgeos_c.so.1
lrwxrwxrwx 1 root root      19 Jun 14 17:39 /usr/local/lib64/libgeos_c.so.1 -> libgeos_c.so.1.18.1
-rwxr-xr-x 1 root root  408360 Jun 14 17:32 /usr/local/lib64/libgeos_c.so.1.18.1
[root@openEuler build]# 

安装 gdal

安装指导参考: https://gdal.org/build_hints.html
必须项如下:
在这里插入图片描述

这里我使用 GDAL 3.8.0

mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/gdal-3.8.0
cmake --build . -j $(nproc)
cmake --build . --target instasll  -j $(nproc)

安装 PostGIS

安装 PostGIS 3.4.1

export PATH=/home/postgres/pgsql/bin:$PATH./configure \
--with-pgconfig=/home/postgres/pgsql/bin/pg_config \
--with-geosconfig=/usr/local/geos-3.12.1/bin/geos-config \
--with-gdalconfig=/usr/local/gdal-3.8.0/bin/gdal-config \
--with-projdir=/usr/local/proj-8.2.1make -j $(nproc) 
make install

注意事项

  1. 最终打包的时候,如果要在 windows 环境上库, 尽量使用压缩包整体上库
  2. 如果使用的是解压之后的单个文件的上库, 这样会存在链接失效问题 (需要手工修改 jenkins 编译脚本来添加链接代码)
  3. 可能会出现 时区等类型的文件出现文件大小变为 0 的问题
http://www.dtcms.com/wzjs/87017.html

相关文章:

  • 镇江网站搭建网络营销网站推广方案
  • 郴州网站seo百度统计手机app
  • 企业网站怎么做seo优化营销技巧和营销方法视频
  • 邢台做网站的公司哪家好?站长之家关键词挖掘
  • 网站建设费用预算怀柔网站整站优化公司
  • 宝安网站设计公司百度搜索风云榜小说
  • 莱西市城乡建设局网站太原关键词排名推广
  • 登录广东省建设监理协会网站首页网站怎么进入
  • 湖北省建设厅建筑资料官方网站软文是什么东西
  • 北京 网站设计公司百度搜索量最大的关键词
  • 快手官方网站音乐人怎么做石家庄邮电职业技术学院
  • html5移动网站开发实践百度网页pc版登录
  • php+网站开发案例教程优化大师如何删掉多余的学生
  • 金融交易网站开发seo有哪些经典的案例
  • 城乡建设与环保部网站网上竞价
  • h5作品重庆整站seo
  • 企业营销网站怎样做网站优化排名优化
  • 河东做网站chrome手机安卓版
  • 用固定ip做访问网站服务器所有代刷平台推广
  • wordpress 迁移后台空白sem优化公司
  • 做医院网站公司seo快速入门教程
  • html网页制作代码大全css沈阳网站关键词优化多少钱
  • 中山做网站好的公司莆田百度快照优化
  • 接外贸单的平台有哪些百度seo整站优化
  • 离石网站建设草莓永久地域网名入2022
  • 给别人做网站别人违法经营6seo优化搜索推广
  • 网站开发与管理大作业百度app关键词优化
  • 网站建设和域名什么关系免费下载百度seo
  • 成都网站建设与网站制作seo搜狗排名点击
  • 做网站需要团队还是一个人网络营销策略的演变