首先,我安装了oracle_fdw和oracle即时客户端。其次,我设置了LD_LIBRARY_PATH和ORACLE_HOME (~/..bash_profile)。最后,我在oracle_fdw目录中运行了make命令。我安装了上面的oracle_fdw扩展,但是出现了一个错误。
# login
$ su - postgres
# set system path
$ sudo vim .bash_profile
export LD_LIBRARY_PATH=/oracle_fdw/instantclient_11_2
export ORACLE_HOME=/oracle_fdw/instantclient_11_2
export PG_CONFIG=/usr/pgsql-11/bin
PATH=$LD_LIBRARY_PATH:$PG_CONFIG:$PATH:$HOME/bin
export PATH
PGDATA=/var/lib/pgsql/11/data
export PGDATA
# PostgreSQL Server stop/start
$ cd /usr/pgsql-11/bin
$ ./pg_ctl stop
$ ./pg_ctl start
# make start
$ sudo make clean
$ sudo make
$ sudo make install
# psql login
$ pgsql -p 15432
postgres=# create extension oracle_fdw; 当前的错误是上一个版本所看到的作为主服务器的路径和当前用户正在查看的Postgresql路径是不同的。因此,我根据上一个版本将所有扩展和库复制到path中。但是,文件仍然使用相同的旧版本路径创建,库无法加载。
如下图所示,即使我试图更改--前缀设置,也会出现问题,因为./ oracle_fdw中不支持./配置。
$ ./configure --prefix=/usr/pgsql-11你能解决这个问题吗?
关于你的评论的细节。
# oracle_fdw build
$ sudo make install
/usr/pgsql-11/bin/mkdir -p '/usr/lib64/pgsql'
/usr/pgsql-11/bin/mkdir -p '/usr/share/pgsql/extension'
/usr/pgsql-11/bin/mkdir -p '/usr/share/pgsql/extension'
/usr/pgsql-11/bin/mkdir -p '/usr/share/doc/pgsql/extension'
/bin/sh /usr/lib64/pgsql/pgxs/src/makefiles/../../config/install-sh -c -m 755 oracle_fdw.so '/usr/lib64/pgsql/oracle_fdw.so'
/bin/sh /usr/lib64/pgsql/pgxs/src/makefiles/../../config/install-sh -c -m 644 ./oracle_fdw.control '/usr/share/pgsql/extension/'
/bin/sh /usr/lib64/pgsql/pgxs/src/makefiles/../../config/install-sh -c -m 644 ./oracle_fdw--1.1.sql ./oracle_fdw--1.0--1.1.sql '/usr/share/pgsql/extension/'
/bin/sh /usr/lib64/pgsql/pgxs/src/makefiles/../../config/install-sh -c -m 644 ./README.oracle_fdw '/usr/share/doc/pgsql/extension/'
#postgreSQL version : 11.15 (before version 9.2.24)
#oracle_fdw version : 1.5.0
#postgreSQL directory : /usr/bin OR /usr/pgsql-11/bin我希望安装相对于/usr/pgsql-11/bin而不是/usr/bin。但是,当前前缀设置为/usr,因此在所需的路径下无法安装.
发布于 2022-03-14 01:38:19
oracle_fdw版本: 2.4.0
如果使用最新版本的oracle_fdw运行make,则会发生以下错误。
$ sudo make clean
$ sudo make
gcc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -DLINUX_OOM_SCORE_ADJ=0 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -fPIC -I"/sdk/include" -I"/oci/include" -I"/rdbms/public" -I"/" -I/usr/include/oracle/21/client64 -I/usr/include/oracle/19.12/client64 -I/usr/include/oracle/19.12/client -I/usr/include/oracle/19.11/client64 -I/usr/include/oracle/19.11/client -I/usr/include/oracle/19.10/client64 -I/usr/include/oracle/19.10/client -I/usr/include/oracle/19.9/client -I/usr/include/oracle/19.9/client64 -I/usr/include/oracle/19.8/client -I/usr/include/oracle/19.8/client64 -I/usr/include/oracle/19.6/client -I/usr/include/oracle/19.6/client64 -I/usr/include/oracle/19.3/client -I/usr/include/oracle/19.3/client64 -I/usr/include/oracle/18.5/client -I/usr/include/oracle/18.5/client64 -I/usr/include/oracle/18.3/client -I/usr/include/oracle/18.3/client64 -I/usr/include/oracle/12.2/client -I/usr/include/oracle/12.2/client64 -I/usr/include/oracle/12.1/client -I/usr/include/oracle/12.1/client64 -I/usr/include/oracle/11.2/client -I/usr/include/oracle/11.2/client64 -I/usr/include/oracle/11.1/client -I/usr/include/oracle/11.1/client64 -I/usr/include/oracle/10.2.0.5/client -I/usr/include/oracle/10.2.0.5/client64 -I/usr/include/oracle/10.2.0.4/client -I/usr/include/oracle/10.2.0.4/client64 -I/usr/include/oracle/10.2.0.3/client -I/usr/include/oracle/10.2.0.3/client64 -I. -I. -I/usr/include/pgsql/server -I/usr/include/pgsql/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o oracle_fdw.o oracle_fdw.c
oracle_fdw.c:11:33: fatal error: access/htup_details.h: No such file or directory
#include "access/htup_details.h"
^
compilation terminated.
make: *** [oracle_fdw.o] Error 1由于默认前缀值是/usr,所以如果要更改安装路径,则需要更改前缀值。
如果我解决了当前的路径问题,它似乎工作得很好,但是即使我试图更改--前缀值,我也找不到可以更改的文件。
https://stackoverflow.com/questions/71432249
复制相似问题