我尝试按照documentation中提供的说明安装Apache AGE。但是,我只能从源代码安装它。当我尝试从软件包管理器安装Postgres 12并下载AGE的最新官方版本(版本1.1.0)时,我发现以下错误:
src/backend/age.c:20:10: fatal error: postgres.h: No such file or directory
20 | #include "postgres.h"
| ^~~~~~~~~~~~
compilation terminated.
make: *** [<builtin>: src/backend/age.o] Error 1
我正在使用Ubuntu 20.04.5 LTS,并且已经按照文档中的所有步骤操作,包括设置PG_CONFIG
变量。有人能告诉我我是否做错了什么吗?
5条答案
按热度按时间byqmnocz1#
是一个通常用于PostgreSQL PROJECTS的头文件。此头文件通常位于PostgreSQL安装的include目录中。要解决此错误,请确保postgress. h头文件位于正确的目录中,并且可由编译器访问。
你可以查一下
或
或尝试更新生成文件。
您可以从here学习更多内容
wbgh16ku2#
按照以下步骤在macbook pro m1或任何其他mac上正确安装age:
1.创建一个文件夹,用于***存储***所有源代码。在此文件夹中,您需要3个源代码,例如:(i)postgresql版本11/12源代码(ii)age源代码
1.(i)从此link下载postgresql并将其存储在该文件夹中。
1.(ii)从该link下载年龄并存储在该文件夹中
1.转到postgresql文件夹&打开终端上它&运行命令,如:
./configure --enable-debug --enable-cassert --prefix=$(pwd) CFLAGS="-glldb -ggdb -Og -g3 -fno-omit-frame-pointer"
make install
那两个推荐安装postgresql。
1.之后,转到年龄文件夹和打开终端上,并运行命令,如:
sudo make PG_CONFIG=~/Your_base_folder_path/postgresql/bin/pg_config install
make PG_CONFIG=~/Your_base_folder_path/postgresql/bin/pg_config installcheck
1.转到postgresql文件夹&打开终端上它&运行命令,如:
bin/initdb demo
1.转到postgresql文件夹内的演示文件夹,并打开postgresql. conf文件&我们需要在这里添加三个字,如:
port = 5432
/从端口号中删除#/#search_path = 'ag_catalog,"$user", public'
//正在将"ag_catalog"添加到此路径#shared_preload_libraries = 'age'
//在引号中添加年龄。1.现在启动服务器并创建名为demodb的数据库
bin/pg_ctl -D demo -l logfile start
bin/createdb demodb
bin/psql demodb
这就是过程。
nkoocmlb3#
如果您使用的是postgresql 12,那么请确保您使用的是AGE for PG 12. https://github.com/apache/age/releases/tag/PG12/v1.1.1-rc1版本
还要确保为PG_CONFIG提供了bin/pg_config命令的正确路径。
kx5bkwkv4#
请参考此文件以成功安装APACHE AGE with POSTGRES。这可能是因为您没有提供正确的AGE路径,请在APACHE AGE中使用MAKE命令时重新检查是否给予了PG-CONFIG路径
zrfyljdw5#
这可能是因为您的postgres.h路径不正确。它主要位于postgresql文件夹中的server文件夹中。您可以运行命令
pg_config
来检查您的server和postgresql路径(还可以运行命令sudo apt install postgresql-server-dev-XX
,其中XX
是您的postgresql版本,以安装postgresql-server-dev包),并可以检查postgres.h的位置(我在服务器文件夹内找到的),然后纠正路径,如果不是。在我的例子中,最初的路径是
而在pg_config中
INCLUDEDIR-SERVER
指出所以我移动了服务器文件夹,它工作了。你可以查看这个帖子了解更多信息:How to fix 'postgres.h' file not found problem?