PostgreSQL 编译 sysbench 报fatal error: libpq-fe.h 错误解决方法
作者:
dave
1 错误现象
在pg 14.6 的平台上编译sysbench报错:
make[2]: Leaving directory `/data/postgres/sysbench-master/third_party/concurrency_kit/tmp/ck'
make[1]: Leaving directory `/data/postgres/sysbench-master/third_party/concurrency_kit'
Making all in src
make[1]: Entering directory `/data/postgres/sysbench-master/src'
Making all in drivers
make[2]: Entering directory `/data/postgres/sysbench-master/src/drivers'
Making all in pgsql
make[3]: Entering directory `/data/postgres/sysbench-master/src/drivers/pgsql'
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../../../config -g -I/usr/pgsql-14/include -I../../../src -I/data/postgres/sysbench-master/third_party/luajit/inc -I/data/postgres/sysbench-master/third_party/concurrency_kit/include -D_GNU_SOURCE -Wall -Wextra -Wpointer-arith -Wbad-function-cast -Wstrict-prototypes -Wnested-externs -Wno-format-zero-length -Wundef -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wcast-align -Wvla -pthread -O3 -funroll-loops -MT libsbpgsql_a-drv_pgsql.o -MD -MP -MF .deps/libsbpgsql_a-drv_pgsql.Tpo -c -o libsbpgsql_a-drv_pgsql.o `test -f 'drv_pgsql.c' || echo './'`drv_pgsql.c
drv_pgsql.c:30:22: fatal error: libpq-fe.h: No such file or directory
#include <libpq-fe.h>
^
compilation terminated.
make[3]: *** [libsbpgsql_a-drv_pgsql.o] Error 1
make[3]: Leaving directory `/data/postgres/sysbench-master/src/drivers/pgsql'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/data/postgres/sysbench-master/src/drivers'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/data/postgres/sysbench-master/src'
make: *** [all-recursive] Error 1
2 解决方法
该问题的解决方法是安装:postgresql-devel。
PostgreSQL 学习笔记(3) — PG 单实例安装手册
https://www.cndba.cn/dave/article/116374
因为我们之前的PG是通过yum 安装的,没有安装该包。
我们安装的是PG 14.6. 但安装对应的版本缺报错:
[dave@www.cndba.cn yum.repos.d]# yum search postgresql14
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
dave 5230/5230
============================================================ N/S matched: postgresql14 ============================================================
postgresql14.x86_64 : PostgreSQL client programs and libraries
postgresql14-contrib.x86_64 : Contributed source and binaries distributed with PostgreSQL
postgresql14-devel.x86_64 : PostgreSQL development header files and libraries
postgresql14-docs.x86_64 : Extra documentation for PostgreSQL
postgresql14-libs.x86_64 : The shared libraries required for any PostgreSQL clients
postgresql14-llvmjit.x86_64 : Just-in-time compilation support for PostgreSQL
postgresql14-odbc.x86_64 : PostgreSQL ODBC driver
postgresql14-plperl.x86_64 : The Perl procedural language for PostgreSQL
postgresql14-plpython3.x86_64 : The Python3 procedural language for PostgreSQL
postgresql14-pltcl.x86_64 : The Tcl procedural language for PostgreSQL
postgresql14-server.x86_64 : The programs needed to create and run a PostgreSQL server
postgresql14-tcl.x86_64 : A Tcl client library for PostgreSQL
postgresql14-test.x86_64 : The test suite distributed with PostgreSQL
Name and summary matches only, use "search all" for everything.
软件版本不兼容:
[dave@www.cndba.cn yum.repos.d]# yum install postgresql14-devel.x86_64 -y
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
dave | 2.8 kB 00:00:00
epel/x86_64/metalink | 5.5 kB 00:00:00
epel | 4.7 kB 00:00:00
pgdg-common/7Server/x86_64/signature | 198 B 00:00:00
pgdg-common/7Server/x86_64/signature | 2.9 kB 00:00:00 !!!
pgdg10/7Server/x86_64/signature | 198 B 00:00:00
pgdg10/7Server/x86_64/signature | 3.6 kB 00:00:00 !!!
pgdg11/7Server/x86_64/signature | 198 B 00:00:00
pgdg11/7Server/x86_64/signature | 3.6 kB 00:00:00 !!!
pgdg12/7Server/x86_64/signature | 198 B 00:00:00
pgdg12/7Server/x86_64/signature | 3.6 kB 00:00:00 !!!
pgdg13/7Server/x86_64/signature | 198 B 00:00:00
pgdg13/7Server/x86_64/signature | 3.6 kB 00:00:00 !!!
pgdg14/7Server/x86_64/signature | 198 B 00:00:00
pgdg14/7Server/x86_64/signature | 3.6 kB 00:00:00 !!!
pgdg15/7Server/x86_64/signature | 198 B 00:00:00
pgdg15/7Server/x86_64/signature | 3.6 kB 00:00:00 !!!
(1/18): dave/group | 628 kB 00:00:00
(2/18): dave/primary | 2.1 MB 00:00:00
(3/18): epel/x86_64/group_gz | 98 kB 00:00:00
(4/18): epel/x86_64/updateinfo | 1.0 MB 00:00:00
(5/18): pgdg11/7Server/x86_64/group_gz | 245 B 00:00:01
(6/18): pgdg-common/7Server/x86_64/primary_db | 165 kB 00:00:01
(7/18): pgdg10/7Server/x86_64/group_gz | 245 B 00:00:01
(8/18): pgdg12/7Server/x86_64/group_gz | 245 B 00:00:00
(9/18): pgdg13/7Server/x86_64/group_gz | 246 B 00:00:00
(10/18): pgdg13/7Server/x86_64/primary_db | 250 kB 00:00:01
(11/18): pgdg14/7Server/x86_64/group_gz | 244 B 00:00:00
(12/18): pgdg14/7Server/x86_64/primary_db | 162 kB 00:00:01
(13/18): pgdg15/7Server/x86_64/group_gz | 246 B 00:00:00
(14/18): pgdg15/7Server/x86_64/primary_db | 73 kB 00:00:01
(15/18): pgdg11/7Server/x86_64/primary_db | 454 kB 00:00:05
(16/18): pgdg12/7Server/x86_64/primary_db | 340 kB 00:00:12
(17/18): pgdg10/7Server/x86_64/primary_db | 400 kB 00:00:18
epel/x86_64/primary_db FAILED
https://mirror.nevacloud.com/fedora/fedora-epel/7/x86_64/repodata/3dd50b7963def8e8bdaeb2f64f9ac466884d9b7fc598c7c0ce597a69ea7ee6e8-primary.sqlite.bz2: [Errno 12] Timeout on https://mirror.nevacloud.com/fedora/fedora-epel/7/x86_64/repodata/3dd50b7963def8e8bdaeb2f64f9ac466884d9b7fc598c7c0ce597a69ea7ee6e8-primary.sqlite.bz2: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds')
Trying other mirror.
(18/18): epel/x86_64/primary_db | 7.0 MB 00:00:12
dave 5230/5230
Resolving Dependencies
--> Running transaction check
---> Package postgresql14-devel.x86_64 0:14.6-1PGDG.rhel7 will be installed
--> Processing Dependency: llvm5.0-devel >= 5.0 for package: postgresql14-devel-14.6-1PGDG.rhel7.x86_64
--> Processing Dependency: llvm-toolset-7-clang >= 4.0.1 for package: postgresql14-devel-14.6-1PGDG.rhel7.x86_64
--> Processing Dependency: libicu-devel for package: postgresql14-devel-14.6-1PGDG.rhel7.x86_64
--> Running transaction check
---> Package libicu-devel.x86_64 0:50.2-4.el7_7 will be installed
---> Package llvm5.0-devel.x86_64 0:5.0.1-7.el7 will be installed
--> Processing Dependency: llvm5.0(x86-64) = 5.0.1-7.el7 for package: llvm5.0-devel-5.0.1-7.el7.x86_64
--> Processing Dependency: libedit-devel for package: llvm5.0-devel-5.0.1-7.el7.x86_64
--> Processing Dependency: libLLVM-5.0.so()(64bit) for package: llvm5.0-devel-5.0.1-7.el7.x86_64
--> Processing Dependency: libLTO.so.5()(64bit) for package: llvm5.0-devel-5.0.1-7.el7.x86_64
---> Package postgresql14-devel.x86_64 0:14.6-1PGDG.rhel7 will be installed
--> Processing Dependency: llvm-toolset-7-clang >= 4.0.1 for package: postgresql14-devel-14.6-1PGDG.rhel7.x86_64
--> Running transaction check
---> Package llvm5.0.x86_64 0:5.0.1-7.el7 will be installed
---> Package llvm5.0-devel.x86_64 0:5.0.1-7.el7 will be installed
--> Processing Dependency: libedit-devel for package: llvm5.0-devel-5.0.1-7.el7.x86_64
---> Package llvm5.0-libs.x86_64 0:5.0.1-7.el7 will be installed
---> Package postgresql14-devel.x86_64 0:14.6-1PGDG.rhel7 will be installed
--> Processing Dependency: llvm-toolset-7-clang >= 4.0.1 for package: postgresql14-devel-14.6-1PGDG.rhel7.x86_64
--> Finished Dependency Resolution
Error: Package: llvm5.0-devel-5.0.1-7.el7.x86_64 (epel)
Requires: libedit-devel
Error: Package: postgresql14-devel-14.6-1PGDG.rhel7.x86_64 (pgdg14)
Requires: llvm-toolset-7-clang >= 4.0.1
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
[dave@www.cndba.cn yum.repos.d]# y
退而求其次,安装了一个低版本的postgresql-devel:
[dave@www.cndba.cn yum.repos.d]# yum install postgresql-devel
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Resolving Dependencies
--> Running transaction check
---> Package postgresql-devel.x86_64 0:9.2.24-4.el7_8 will be installed
--> Processing Dependency: postgresql-libs(x86-64) = 9.2.24-4.el7_8 for package: postgresql-devel-9.2.24-4.el7_8.x86_64
--> Processing Dependency: postgresql(x86-64) = 9.2.24-4.el7_8 for package: postgresql-devel-9.2.24-4.el7_8.x86_64
--> Running transaction check
---> Package postgresql.x86_64 0:9.2.24-4.el7_8 will be installed
---> Package postgresql-libs.x86_64 0:9.2.24-4.el7_8 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===================================================================================================================================================
Package Arch Version Repository Size
===================================================================================================================================================
Installing:
postgresql-devel x86_64 9.2.24-4.el7_8 dave 952 k
Installing for dependencies:
postgresql x86_64 9.2.24-4.el7_8 dave 3.0 M
postgresql-libs x86_64 9.2.24-4.el7_8 dave 234 k
Transaction Summary
===================================================================================================================================================
Install 1 Package (+2 Dependent packages)
Total download size: 4.2 M
Installed size: 21 M
Is this ok [y/d/N]: y
Downloading packages:
---------------------------------------------------------------------------------------------------------------------------------------------------
Total 137 MB/s | 4.2 MB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : postgresql-libs-9.2.24-4.el7_8.x86_64 1/3
Installing : postgresql-9.2.24-4.el7_8.x86_64 2/3
Installing : postgresql-devel-9.2.24-4.el7_8.x86_64 3/3
Verifying : postgresql-9.2.24-4.el7_8.x86_64 1/3
Verifying : postgresql-devel-9.2.24-4.el7_8.x86_64 2/3
Verifying : postgresql-libs-9.2.24-4.el7_8.x86_64 3/3
Installed:
postgresql-devel.x86_64 0:9.2.24-4.el7_8
Dependency Installed:
postgresql.x86_64 0:9.2.24-4.el7_8 postgresql-libs.x86_64 0:9.2.24-4.el7_8
Complete!
[dave@www.cndba.cn yum.repos.d]#
安装之后重新编译sysbench,问题解决:
[dave@www.cndba.cn sysbench-master]# sysbench --version
sysbench 1.1.0
[dave@www.cndba.cn sysbench-master]#
版权声明:本文为博主原创文章,未经博主允许不得转载。