首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Postgresql编译插件问题

Postgresql编译插件问题
EN

Database Administration用户
提问于 2016-04-26 16:20:25
回答 1查看 129关注 0票数 1

我正在尝试为postgresql插件构建deb包,但我得到了以下错误:

代码语言:javascript
复制
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -I/usr/include/mit-krb5 -fPIC -pie -DLINUX_OOM_SCORE_ADJ=0 -fno-omit-frame-pointer -fpic -I/usr/include/postgresql -I. -I./ -I/usr/include/postgresql/9.4/server -I/usr/include/postgresql/internal -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -I/usr/include/libxml2  -I/usr/include/tcl8.6  -c -o pg_resetxlog.o pg_resetxlog.c
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -I/usr/include/mit-krb5 -fPIC -pie -DLINUX_OOM_SCORE_ADJ=0 -fno-omit-frame-pointer -fpic pg_resetxlog.o -L/usr/lib/x86_64-linux-gnu -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -L/usr/lib/mit-krb5 -L/usr/lib/x86_64-linux-gnu/mit-krb5  -Wl,--as-needed  -L/usr/lib/x86_64-linux-gnu -lpgcommon -lpgport -L/usr/lib/x86_64-linux-gnu -lpq -lpgcommon -lpgport -lselinux -lxslt -lxml2 -lpam -lssl -lcrypto -lgssapi_krb5 -lz -ledit -lrt -lcrypt -ldl -lm  -o bdr_resetxlog
pg_resetxlog.o: In function `memcpy':
/usr/include/x86_64-linux-gnu/bits/string3.h:51: undefined reference to `pg_crc32_table'
pg_resetxlog.o: In function `RewriteControlFile':
/var/lib/postgresql/src/bdr-plugin/pg_resetxlog.c:955: undefined reference to `pg_crc32_table'
pg_resetxlog.o: In function `PrintControlValues':
/var/lib/postgresql/src/bdr-plugin/pg_resetxlog.c:749: undefined reference to `pg_crc32_table'
collect2: error: ld returned 1 exit status
make: *** [bdr_resetxlog] Error 1

为了构建这个deb包,我使用以下命令:

代码语言:javascript
复制
cd ~/src/
git clone -b bdr-plugin/next git://git.postgresql.org/git/2ndquadrant_bdr.git bdr-plugin
git clone -b debian/bdr https://github.com/2ndQuadrant/bdr-packaging bdr-packaging
cp -rfv bdr-packaging/debian bdr-plugin/debian
cd bdr-plugin
dpkg-buildpackage -b -rfakeroot -us -uc

关于依赖项,已安装了所有postgresql服务器,并且所有postgresql看起来都正常:

代码语言:javascript
复制
# dpkg -l | grep postgresq | grep dev
ii  postgresql-bdr-server-dev-9.4       9.4.5-2trusty                    amd64        development files for PostgreSQL-BDR 9.4 server-side programming
ii  postgresql-server-dev-9.1           9.1.21-1.pgdg14.04+1             amd64        development files for PostgreSQL 9.1 server-side programming
ii  postgresql-server-dev-9.2           9.2.16-1.pgdg14.04+1             amd64        development files for PostgreSQL 9.2 server-side programming
ii  postgresql-server-dev-9.3           9.3.12-1.pgdg14.04+1             amd64        development files for PostgreSQL 9.3 server-side programming
ii  postgresql-server-dev-9.5           9.5.2-1.pgdg14.04+1              amd64        development files for PostgreSQL 9.5 server-side programming
ii  postgresql-server-dev-all           173.pgdg14.04+1                  all          extension build tool for multiple PostgreSQL versions

知道我为什么会犯这个错误吗?

问候

EN

回答 1

Database Administration用户

发布于 2016-08-09 07:18:48

造成这个问题的原因是Debian/Ubuntu升级postgresql-server-dev-all要求postgresql-server-dev-9.5,它反过来需要libpq-dev 9.5。

Libpq9.5中的一些变化打破了绑定在BDR中的pg_resetxlogpg_dump的补丁版本。

BDR 1.0增加了兼容性更改来解决这一问题,但是没有真正的方法可以解决这样的问题:当Debian、Ubuntu或PGDG更新libpq时,它可能会破坏以前工作的包。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/136636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档