我使用源代码安装了 postgres 版本 13
wget https://ftp.postgresql.org/pub/source/v13.5/postgresql-13.5.tar.gz && tar -xvf postgresql-13.5.tar.gz && rm -f postgresql-13.5.tar.gz
./configure --enable-debug --enable-cassert --prefix=$(pwd) CFLAGS="-ggdb -Og -fno-omit-frame-pointer"
make install
安装成功,我尝试使用
git clone https://github.com/apache/age.git
安装AGE
然后我切换到分支 1.3.0 使用
git switch release/PG13/1.3.0
在 AGE 目录中,我使用
sudo make PG_CONFIG=/home/chidera/bitnine/postgresql-13.5/src/bin/pg_config install
将 PG_CONFIG 环境变量设置为 pg_config 路径
我一直收到这个错误
make: pg_config: Not a directory make: *** No rule to make target 'installcheck'. Stop.
当我在安装 postgresql 的目录中运行此
find / -name pg_config
命令时。
我得到这个作为回应 ./home/chidera/bitnine/postgresql-13.5/src/bin/pg_config
我正在使用 WSL 和 ubuntu。
我通过运行您在问题中提供的命令在 Ubuntu 22.04 LTS 上复制了这个错误,有效的方法是从指向 PG_CONFIG 的目录中删除
src/
,如下所示:
sudo make PG_CONFIG=/home/chidera/bitnine/postgresql-13.5/bin/pg_config install
安装 PostgreSQL 后设置以下环境变量也是一个好习惯,用您的 PostgreSQL 安装目录替换
/path/to/postgres
:
export PATH=/path/to/postgres/bin:$PATH
export PGDATA=/path/to/postgres/bin/data
我认为如上所述,您当前为 PF-CONFIG 提供的路径存在问题。所以第一步是检查路径及其正确性,一种方法是运行以下命令
ls /home/chidera/bitnine/postgresql-13.5/src/bin/pg_config
这个的结果应该是 pg-config 文件。如果它没有返回,那么您将再次安装。
但是,如果问题仍然存在,请尝试按如下方式安装 AGE:
sudo make USE_PGXS=1 PG_CONFIG=/home/chidera/bitnine/postgresql 13.5/src/bin/pg_config install
希望对您有所帮助!
您需要从您的路径中删除
/pg_config
。
正确的命令应该是
sudo make PG_CONFIG=/home/chidera/bitnine/postgresql-13.5/src/bin
在安装 postgreSQL 之前运行
./configure
查询时,将基本安装目录指定为 pwd
(当前工作目录)。它会将您的 postgreSQL 安装在您的自定义目录中,即 pwd 因为您可能安装了多个 posgreSQL 实例。
./configure --prefix=$(pwd) --enable-cassert --enable-debug CFLAGS="-glldb -ggdb -Og -g3 -fno-omit-frame-pointer"
重复接下来的安装步骤。
我在安装postgresql的时候也遇到了这个错误,我也是用WSL Ubuntu的。
首先,我建议使用删除所有以前的安装
make clean
然后使用重新配置postgresql
./configure --prefix=$(pwd) --enable-debug --enable-cassert
--prefix 指定要安装 postgresql 的位置,在这种情况下它将在当前工作目录中。
然后重新安装postgresql
gmake; gmake install;
安装后你应该在 pwd 中看到
bin
目录,pg_config 文件在 bin
目录而不是 src/bin
目录。
然后您可以尝试从您的 Age 目录再次运行 PG_CONFIG,这次尝试使用相对路径。例如;
sudo make PG_CONFIG=../postgresql-13.5/bin/pg_config install
如果postgresql和Age在同一个目录下。 我希望这会有所帮助。
问题似乎出在未正确设置 PG_CONFIG 环境变量上。错误消息“make: pg_config: Not a directory make: *** No rule to make target 'installcheck'”表明 make 正在尝试在目录中查找 pg_config,但它没有在那里找到它。
您可以尝试如下设置PG_CONFIG环境变量:
export PG_CONFIG=/home/chidera/bitnine/postgresql-13.5/src/bin/pg_config
然后再次运行make命令。这应该正确设置环境变量并允许 make 找到 pg_config.
或者,您可以尝试在 make 命令中使用 pg_config 的完整路径:
sudo make PG_CONFIG=/home/chidera/bitnine/postgresql-13.5/src/bin/pg_config/pg_config install
确保包括 pg_config 可执行文件的完整路径,而不仅仅是它所在的目录。
如果这些解决方案都不起作用,您可以尝试检查 pg_config 文件是否存在于 PG_CONFIG 环境变量指定的目录中。您可以通过运行以下命令来执行此操作:
ls /home/chidera/bitnine/postgresql-13.5/src/bin/pg_config
如果文件不存在,您可能需要重新安装PostgreSQL并重试。