Linux(centos)中使用源码安装PostGIS

在Centos系统源码安装postgreSQL数据库及postGIS扩展 安装前PostGIS扩展通常需要安装一些依赖项。1.GDAL: PostGIS需要GDAL(Geospatial Data Abstraction Library)来处理地理空间数据格式。2.GEOS: GEOS(Geometry Engine - Open Source)是一个用于处理地理空间数据的C++库。3.Proj: Proj是用于地图投影的库。postgreSQL与postGIS插件的版本支持关系本次安装的各版本如下geos-3.9.0gdal-2.4.4。 阅读详情

        

        本文将介绍在centos中使用源码安装PostGIS,由于PostGIS有较多的模块组件,本文将介绍PostGIS主要部分的安装,另外将持续更新,以介绍PostGIS其他模块组件的安装。

        另外,由于PostGIS是PostgreSQL数据库的一个插件,即PostGIS构建于PostgreSQL之上。所以安装PostGIS之前必须安装PostgreSQL,建议参考我的这篇文章:Linux(centos)中安装PostgreSQL 。

        数据库版本:PostgreSQL 10.7

        操作系统版本:CentOS 7.6

一、安装条件

        PostGIS需要依赖以下软件或函数库:

1.1、必须安装的软件或函数库

        PostgreSQL: PostGIS构建于PostgreSQL之上,所以PostgreSQL必须要安装。

      GNU C 编译器(gcc): gcc是一个Linux中最标准的C语言编译器,需要安装gcc来编译PostGIS和其他软件或函数库的源码。

        GNU Make(gmake或make):这个也是用于编译源码。

        Proj4:Proj4 重投影库用于在PostGIS中提供坐标重投影功能。

        GEOS:GEOS几何图形库,用于支持PostGIS中的几何信息处理、分析等功能,也可以直接认为GEOS是一个几何算法库。

      LibXML2:LibXML2目前用于PostGIS中的一些导入函数,比如ST_GeomFromGML()和ST_GeomFromKML()。

        JSON-C:目前使用JSON-C通过ST_GeomFromGeoJSON()函数导入GeoJSON格式的数据

        GDAL:用于PostGIS对栅格数据的支持。

1.2、可选的软件或函数库

        SFCGAL:用于提供额外的二维和三维的高级分析功能。允许对一些函数使用基于SFCGAL的实现,而不是使用基于GEOS的实现(例如ST_Intersection()和ST_Area()函数),如果安装了SFCGAL,PostgreSQL的配置变量postgis.backend允许终端用户控制他想使用哪个实现(默认情况下是GEOS的实现)。另外,SFCGAL依赖于CGAL和Boost这两个软件,即如果想安装SFCGAL,就先要安装这两个软件。最后pgrouting插件也依赖于CGAL和Boost

        其他。。。待更新

二、本次安装的软件

        由于带基础开发工具版本的centos都已经自动安装了gcc和make,相关安装方法本文将不做说明。

        本次安装会安装如下软件(包含版本号):

        proj-6.2.1

        geos-3.8.1

        libxml2-2.9.9

        json-c-json-c-0.13.1-20180305

        gdal-3.1.2

        boost-devel.x86_64

        cgal-4.14.3

        SFCGAL-1.3.8

        postgis-3.0.2

        这些源码包可以直接去官网下载,可以直接在centos中下载,也可以直接从以下链接获取:

        链接:https://pan.baidu.com/s/193lz-x8pO8C5ptEs2dXPlw

        提取码:6tvd

        源码包版本最好和上面的保持一致,否则可能会安装失败!

        下载好源码包后,把相关源码包拷贝到centos中的/soft这个目录里。

        另外,推荐使用root用户进行安装,否则可能会权限不够。

三、安装PostGIS依赖的软件和函数库

        停止数据库:

        cd /usr/pgsql-10/bin

        ./pg_ctl stop -D /opt/pgsql/10/data/

3.1、安装proj

        解压proj-6.2.1.tar.gz:

        tar -zxvf proj-6.2.1.tar.gz

        进入proj-6.2.1:

        cd proj-6.2.1

        运行configure程序,并且设置proj安装的位置为/usr/local/proj-6.2.1:

        ./configure  --prefix=/usr/local/proj-6.2.1

        报错:

checking for pkg-config... /usr/bin/pkg-config

checking pkg-config is at least version 0.9.0... yes

checking for SQLITE3... configure: error: Package requirements (sqlite3 >= 3.7) were not met:

No package 'sqlite3' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you

installed software in a non-standard prefix.

Alternatively, you may set the environment variables SQLITE3_CFLAGS

and SQLITE3_LIBS to avoid the need to call pkg-config.

See the pkg-config man page for more details.

        报错解决:

        出现如上错误是因为缺少sqlite相关库

        yum -y install sqlite-devel

        运行make命令进行源码包的编译:

        make clean

        make

        使用make check测试刚刚编译的软件:

        make check

        使用make install安装软件:

        make install

        设置环境变量:root

        vim ~/.bashrc

        export PATH=$PATH:/usr/local/bin

        export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

        source ~/.bashrc

        结果无报错,proj-6.2.1已经安装成功!

3.2、安装geos

        解压geos-3.8.1.tar.bz2:

        报错:

[root@txxzyzyjpostgre-postgresql-master-1-b5795-0 local]# tar -jxvf geos-3.8.1.tar.bz2

tar (child): bzip2: Cannot exec: No such file or directory

tar (child): Error is not recoverable: exiting now

tar: Child returned status 2

tar: Error is not recoverable: exiting now

        解决方法:

        yum -y install bzip2

        tar -jxvf geos-3.8.1.tar.bz2

        进入geos-3.8.1:

        cd geos-3.8.1/

        新建build文件夹,并进入该文件夹:

        mkdir build

        cd build/

        运行cmake指令,并通过参数CMAKE_INSTALL_PREFIX指定安装目录为/usr/local/geos-3.8.1:

        /usr/local/cmake-3.18.3/bin/cmake CMAKE_INSTALL_PREFIX=/usr/local/geos-3.8.1 ..

        运行make指令来编译geos-3.8.1的源码:

        make

        使用make install指令安装geos-3.8.1:

        make install

        结果无报错,geos-3.7.2已经安装成功!

3.3、安装libxml2

        解压libxml2-2.9.8.tar.gz:

        tar -zxvf libxml2-2.9.9.tar.gz

        进入libxml2-2.9.8:

        cd libxml2-2.9.9/

        运行configure程序,并且设置libxml2安装的位置为/usr/local/libxml2-2.9.9/:

        ./configure --prefix=/usr/local/libxml2-2.9.9

        运行make命令进行源码包的编译:

        make clean

        make

        使用make install安装软件:

        make install

        结果无报错,libxml2-2.9.9已经安装成功!

3.4、安装json-c

        解压json-c-0.13.1.tar.gz:

        tar -zxvf json-c-json-c-0.13.1-20180305.tar.gz

        进入json-c-0.13.1:

        cd json-c-json-c-0.13.1-20180305/

        运行configure程序,并且设置libxml2安装的位置为/usr/local/json-c-0.13.1:

        ./configure --prefix=/usr/local/json-c-0.13.1

        运行make命令进行源码包的编译:

        make

        使用make check测试刚刚编译的软件:

        make check

        使用make install安装软件:

        make install

        结果无报错,json-c-0.13.1已经安装成功!

3.5、安装gdal

        解压gdal-3.1.2.tar.gz:

        tar -zxvf gdal-3.1.2.tar.gz

        进入gdal-3.1.2:

        cd gdal-3.1.2/

        运行configure程序,并且设置gdal安装的位置为/usr/local/gdal-3.1.2:

        ./configure --prefix=/usr/local/gdal-3.1.2

        报错:

using pre-installed libz

checking for ld used by GCC... /usr/bin/ld -m elf_x86_64

checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes

checking for shared library run path origin... /bin/sh: ./config.rpath: No such file or directory

done

checking for iconv... yes

checking for working iconv... yes

checking for iconv declaration...

extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);

using ICONV_CPP_CONST=""

configure: Bash completions not requested

checking for PROJ >= 6 library... checking for proj_create_from_wkt in -lproj... no

checking for internal_proj_create_from_wkt in -lproj... no

checking for internal_proj_create_from_wkt in -linternalproj... no

configure: error: PROJ 6 symbols not found

        解决办法:

        检查proj6安装,确保安装成功,并设置环境变量,设置完再进行configure

        ./configure --prefix=/usr/local/gdal-3.1.2

        运行make命令进行源码包的编译:

        make clean

        make

        使用make install安装软件:

        make install

        结果无报错,gdal-3.1.2已经安装成功!

3.6、安装SFCGAL

        由于SFCGAL需要依赖Boost、CGAL、GMP、MPFR这四个软件,所以具体总共需要先安装 以下四个软件:

        boost-devel.x86_64

        gmp-devel.x86_64

        mpfr-devel.x86_64

        CGAL-4.13.1

        ①安装boost-devel.x86_64

        可以直接从centos的yum源中取得boost-devel.x86_64进行安装:

        yum install boost-devel.x86_64

        ②安装gmp-devel.x86_64

        直接使用yum安装:

        yum install gmp-devel

        ②安装mpfr-devel.x86_64

        接下来,由于CGAL和SFCGAL都依赖于mpfr-devel.x86_64,所以使用yum先安装它:

        yum install mpfr-devel

        ③安装cgal-4.14.3.tar.gz

        解压/usr/local/src目录下的cgal-4.14.3.tar.gz:

        tar -zxvf cgal-4.14.3.tar.gz

        进入cgal-4.14.3文件夹中:

        cd cgal-4.14.3/

        创建一个build文件夹,并进入该文件夹:

        mkdir build

        cd build

        运行cmake指令(如果没有安装该指令,直接通过yum来安装或者使用官网的源码来安装),并通过参数CMAKE_INSTALL_PREFIX指定安装目录为/usr/local/cgal-4.14.3:

        yum install cmake

        /usr/local/cmake-3.18.3/bin/cmake CMAKE_INSTALL_PREFIX=/usr/local/cgal-4.14.3 ..

        使用make编译cgal-4.14.3的源码:

        make

        使用make install安装cgal-4.14.3:

        make install

        ④安装SFCGAL

        由于Boost、GMP和MPFR都是以默认路径安装,所以只需针对CGAL设置关于路径的环境变量:

        vi /etc/profile

        然后在最后一行添加export CGAL_DIR=/usr/local/cgal-4.14.3

        保存退出后,使用source命令让profile文件立即生效:

        source /etc/profile

        解压SFCGAL-1.3.6.tar.gz:

        tar -zxvf SFCGAL-1.3.8.tar.gz

        进入SFCGAL-1.3.8文件夹中:

        cd SFCGAL-1.3.8/

        新建build文件夹,并进入该文件夹:

        mkdir build

        cd build/

        运行cmake指令,并通过参数CMAKE_INSTALL_PREFIX指定安装目录为/usr/local/sfcgal-1.3.8:

        /usr/local/cmake-3.18.3/bin/cmake CMAKE_INSTALL_PREFIX=/usr/local/SFCGAL-1.3.8 ..

        运行make指令来编译SFCGAL-1.3.8的源码:

        make

        使用make install指令安装SFCGAL-1.3.8:

        make install

        结果无报错,sfcgal-1.3.8已经安装成功!

四、安装PostGIS

4.1、添加动态库路径

        /etc/ld.so.conf 此文件记录了编译时使用的动态函数库的路径,也就是加载so库的路径。

        默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件,而通常通过源码包进行安装时,如果不

        指定--prefix会将库安装在/usr/local目录下,而又没有在文件/etc/ld.so.conf中添加/usr/local/lib这个目录>。这样虽然安装了源码包,但是使用时仍然找不到相关的.so库,就会报错。也就是说系统不知道安装了源码包。

        对于此种情况有2种解决办法:

     (1) 在用源码安装时,用--prefix指定安装路径为/usr/lib。这样的话也就不用配置PKG_CONFIG_PATH

        (2) 直接将路径/usr/local/lib路径加入到文件/etc/ld.so.conf文件的中。在文件/etc/ld.so.conf中末尾直接添加:/usr/local/lib

        现在就使用第二种方法来为刚才安装的动态库添加路径,编辑/etc/lo.so.conf配置文件,为其添加如下内容:

        include ld.so.conf.d/*.conf

        /usr/pgsql-10/lib

        /usr/local/geos-3.8.1/lib

        /usr/local/lib

        /usr/local/libxml2-2.9.9/lib

        /usr/local/json-c-0.13.1/lib

        /usr/local/cgal-4.14.3/build/lib

        /usr/local/lib64

        保存退出后,使用ldconfig命令将刚才指定的动态函数库加载到内存中:

        ldconfig

4.2、编译并安装PostGIS

        先解压/usr/local/src中的postgis-2.5.1.tar.gz:       

        tar -zxvf postgis-3.0.2.tar.gz

        进入postgis-2.5.1文件夹:

        cd postgis-3.0.2

        接下来需要运行configure程序,需要为configure程序指定以下参数:

        --prefix=PREFIX   ——    PostGIS安装的位置

        --with-pgconfig=FILE    ——    PostgreSQL提供了一个名为pg_config的文件,用于使PostGIS这样的插件能够定位到PostgreSQL的安装目录。

        --with-gdalconfig=FILE    ——    GDAL提供了一个gdal-config文件,使PostGIS能定位到GDAL安装的目录。

        --with-geosconfig=FILE    ——    GEOS提供了一个geos-config文件,使PostGIS能定位到GEOS安装的目录。

        --with-xml2config=FILE    ——    XML2提供了一个xml2-config文件,使PostGIS能定位到XML2安装的目录。

        --with-projdir=DIR    ——    用于指定Proj4的安装目录

        --with-jsondir=DIR    ——    用于指定JSON-C的安装目录

        --with-sfcgal=PATH    ——    SFCGAL提供了一个sfcgal-config文件,使PostGIS能定位到SFCGAL安装的目录

        现在就运行configure程序,并为其指定上面介绍的参数:

        ./configure --prefix=/usr/local/postgis-3.0.2 --with-gdalconfig=/usr/local/gdal-3.1.2/bin/gdal-config --with-pgconfig=/usr/pgsql-10/bin/pg_config --with-geosconfig=/usr/local/geos-3.8.1/bin/geos-config --with-projdir=/usr/local/proj-5.1.0 --with-xml2config=/usr/local/libxml2-2.9.8/bin/xml2-config --with-jsondir=/usr/local/proj-6.2.1 --with-sfcgal=/usr/local/SFCGAL-1.3.8/build/sfcgal-config

        报错:

checking for iconvctl... no

checking for libiconvctl... no

Using user-specified pg_config file: /usr/pgsql-10/bin/pg_config

configure: error: the PGXS Makefile /usr/pgsql-10/lib/pgxs/src/makefiles/pgxs.mk cannot be found. Please install the PostgreSQL server development packages and re-run configure.

[root@txxzyzyjpostgre-postgresql-master-1-b5795-0 postgis-3.0.2]#

postgres=# show server_version;

 server_version

----------------

 10.7

(1 row)

        解决办法:

        安装依赖包:

        rpm -ivh postgresql10-devel-10.7-2PGDG.rhel7.x86_64.rpm --nodeps

        重新运行configure程序:

        ./configure --prefix=/usr/local/postgis-3.0.2 --with-gdalconfig=/usr/local/gdal-3.1.2/bin/gdal-config --with-pgconfig=/usr/pgsql-10/bin/pg_config --with-geosconfig=/usr/local/geos-3.8.1/bin/geos-config --with-projdir=/usr/local/proj-6.2.1 --with-xml2config=/usr/local/libxml2-2.9.9/bin/xml2-config --with-jsondir=/usr/local/json-c-0.13.1 --with-sfcgal=/usr/local/SFCGAL-1.3.8/build/sfcgal-config

        运行make命令编译postgis-2.5.1的源代码:

        make

        使用make install命令安装postgis-2.5.1:

        make install

        结果无报错,postgis-2.5.1已经安装成功!

4.3、在数据库中创建posgis插件

        切换到postgres用户:

        su - postgresql

        启动PostgreSQL数据库服务:

        cd /usr/pgsql-10/bin

        ./pg_ctl start -D /opt/pgsql/10/data/

        运行psql:

        -bash-4.2$ psql

        psql (10.7)

        Type "help" for help.

        创建一个数据库test,并连接该数据库:

        postgres=# create database test;

        CREATE DATABASE

        在test数据库中创建postgis插件:

        test=# create extension postgis;

        CREATE EXTENSION

        创建成功!

        查看postgis的版本:

test=# select postgis_full_version();

                                                 postgis_full_version                                                  

-----------------------------------------------------------------------------------------------------------------------

 POSTGIS="3.0.2 2fb2a18" [EXTENSION] PGSQL="100" GEOS="3.8.1-CAPI-1.13.3" PROJ="6.2.1" LIBXML="2.9.9" LIBJSON="0.13.1"

(1 row)

        列出了postgis和一些相关库的版本。

        接下来,在test数据库中创建sfcgal插件:

        postgres=# \c test;

        You are now connected to database "test" as user "postgres".

        test=# create extension postgis;

        CREATE EXTENSION

        创建成功!

        查看test数据库中目前的所有插件:

test=# \dx

                                        List of installed extensions

      Name      | Version |   Schema   |                             Description                            

----------------+---------+------------+---------------------------------------------------------------------

 plpgsql        | 1.0     | pg_catalog | PL/pgSQL procedural language

 postgis        | 3.0.2   | public     | PostGIS geometry, geography, and raster spatial types and functions

 postgis_sfcgal | 3.0.2   | public     | PostGIS SFCGAL functions

(3 rows)

test=#

        至此,postgis安装成功!

Linux之postgis离线安装 PostgreSQL是一个开源数据库,而PostGIS在此基础上增添了空间对象扩展模块。 PostGIS最大的特点是符合并且实现了OpenGIS的一些规范,是最著名的开源GIS数据库。 虚拟机环境:CentOS 7.8,PostgreSQL 12.4 本地环境:Windows 10,pgadmin 4,qgis 目录 1 安装条件准备 1.1 Postgis安装的必要条件 1.2 Postgis安装的可选条件 1.3 必要库和软件的下载路径 2 本次安装的软件和库 3 编辑安装pos 阅读详情

相关推荐

centos7安装 postgresql postgis pgrouting

1、修改/var/lib/pgsql/12/data/postgresql.conf文件,取消 listen_addresses 的注释,将参数值改为“*”原文链接:https://blog.youkuaiyun.com/Angel_asp/article/details/124308694。2、修改/var/lib/pgsql/12/data/pg_hba.conf文件,增加下图红框部分内容。systemctl start postgresql-12.service // 启动服务。

jsboy123的专栏 790

Ubuntu 18.04从源代码编译安装GDAL3.4.1

Ubuntu 18.04从源代码编译安装GDAL3.4.1简要介绍参考地址编译代码注意事项1.configure: error: PROJ 6 symbols not found2. 使用cmake时找不到库3.可以用make -j4 加速检查方法 简要介绍 参考地址 GDALGithub GDAL各版本下载地址 官方编译方法地址 编译代码 ./configure make -j4 sudo make install 注意,3.5版本可以使用cmake进行编译。 注意事项 1.configure: err

卫少东个人博客 4413

Linux:PostGreSQL|PostGIS部署

Linux:PostGreSQL|PostGIS部署

席木木的博客 3730

CentOS安装PostgreSQL以及PostGIS

系统环境:可以确定是centOS的x86_64位架构。

mxy2572185的博客 3250

万象RK3506-EG1800网关使用说明

摘要:HD-RK3506-EG1800是一款高性能工业物联网边缘计算网关,支持Buildroot和Ubuntu双系统。文档详细介绍了网关的网络配置(包括ETH0/ETH1的静态IP设置、WiFi连接)、时钟同步、HSL软件安装配置(含开机自启动服务)、系统日志优化以及刷机操作指南(Loader/Maskrom模式)。特别提供了基于lighttpd的网页管理方案,通过HTML界面实现网络参数可视化配置,包含身份验证、实时状态显示和表单提交功能。网关默认ETH0固定IP为192.168.1.10,提供完整的CL

tian_jiangnan的博客 174

c转c++——蓝桥杯

在这里,`int &i` 表示 `i` 是一个整型的引用变量,而不是一个拷贝,这意味着在循环中对 `i` 的修改会影响到数组 `arr` 中对应位置的值。arr则是需要遍历的数组。一、为啥要转C++:之前只学过C语言,然后为了蓝桥杯苦哈哈敲了C好久,偶然听了别人的意见去看了一下C++后发现简直太香了——C++不像C要把底层逻辑自己敲出来,而是可以直接调用STL函数库(比如排序,C语言可能要敲个几十行代码C++直接用调用sort函数就可以了),而且C++完全兼容C语言,里面的语法全部可以用C替换。

smwymzqbyl的博客 2045

postgis安装_在Linux(centos)中使用源码安装pgRouting

由于pgRouting依赖于PostGIS和PostgreSQL,所以阅读本文之前,务必请先阅读:不睡觉的怪叔叔:Linux(centos)中安装PostgreSQL​zhuanlan.zhihu.com不睡觉的怪叔叔:Linux(centos)中使用源码安装PostGIS​zhuanlan.zhihu.com 按照以上文章安装好PostgreSQL和PostGIS后,就具备了以下pg...

weixin_39941792的博客 317

饥荒Mod 开发(二):Mod目录结构

饥荒中的每个Mod 都有一些固定的目录结构,各个目录的放着不同类型的文件。动画,图片,源代码等。我们最好是遵守Mod 开发中的各个目录结构,我用的是WeGame 安装的饥荒游戏,Mod 目录如下,这个目录下保存所有订阅的Mod。

小乖写代码 4628

centos编译运行java_Linux(centos)中使用源码安装PostGIS

本文将介绍在centos中使用源码安装PostGIS,由于PostGIS有较多的模块组件,本文将介绍PostGIS主要部分的安装,另外将持续更新,以介绍PostGIS其他模块组件的安装。 另外,由于PostGIS是PostgreSQL数据库的一个插件,即PostGIS构建于PostgreSQL之上。所以安装PostGIS之前必须安装PostgreSQL,建议参考我的这篇文章:Linu...

weixin_36444910的博客 289

codevs 1620 轮船问题 DP 解题报告

某国家被一条河划分为南北两部分,在南岸和北岸总共有N对城市,每一城市在对岸都有唯一的友好城市,任何两个城市都没有相同的友好城市。

Hawo11的博客 817

AVEVA PDMS 二次开发之PML实战:从宏到自定义窗体的效率提升

本文详细介绍了AVEVA PDMS二次开发中PML语言的应用,从基础宏编写到高级窗体开发,全面提升工程设计效率。通过实战案例展示如何利用PML实现批量操作、流程自动化和交互优化,帮助工程师快速掌握这一强大工具。

weixin_42549451的博客 338

ant centos环境下 编译没有将配置文件加载_Linux(centos)中使用源码安装PostGIS

本文将介绍在centos中使用源码安装PostGIS,由于PostGIS有较多的模块组件,本文将介绍PostGIS主要部分的安装,另外将持续更新,以介绍PostGIS其他模块组件的安装。 另外,由于PostGIS是PostgreSQL数据库的一个插件,即PostGIS构建于PostgreSQL之上。所以安装PostGIS之前必须安装PostgreSQL,建议参考我的这篇文章:Linu...

weixin_39979617的博客 122

网络管理与维护综合实训2:基于AD证书服务构建企业内部HTTPS安全访问体系

本实训项目通过在Windows Server 2022环境下搭建AD域、DNS服务和Web服务器,实现安全的企业网站访问。主要内容包括:在两台服务器上安装操作系统并配置网络;在S1服务器上部署活动目录域、证书服务和Web服务;创建两个网站(HTTP和HTTPS);配置DNS记录和SSL证书;设置防火墙规则限制HTTP访问而允许HTTPS访问。通过实践掌握了AD证书管理、DNS配置、Web服务器设置及防火墙规则配置等关键技能,为网站管理工作奠定了基础,同时认识到证书管理在Web安全中的重要性。

深耕计算机专业知识与技术。 997

opengauss中安装PostGIS

操作系统:CentOS/Ubuntu1. 以操作系统用户omm登录数据库任一主机。2.创建GCC安装主目录\$GAUSSHOME/gcc和代码下载目录\$GAUSSHOME/gcc/packages3. 下载软件包gcc-7.3.0.tar.gz、gmp-6.1.0.tar.xz、mpc-1.0.3.tar.gz、mpfr-3.1.4.tar.gz至\$GAUSSHOME/gcc/packages目录 (使用华为云,速度快)4.解压下载软件5. 创建GCC安装目录6.安装gmp-6.1.0。

weixin_67695227的博客 1308

ATE Pin Electronics电路学习总结

PinElectronics(PE)是ATE测试机的核心模拟前端电路,负责ATE与芯片间的信号转换与交互。主要包含四大功能模块:Driver实现逻辑信号到模拟电平的转换(VIH/VIL可编程);Receiver对DUT输出进行采样比较(VOH/VOL判定);ActiveLoad施加可编程电流负载;PPMU进行精密电压/电流测量。PE的性能直接影响功能测试和直流参数测试的精度,需定期校准维护。关键参数包括:Driver电压精度(±5mV)、Receiver比较精度(±10-50mV)、PPMU测量精度(±1-

歌颂苦难的行为是无耻的; 465

CATIA二次开发一一一计算 CATIA 零件模型在全局坐标系下的包围盒方法

本文介绍了一种在CATIA中计算零件模型全局坐标系下包围盒(BoundingBox)的方法。通过遍历零件几何体特征点,并应用坐标变换矩阵,最终返回精确的零件包围盒。核心步骤包括初始化与输入校验、坐标变换处理、几何体特征点遍历以及全局坐标变换。关键方法涉及CATMathBox操作和坐标变换接口。该方法适用于碰撞检测、可视化优化和装配分析等场景,能够快速判断零件间的空间干涉,提升渲染性能,并计算零件在装配体中的全局位置范围。

工业软件开发 894

postgis安装_pgRouting教程三:安装pgRouting

官方教程使用OSGeo Live这个软件集合,为了更贴近开发过程,我这里自己手动来安装pgRouting。 本文分别介绍pgRouting在Windows中的安装与在Linux(centos)中的安装。 推荐在Linux中安装pgRouting,因为生产环境中也大多是将pgRouting安装在Linux中。当然,在windows中安装pgRouting来学习本教程也是可以的。一...

weixin_39571404的博客 650

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

在Linux(centos)中使用源码安装pgRouting

目录 一、解压pgRouting 二、配置PostgreSQL的环境变量 三、编译源代码 四、测试 由于pgRouting依赖于PostGIS和PostgreSQL,所以阅读本文之前,务必请先阅读: Linux(centos)中使用源码安装PostgreSQL Linux(centos)中使用源码安装PostGIS 按照以上文章安装好PostgreSQL和PostGI...

不睡觉的怪叔叔的博客 2616

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

postgres安装01

 目标:   1.编译安装:postgres9.4   2.实现远程登录   3.安装postgis   环境配置     server:       postgres-test01-0001  172.16.10.214       postgres-test01-0002  172.16.10.160     CentOS Linux release 7.1.150...

weixin_30307921的博客 141

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Linux下PostgreSQL-12.0部署与优化全攻略

PostgreSQL作为支持ACID特性的开源关系型数据库,凭借其强大的扩展能力和稳定性,在企业级应用中占据重要地位。其核心原理基于多版本并发控制(MVCC)机制,通过WAL日志确保数据持久性。在Linux环境下部署时,需要关注系统依赖、编译参数优化和服务配置等关键技术环节。本文以CentOS 7.6系统为例,详细解析从源码编译安装到性能调优的全流程,特别针对shared_buffers和wal_level等关键参数给出优化建议。这些实践不仅适用于常规业务系统,也能满足高并发场景下的性能需求,是数据库管理员

weixin_30791095的博客 423

centos7 pg10.7 源码安装postgis2.5

centos7pg10.7源码安装postgis2.5 PostGIS部署 pre-requirement sudoyuminstalllibxml2libxml2-devgcc+gcc-c++-y geos http://trac.osgeo.org/geos sudomkdir/usr/local/geos-p sudochown...

se7en.shi的专栏 861

linux上离线安装PostgreSQL和插件PostGIS

由于公司业务需要安装PostgreSQL,需要部署在Linux服务器上。在实际生产环境中,服务器通常是不会连接外网的,基于官方文档和网上相关资料,总结出在离线环境下Linux服务器(CentOS7)以源码编译的方式安装PostgreSQL的详细步骤如下: 检查编译环境: 检查服务器上是否存在gcc-c++的环境,使用命令: 可以使用以下命令: gcc -v g++ -v 或rpm -qa | gr...

weixin_43865381的博客 5076

Linux源码安装postgis(包括SFCGAL,PGRouting)

Linux源码安装postgis(包括SFCGAL,PGRouting)

qq_22406173的博客 3215

postgresql + postgis安装

PostGIS安装PostGIS 是一个开源数据库拓展,它为 PostgreSQL 数据库增加了对地理空间数据的支持。PostGIS 使得空间数据的存储、查询和分析变得简单高效。PostGIS 是 Postgresql 的一个插件,本文将介绍 centos or openEuler 24.03 (LTS)平台下如何安装 PostGIS 拓展的一些步骤和注意的问题。在安装 PostGIS 前应该先安装好 Postgresql。

u013766836的博客 1324

阿里龙蜥centos8.4 postgis 源码安装

官网说明各依赖之间版本选择说是要依赖这几个GEOS, Proj, GDAL, LibXML2 and JSON-C。好吧就安一下,下面是我安装的源码包 LibXML2这个好像有了直接升级的。链接:提取码: m8gm。

qq_41294553的博客 771
上一篇: 一次由于SQL Server BUG引起的数据库AlwaysOn主从切换故障分析处理
下一篇: SQL Server Always ON 数据同步原理
听雪楼主.
博客等级 码龄10年 513粉丝 214原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值