On 05/12/2017 08:13 AM, Martin Goodson wrote:
Hello.
Yesterday I had problems getting repmgr installed, since our PostgreSQL
installs to a non-standard place, and doesn't use any postgresql
repositories/packages. The responses I got generally seemed to be 'you
need to compile it'.
Time for round 2, trying to compile it with our own environment. Many
apologies if I'm doing something obviously stupid, I have *very little*
experience with compiling things on linux.
To speed things up I'm doing my attempted compiles on my laptop instead
of our servers, since I can install packages etc as required myself
without having to wait on our tech support team. I want to verify that I
can get repmgr up and running on as minimal a test server as I can
before rolling it out to slightly more hefty boxes :)
I'm running ubuntu server 17.04. The EnterpriseDB installer was used to
quickly install a quick test PostgreSQL db, "testdb" under owning userid
"testdb". Here is the output of pg_config:
Already installed for 9.6 - had to install it for pg_config.
That could be a problem as that is what the make is using below. That
means it is working on the DEB installed locations not the EDB ones. You
sure there is not a pg_config in the EDB install?
So I've already got installed the packages that PACKAGES.MD recommends,
I guess. Attempts to compile repmgr are now failing with:
(In the directory with the expanded tar file):
testdb@repm:/postgresql/software/repmgr/repmgr-3.3.1$ sudo make
USE_PGXS=1 install
gcc -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute
-Wformat-security -fno-strict-aliasing -fwrapv
-fexcess-precision=standard -g -g -O2
-fdebug-prefix-map=/build/postgresql-9.6-jQU1kx/postgresql-9.6-9.6.2=.
-fstack-protector-strong -Wformat -Werror=format-security
-I/usr/include/mit-krb5 -fPIC -pie -fno-omit-frame-pointer
-I/usr/include/postgresql -I. -I./ -I/usr/include/postgresql/9.6/server
-I/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2
-D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include/tcl8.6 -c -o
dbutils.o dbutils.c
gcc -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute
-Wformat-security -fno-strict-aliasing -fwrapv
-fexcess-precision=standard -g -g -O2
-fdebug-prefix-map=/build/postgresql-9.6-jQU1kx/postgresql-9.6-9.6.2=.
-fstack-protector-strong -Wformat -Werror=format-security
-I/usr/include/mit-krb5 -fPIC -pie -fno-omit-frame-pointer
-I/usr/include/postgresql -I. -I./ -I/usr/include/postgresql/9.6/server
-I/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2
-D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include/tcl8.6 -c -o
config.o config.c
gcc -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute
-Wformat-security -fno-strict-aliasing -fwrapv
-fexcess-precision=standard -g -g -O2
-fdebug-prefix-map=/build/postgresql-9.6-jQU1kx/postgresql-9.6-9.6.2=.
-fstack-protector-strong -Wformat -Werror=format-security
-I/usr/include/mit-krb5 -fPIC -pie -fno-omit-frame-pointer
-I/usr/include/postgresql -I. -I./ -I/usr/include/postgresql/9.6/server
-I/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2
-D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include/tcl8.6 -c -o
repmgrd.o repmgrd.c
gcc -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute
-Wformat-security -fno-strict-aliasing -fwrapv
-fexcess-precision=standard -g -g -O2
-fdebug-prefix-map=/build/postgresql-9.6-jQU1kx/postgresql-9.6-9.6.2=.
-fstack-protector-strong -Wformat -Werror=format-security
-I/usr/include/mit-krb5 -fPIC -pie -fno-omit-frame-pointer
-I/usr/include/postgresql -I. -I./ -I/usr/include/postgresql/9.6/server
-I/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2
-D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include/tcl8.6 -c -o log.o
log.c
gcc -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute
-Wformat-security -fno-strict-aliasing -fwrapv
-fexcess-precision=standard -g -g -O2
-fdebug-prefix-map=/build/postgresql-9.6-jQU1kx/postgresql-9.6-9.6.2=.
-fstack-protector-strong -Wformat -Werror=format-security
-I/usr/include/mit-krb5 -fPIC -pie -fno-omit-frame-pointer
-I/usr/include/postgresql -I. -I./ -I/usr/include/postgresql/9.6/server
-I/usr/include/postgresql/internal -Wdate-time -D_FORTIFY_SOURCE=2
-D_GNU_SOURCE -I/usr/include/libxml2 -I/usr/include/tcl8.6 -c -o
strutil.o strutil.c
gcc -o repmgrd -Wall -Wmissing-prototypes -Wpointer-arith
-Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute
-Wformat-security -fno-strict-aliasing -fwrapv
-fexcess-precision=standard -g -g -O2
-fdebug-prefix-map=/build/postgresql-9.6-jQU1kx/postgresql-9.6-9.6.2=.
-fstack-protector-strong -Wformat -Werror=format-security
-I/usr/include/mit-krb5 -fPIC -pie -fno-omit-frame-pointer dbutils.o
config.o repmgrd.o log.o strutil.o -L/usr/lib/x86_64-linux-gnu
-lpgcommon -lpgport -L/usr/lib/x86_64-linux-gnu -lpq
-L/usr/lib/x86_64-linux-gnu -Wl,-Bsymbolic-functions -Wl,-z,relro
-Wl,-z,now -Wl,--as-needed -L/usr/lib/mit-krb5
-L/usr/lib/x86_64-linux-gnu/mit-krb5 -Wl,--as-needed -lpgcommon
-lpgport -lselinux -lxslt -lxml2 -lpam -lssl -lcrypto -lgssapi_krb5 -lz
-ledit -lrt -lcrypt -ldl -lm
/usr/bin/ld: cannot find -lselinux
/usr/bin/ld: cannot find -lssl
/usr/bin/ld: cannot find -lcrypto
/usr/bin/ld: cannot find -lgssapi_krb5
/usr/bin/ld: cannot find -lz
collect2: error: ld returned 1 exit status
Makefile:20: recipe for target 'repmgrd' failed
make: *** [repmgrd] Error 1
Well in the above /usr/include/postgresql/9.6/server is pointing at the
DEB installed directory. Pretty sure I remember that is not where the
EDB installed files are. If you want to compile against the EDB install
you will need to find its pg_config, that is what drives the make
process. If you do find it, then you can do something like this(borrowed
form pglogical):
PATH=<path to EDB pg_config>:$PATH make USE_PGXS=1 clean all
sudo PATH+<path to EDB pg_config>:$PATH make USE_PGXS=1 install
Any ideas what I am doing wrong? I can only assume I'm missing something
really, really, obvious. Every single book and article I've seen simply
states 'Just quickly install repmgr then ...' - it's driving me nuts
that I can't get this thing installed, let alone working :)
Any help/advice/suggestions/pointing-outs-of-the-obvious would be
greatly appreciated.
Regards,
Martin.
--
Martin Goodson
"Have you thought up some clever plan, Doctor?"
"Yes, Jamie, I believe I have."
"What're you going to do?"
"Bung a rock at it."
--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx
--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general