Re: EnterpriseDB installed PostgreSQL 9.6 vs. REPMGR. Round 2 - compilation issues.

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: Martin Goodson <kaemaril(at)googlemail(dot)com>, pgsql-general(at)postgresql(dot)org
Subject: Re: EnterpriseDB installed PostgreSQL 9.6 vs. REPMGR. Round 2 - compilation issues.
Date: 2017-05-12 15:40:06
Message-ID: 3e25941f-5094-9eea-377e-b87f017030ca@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

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(at)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(dot)klaver(at)aklaver(dot)com

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Klaver 2017-05-12 15:48:28 Re: EnterpriseDB installed PostgreSQL 9.6 vs. REPMGR. Round 2 - compilation issues.
Previous Message Martin Goodson 2017-05-12 15:30:45 Re: EnterpriseDB installed PostgreSQL 9.6 vs. REPMGR. Round 2 - compilation issues.