Как включить расширение pg_audit в postgresql 11 - PullRequest
0 голосов
/ 10 февраля 2020

Я много пробовал, выполняя поиск goggle, чтобы решить его. Но не могу скомпилировать в соответствии с документацией ниже GitHub.

Pg_Audit Extention

ниже - env. для моего postgres пользователя.

export PGHOME=/var/lib/pgsql/
export PGDATA=/var/lib/pgsql/11/data/
export PGDATABASE=postgres
export PGUSER=postgres
export PGPORT=xxxx
export PGLOCALEDIR=/usr/pgsql-11/share/ 

Ниже приведены ШАГИ. Я использую для установки / компиляции.

-bash-4.2$ pwd
/var/lib/pgsql
-bash-4.2$ cd pgaudit-REL_11_STABLE/
-bash-4.2$ pwd
/var/lib/pgsql/pgaudit-REL_11_STABLE
-bash-4.2$ ll
total 528
drwx------. 2 postgres postgres     25 May 23  2019 expected
-rw-------. 1 postgres postgres    171 May 23  2019 LICENSE
-rw-------. 1 postgres postgres    548 May 23  2019 Makefile
-rw-------. 1 postgres postgres    175 May 23  2019 pgaudit--1.3--1.3.1.sql
-rw-------. 1 postgres postgres    615 May 23  2019 pgaudit--1.3.1.sql
-rw-------. 1 postgres postgres  63517 May 23  2019 pgaudit.c
-rw-------. 1 postgres postgres     35 May 23  2019 pgaudit.conf
-rw-------. 1 postgres postgres    145 May 23  2019 pgaudit.control
-rw-------. 1 postgres postgres 266312 Feb  9 11:48 pgaudit.o
-rwx------. 1 postgres postgres 157624 Feb  9 11:48 pgaudit.so
-rw-------. 1 postgres postgres  17312 May 23  2019 README.md
drwx------. 2 postgres postgres     25 May 23  2019 sql
drwx------. 2 postgres postgres     25 May 23  2019 test
-bash-4.2$

-bash-4.2$ make check USE_PGXS=1
"make check" is not supported.
Do "make install", then "make installcheck" instead.
-bash-4.2$ make install
/opt/rh/llvm-toolset-7/root/usr/bin/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -O2  -I. -I./ -I/usr/pgsql-11/include/server -I/usr/pgsql-11/in
clude/internal  -D_GNU_SOURCE -I/usr/include/libxml2  -I/usr/include -flto=thin -emit-llvm -c -o pgaudit.bc pgaudit.c
make: /opt/rh/llvm-toolset-7/root/usr/bin/clang: Command not found
make: *** [pgaudit.bc] Error 127
-bash-4.2$

Я также скопировал pg_audit.so

scp -r /var/lib/pgsql/pgaudit-REL_11_STABLE/pgaudit.so /usr/pgsql-11/share/contrib/
 cd /usr/pgsql-11/share/contrib/

/usr/pgsql-11/share/contrib
-bash-4.2$ ll
total 176
-rwx------. 1 root root 157624 Feb 10 07:43 pgaudit.so
-rw-------. 1 root root  14875 Feb 10 08:10 pgaudit.sql
-rw-r--r--. 1 root root   1644 Aug  7  2019 sepgsql.sql
-bash-4.2$ pwd
/usr/pgsql-11/share/contrib

также, когда я использую приведенную ниже команду, получая ошибку ниже.

-bash-4.2$ make install PGUSER=postgres USE_PGXS=1 PATH=/usr/pgsql-11/bin:{PATH}
/opt/rh/llvm-toolset-7/root/usr/bin/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -O2  -I. -I./ -I/usr/pgsql-11/include/server -I/usr/pgsql-11/in
clude/internal  -D_GNU_SOURCE -I/usr/include/libxml2  -I/usr/include -flto=thin -emit-llvm -c -o pgaudit.bc pgaudit.c
make: /opt/rh/llvm-toolset-7/root/usr/bin/clang: Command not found
make: *** [pgaudit.bc] Error 127 

Мне не хватает чего-то связанного с копированием или настройкой env. Пожалуйста, помогите мне.

Редактировать: I go через предложенный Laurenz Albe в ответе ниже. теперь получаю ошибку ниже.

[root@ip- pgaudit-REL_11_STABLE]# /usr/bin/make install PGUSER=postgres USE_PGXS=1 with_llvm=no make -e PATH=/usr/pgsql-11/bin:{PATH}
/usr/bin/mkdir -p '/usr/lib64/pgsql'
/usr/bin/mkdir -p '/usr/share/pgsql/extension'
/usr/bin/mkdir -p '/usr/share/pgsql/extension'
/bin/sh /usr/lib64/pgsql/pgxs/src/makefiles/../../config/install-sh -c -m 755  pgaudit.so '/usr/lib64/pgsql/pgaudit.so'
/usr/lib64/pgsql/pgxs/src/makefiles/../../config/install-sh: line 75: uname: command not found
/usr/lib64/pgsql/pgxs/src/makefiles/../../config/install-sh: line 326: sed: command not found
/usr/lib64/pgsql/pgxs/src/makefiles/../../config/install-sh: line 461: exec: cp: not found
/usr/lib64/pgsql/pgxs/src/makefiles/../../config/install-sh: line 1: rm: command not found
make: *** [install-lib-shared] Error 1 

Я проверил в / usr / bin все необходимые утилиты.

[root@ip- pgaudit-REL_11_STABLE]# ls -lrth /usr/bin/ | grep uname
lrwxrwxrwx. 1 root root        7 Jun 18  2019 uname26 -> setarch
-rwxr-xr-x. 1 root root      29K Jan 23 19:07 uname
[root@ip pgaudit-REL_11_STABLE]# ls -lrth /usr/bin/ | grep sed
-rwxr-xr-x. 1 root root      75K Aug  1  2018 sed
-rwxr-xr-x. 2 root root      53K Feb 19  2019 psed
[root@ip pgaudit-REL_11_STABLE]# ls -lrth /usr/bin/ | grep exec
-rwxr-xr-x. 1 root root      16K Aug  2  2018 msgexec
[root@ip pgaudit-REL_11_STABLE]# ls -lrth /usr/bin/ | grep rm
-rwxr-xr-x. 1 root root      41K Jan 23 19:07 rmdir

Теперь ошибка ниже. Я действительно не могу понять, какую ошибку хочу сказать. пожалуйста помогите.

[root@ pgaudit-REL_11_STABLE]# make install PGUSER=postgres USE_PGXS=1 PATH=/usr/pgsql-11/bin:$PATH with_llvm=no make -e
/usr/bin/mkdir -p '/usr/lib64/pgsql'
/usr/bin/mkdir -p '/usr/share/pgsql/extension'
/usr/bin/mkdir -p '/usr/share/pgsql/extension'
/bin/sh /usr/lib64/pgsql/pgxs/src/makefiles/../../config/install-sh -c -m 755  pgaudit.so '/usr/lib64/pgsql/pgaudit.so'
/bin/sh /usr/lib64/pgsql/pgxs/src/makefiles/../../config/install-sh -c -m 644 ./pgaudit.control '/usr/share/pgsql/extension/'
/bin/sh /usr/lib64/pgsql/pgxs/src/makefiles/../../config/install-sh -c -m 644 ./pgaudit--1.3.1.sql ./pgaudit--1.3--1.3.1.sql  '/usr/share/pgsql/extension/'
make: *** No rule to make target `make'.  Stop.
[root@ pgaudit-REL_11_STABLE]#

1 Ответ

1 голос
/ 10 февраля 2020

Вам следует установить clang, чтобы PGXS мог собрать байт-код.

Если вам не нужен JIT, обходной путь - это построить с помощью

with_llvm=no make -e

Для добавления /usr/pgsql-11/bin до PATH, пробег

PATH=/usr/pgsql-11/bin:$PATH with_llvm=no make -e
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...