postgresql 错误'postgres.h:从最新版本安装Apache AGE时“无此类文件或目录

nwnhqdif  于 2023-03-01  发布在  PostgreSQL
关注(0)|答案(5)|浏览(312)

我尝试按照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变量。有人能告诉我我是否做错了什么吗?

byqmnocz

byqmnocz1#

postgres.h

是一个通常用于PostgreSQL PROJECTS的头文件。此头文件通常位于PostgreSQL安装的include目录中。要解决此错误,请确保postgress. h头文件位于正确的目录中,并且可由编译器访问。
你可以查一下

postgres-V

pg_config --version

或尝试更新生成文件。
您可以从here学习更多内容

wbgh16ku

wbgh16ku2#

按照以下步骤在macbook pro m1或任何其他mac上正确安装age:
1.创建一个文件夹,用于***存储***所有源代码。在此文件夹中,您需要3个源代码,例如:(i)postgresql版本11/12源代码(ii)age源代码
1.(i)从此link下载postgresql并将其存储在该文件夹中。
1.(ii)从该link下载年龄并存储在该文件夹中
1.转到postgresql文件夹&打开终端上它&运行命令,如:

  1. ./configure --enable-debug --enable-cassert --prefix=$(pwd) CFLAGS="-glldb -ggdb -Og -g3 -fno-omit-frame-pointer"
  2. make install
    那两个推荐安装postgresql。
    1.之后,转到年龄文件夹和打开终端上,并运行命令,如:
  3. sudo make PG_CONFIG=~/Your_base_folder_path/postgresql/bin/pg_config install
  4. make PG_CONFIG=~/Your_base_folder_path/postgresql/bin/pg_config installcheck
    1.转到postgresql文件夹&打开终端上它&运行命令,如:
    bin/initdb demo
    1.转到postgresql文件夹内的演示文件夹,并打开postgresql. conf文件&我们需要在这里添加三个字,如:
  5. port = 5432/从端口号中删除#/
  6. #search_path = 'ag_catalog,"$user", public'//正在将"ag_catalog"添加到此路径
  7. #shared_preload_libraries = 'age'//在引号中添加年龄。
    1.现在启动服务器并创建名为demodb的数据库
    bin/pg_ctl -D demo -l logfile start
    bin/createdb demodb
  8. AGE添加到pg成功,现在可以进入pg_sql控制台开始测试了。
    bin/psql demodb
    这就是过程。
nkoocmlb

nkoocmlb3#

如果您使用的是postgresql 12,那么请确保您使用的是AGE for PG 12. https://github.com/apache/age/releases/tag/PG12/v1.1.1-rc1版本
还要确保为PG_CONFIG提供了bin/pg_config命令的正确路径。

kx5bkwkv

kx5bkwkv4#

请参考此文件以成功安装APACHE AGE with POSTGRES。这可能是因为您没有提供正确的AGE路径,请在APACHE AGE中使用MAKE命令时重新检查是否给予了PG-CONFIG路径

zrfyljdw

zrfyljdw5#

这可能是因为您的postgres.h路径不正确。它主要位于postgresql文件夹中的server文件夹中。您可以运行命令pg_config来检查您的server和postgresql路径(还可以运行命令sudo apt install postgresql-server-dev-XX,其中XX是您的postgresql版本,以安装postgresql-server-dev包),并可以检查postgres.h的位置(我在服务器文件夹内找到的),然后纠正路径,如果不是。
在我的例子中,最初的路径是

/usr/include/postgresql/12/server/postgres.h

而在pg_config中INCLUDEDIR-SERVER指出

/usr/include/postgresql/server

所以我移动了服务器文件夹,它工作了。你可以查看这个帖子了解更多信息:How to fix 'postgres.h' file not found problem?

相关问题