安装apacheage时出错:无法创建常规文件“/usr/lib/postgresql/12/lib/age.so”:权限被拒绝

0qx6xfy6  于 2023-03-22  发布在  PostgreSQL
关注(0)|答案(4)|浏览(160)

我试图在documentation的帮助下安装apacheage。但我遇到了与question中所问的相同的问题。所以,我跟随this answer到上述问题。
我得到的所有错误都解决了,但我现在得到了这个新的错误。我尝试使用sudo,但这个错误仍然是一样的。

/usr/bin/install -c -m 755  age.so '/usr/lib/postgresql/12/lib/age.so'
/usr/bin/install: cannot create regular file '/usr/lib/postgresql/12/lib/age.so': Permission denied
make: *** [/usr/lib/postgresql/12/lib/pgxs/src/makefiles/../../src/Makefile.shlib:487: install-lib-shared] Error 1

我使用Ubuntu 22.04,并使用sudo apt install postgresql-server-dev-12安装了postgresql。
我尝试安装使用主分支分支,但我得到了以下错误。

src/backend/catalog/ag_graph.c:67:15: error: void value not ignored as it ought to be
   67 |     graph_oid = CatalogTupleInsert(ag_graph, tuple);
      |               ^
make: *** [<builtin>: src/backend/catalog/ag_graph.o] Error 1
ergxz8rk

ergxz8rk1#

如果你正在安装Apache AGE for PostgreSQL 12,请确保从latest stable release安装,并避免使用master分支。为此,只需使用以下命令:git checkout release/PG12/1.1.0。然后,您可以从此分支安装Apache AGE。

u7up0aaq

u7up0aaq2#

你得到的第二个错误是因为AGE和PostgreSQL之间的版本不兼容。请尝试使用两者的兼容版本重新安装。
对于PostgreSQL 12,应该使用AGE Alpha分支,而其他分支与PostgreSQL 11兼容。
兼容postgres 12的AGE分支的链接:https://github.com/apache/age/tree/AGE_PG12.1.0_ALPHA

exdqitrt

exdqitrt3#

要修复“Permission denied”错误,您需要向尝试安装扩展的目录授予写权限。您可以通过运行以下命令来执行此操作:

sudo chmod -R u+w /usr/lib/postgresql/12

注意postgresql-server-dev-12只安装头文件,而不是PostgreSQL本身。你不再需要这些头文件,因为最新版本的PostgreSQL在标准安装中包含了这些头文件。
请按照以下指南安装PostgreSQL和Apache AGE:
Apache Age Installation

axr492tv

axr492tv4#

您需要提供对目录的写入/更新权限。为此,请使用目录路径执行以下命令:

sudo chmod +w /path/to/your/directory

这个命令给予写权限。也相应地替换到你的目录的路径。

相关问题