RPostgreSQL
RPostgreSQL copied to clipboard
Error loading RPostgreSQL
I have been using RPostgreSQL for a long time without any problems, but today, when I tried to load the package after updating my operation system to macOS Big Sur 11.1 in my MacBook, I've got the following error message:
Error: package or namespace load failed for ‘RPostgreSQL’ in dyn.load(file, DLLpath = DLLpath, ...): unable to load shared object '/Library/Frameworks/R.framework/Versions/3.6/Resources/library/RPostgreSQL/libs/RPostgreSQL.so': dlopen(/Library/Frameworks/R.framework/Versions/3.6/Resources/library/RPostgreSQL/libs/RPostgreSQL.so, 6): Library not loaded: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libR.dylib Referenced from: /Library/Frameworks/R.framework/Versions/3.6/Resources/library/RPostgreSQL/libs/RPostgreSQL.so Reason: image not found
I tried to re-install the package using the last available version on CRAN, but it didn't work. Can you please help me?
I forgot to add that I'm using PostgreSQL 12—I've also updated it after the issue came up
I have a similar issue, where the package couldn't find libpq. Just posting it here, in case it helps you or others. The problem is that apparently Apple removed some libraries from Big Sur and RPostgreSQL depends on them. In the long run, RPostgreSQL needs to be updated but for now I could (1) install libpq with brew and (2) re-link RPostgreSQL.so to the path of the new manually installed libpq, i.e. run these commands in the terminal: (1) brew install libpq (2) sudo install_name_tool -change /usr/lib/libpq.5.dylib /usr/local/opt/libpq/lib/libpq.5.dylib /Library/Frameworks/R.framework/Versions/3.6/Resources/library/RPostgreSQL/libs/RPostgreSQL.so You can possibly find a similar solution for your issue? See also https://stackoverflow.com/questions/64256675/copy-libpq-5-dylib-to-usr-lib-libpq-5-dylib .
Sorry to add to the pile-on of Big Sur problems here, I'd be grateful for any advice.
I'm running Big Sur, R 4.1.1, and RPostgreSQL 0.7-3. Similarly to others, no issues until recent software updates.
I've repeatedly reinstalled libpq, openssl and postgresql using brew. Per cfriedrichh's suggestion, I've also tried to make sure libpq is mapped using the following: sudo install_name_tool -change /usr/lib/libpq.5.dylib /usr/local/Cellar/libpq/lib/libpq.5.dylib /Library/Frameworks/R.framework/Versions/4.1/Resources/library/RPostgreSQL/libs/RPostgreSQL.so.
Nonetheless, I get an immediate segfault upon calling dbPool regardless of whether any database details are specified (see attached). Any other steps I ought to try? Thank you very, very much for any advice you can offer.

First, make sure that the PostgreSQL and libpq are working correctly with psql (command line front end of PostgreSQL).
Second,
R CMD check --as-cran RPostgreSQL_0.7-3.tar.gz
and indicate the output.
Third, dbConnect() without pool().
I have got a good looking log on Big Sur 11.6 after brew install postgresql.
$ R CMD check RPostgreSQL_0.7-3.tar.gz
* using log directory ‘/Users/tomoaki/RPostgreSQL.Rcheck’
* using R version 4.1.2 (2021-11-01)
* using platform: x86_64-apple-darwin17.0 (64-bit)
* using session charset: UTF-8
* checking for file ‘RPostgreSQL/DESCRIPTION’ ... OK
* this is package ‘RPostgreSQL’ version ‘0.7-3’
* checking package namespace information ... OK
* checking package dependencies ... OK
* checking if this is a source package ... OK
* checking if there is a namespace ... OK
* checking for executable files ... OK
* checking for hidden files and directories ... OK
* checking for portable file names ... OK
* checking for sufficient/correct file permissions ... OK
* checking whether package ‘RPostgreSQL’ can be installed ... OK
* checking installed package size ... OK
* checking package directory ... OK
* checking DESCRIPTION meta-information ... OK
* checking top-level files ... OK
* checking for left-over files ... OK
* checking index information ... OK
* checking package subdirectories ... OK
* checking R files for non-ASCII characters ... OK
* checking R files for syntax errors ... OK
* checking whether the package can be loaded ... OK
* checking whether the package can be loaded with stated dependencies ... OK
* checking whether the package can be unloaded cleanly ... OK
* checking whether the namespace can be loaded with stated dependencies ... OK
* checking whether the namespace can be unloaded cleanly ... OK
* checking dependencies in R code ... OK
* checking S3 generic/method consistency ... OK
* checking replacement functions ... OK
* checking foreign function calls ... OK
* checking R code for possible problems ... OK
* checking Rd files ... OK
* checking Rd metadata ... OK
* checking Rd cross-references ... OK
* checking for missing documentation entries ... OK
* checking for code/documentation mismatches ... OK
* checking Rd \usage sections ... OK
* checking Rd contents ... OK
* checking for unstated dependencies in examples ... OK
* checking line endings in shell scripts ... OK
* checking line endings in C/C++/Fortran sources/headers ... OK
* checking line endings in Makefiles ... OK
* checking compilation flags in Makevars ... OK
* checking for GNU extensions in Makefiles ... OK
* checking for portable use of $(BLAS_LIBS) and $(LAPACK_LIBS) ... OK
* checking use of PKG_*FLAGS in Makefiles ... OK
* checking include directives in Makefiles ... OK
* checking compiled code ... OK
* checking examples ... OK
* checking for unstated dependencies in ‘tests’ ... OK
* checking tests ...
Running ‘connectWithNull.R’
Comparing ‘connectWithNull.Rout’ to ‘connectWithNull.Rout.save’ ...40a41,42
> <PostgreSQLConnection>
> [1] TRUE
Running ‘createTableMixedCaseTest.R’
Comparing ‘createTableMixedCaseTest.Rout’ to ‘createTableMixedCaseTest.Rout.save’ ...86a87,94
> Test should create foo1 and Foo2 tables
> Pass - Foo1 Table does not exist.
> Pass - foo1 Table exists.
> Pass - Foo2 Table exists.
> Pass - foo2 Table does not exist.
> Pass - "Foo2" Table does not exist.
> Pass - "foo2" Table does not exist.
> [1] TRUE
Running ‘dataTypeTests.R’
Comparing ‘dataTypeTests.Rout’ to ‘dataTypeTests.Rout.save’ ...115a116,125
> Read Numeric values
> GOOD -- all numeric types are as expected
> GOOD -- all numeric values are as expected
> Read Logical values
> GOOD -- all logical types are as expected
> GOOD -- all logical values are as expected
> Read Character values
> GOOD -- all character types are as expected
> GOOD -- all character values are as expected
> DONE
Running ‘dateTZ.R’
Comparing ‘dateTZ.Rout’ to ‘dateTZ.Rout.save’ ...89a90,163
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> testing UTC
>
> **** Trying with timestamp
> inserted string 1: 2008-07-01 14:15:16.123+00
> inserted string 2: 2000-01-02 03:04:05.678+00
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> PASS
> PASS
>
>
> **** Trying with timestamp with time zone
> inserted string 1: 2008-07-01 14:15:16.123+00
> inserted string 2: 2000-01-02 03:04:05.678+00
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> PASS
> PASS
> testing Asia/Tokyo
>
> **** Trying with timestamp
> inserted string 1: 2008-07-01 14:15:16.123+00
> inserted string 2: 2000-01-02 03:04:05.678+00
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> PASS
> PASS
>
>
> **** Trying with timestamp with time zone
> inserted string 1: 2008-07-01 14:15:16.123+00
> inserted string 2: 2000-01-02 03:04:05.678+00
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> PASS
> PASS
> testing Australlia/South
>
> **** Trying with timestamp
> inserted string 1: 2008-07-01 14:15:16.123+00
> inserted string 2: 2000-01-02 03:04:05.678+00
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> PASS
> PASS
>
>
> **** Trying with timestamp with time zone
> inserted string 1: 2008-07-01 14:15:16.123+00
> inserted string 2: 2000-01-02 03:04:05.678+00
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> PASS
> PASS
> testing America/New_York
>
> **** Trying with timestamp
> inserted string 1: 2008-07-01 14:15:16.123+00
> inserted string 2: 2000-01-02 03:04:05.678+00
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> PASS
> PASS
>
>
> **** Trying with timestamp with time zone
> inserted string 1: 2008-07-01 14:15:16.123+00
> inserted string 2: 2000-01-02 03:04:05.678+00
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> PASS
> PASS
> [1] TRUE
Running ‘datetimeTests.R’
Comparing ‘datetimeTests.Rout’ to ‘datetimeTests.Rout.save’ ...67a68,88
>
>
> **** Trying with timestamp
> tt zz
> 1 2008-07-01 14:15:16 1
> 2 2000-01-02 03:04:05 2
> name Sclass type len precision scale nullOK
> 1 tt POSIXct TIMESTAMP 8 -1 -1 TRUE
> [1] "2008-07-01 14:15:16 UTC" "2000-01-02 03:04:05 UTC"
> [1] "POSIXct" "POSIXt"
>
>
> **** Trying with date
> tt zz
> 1 2008-07-01 1
> 2 2000-01-02 2
> name Sclass type len precision scale nullOK
> 1 tt Date DATE 4 -1 -1 TRUE
> [1] "2008-07-01" "2000-01-02"
> [1] "Date"
> [1] TRUE
Running ‘datetimestampwrite.R’
Comparing ‘datetimestampwrite.Rout’ to ‘datetimestampwrite.Rout.save’ ...82a83,89
> Read Date and TIMESTAMP values
> PASS -- Date type is as expected
> PASS -- TIMESTAMP is received as POSIXct
> Check that read after write gets the same data types
> PASS -- Date type is as expected
> PASS -- TIMESTAMP is received as POSIXct
> DONE
Running ‘dbColumnInfo.R’
Comparing ‘dbColumnInfo.Rout’ to ‘dbColumnInfo.Rout.save’ ...49a50,65
> dbColumnInfo
> name Sclass type len precision scale nullOK
> 1 pk integer INTEGER 4 -1 -1 TRUE
> 2 v1 double FLOAT8 8 -1 -1 FALSE
> 3 v2 double FLOAT8 8 -1 -1 TRUE
> 4 ?column? double FLOAT8 8 -1 -1 NA
> name Sclass type len precision scale nullOK
> 1 pk integer INTEGER 4 -1 -1 TRUE
> 2 v1 double FLOAT8 8 -1 -1 FALSE
> 3 v2 double FLOAT8 8 -1 -1 TRUE
> 4 ?column? double FLOAT8 8 -1 -1 NA
> SELECT result
> pk v1 v2 ?column?
> 1 3 2 NA NA
> Removing "AA"
> [1] TRUE
Running ‘dbExistsIssue.R’
Comparing ‘dbExistsIssue.Rout’ to ‘dbExistsIssue.Rout.save’ ...56a57,60
> Does rockdata exist? [1] TRUE
> Does public.rockdata exist? [1] FALSE
> [1] "Removing rockdata\n"
> [1] TRUE
Running ‘dbExistsq.R’
Comparing ‘dbExistsq.Rout’ to ‘dbExistsq.Rout.save’ ...57a58,62
> Write rock'data
> Does rock'data exist? [1] TRUE
> Does "public.rock'data" exist? [1] FALSE
> Removing rock'data
> [1] TRUE
Running ‘dbExistsqc.R’
Comparing ‘dbExistsqc.Rout’ to ‘dbExistsqc.Rout.save’ ...95a96,108
> Does rock.data exist?
> PASS: true
> create schema testschema and change the search_path
> Does rock.data exist?
> PASS: false as the search_path changed
> Does testschema."rock.data" exist?
> PASS: false as the testschema specified
> Does public."rock.data" exist?
> PASS: true despite search_path change
> write in current schema
> Does rock.data exist?
> PASS: true
> [1] TRUE
Running ‘dbGetQueryParams.R’
Comparing ‘dbGetQueryParams.Rout’ to ‘dbGetQueryParams.Rout.save’ ...51a52,70
> row.names area peri shape perm
> 1 6 7979 4010.15 0.167045 17.1
> 2 7 9333 4345.75 0.189651 17.1
> 3 8 8209 4344.75 0.164127 17.1
> 4 11 9364 4480.05 0.150944 119.0
> 5 13 10651 4036.54 0.228595 82.4
> 6 17 10962 4608.66 0.204314 58.6
> 7 18 10743 4787.62 0.262727 58.6
> 8 19 11878 4864.22 0.200071 58.6
> 9 20 9867 4479.41 0.144810 58.6
> 10 22 11876 4353.14 0.291029 142.0
> row.names area peri shape perm
> 1 6 7979 4010.15 0.167045 17.1
> 2 7 9333 4345.75 0.189651 17.1
> 3 8 8209 4344.75 0.164127 17.1
> 4 11 9364 4480.05 0.150944 119.0
> 5 20 9867 4479.41 0.144810 58.6
> [1] "Removing rockdata\n"
> [1] TRUE
Running ‘dbListFields.R’
Comparing ‘dbListFields.Rout’ to ‘dbListFields.Rout.save’ ...59a60,65
> [1] "pk" "v1" "v2"
> PASS: 3 fields returned
> [1] "pid" "name"
> PASS: 2 fields returned
> Removing "AA"
> [1] TRUE
Running ‘dbTransactionTests.R’
Comparing ‘dbTransactionTests.Rout’ to ‘dbTransactionTests.Rout.save’ ...95a96,109
> begin transaction in con1
> create table rockdata in con1
> PASS rockdata is visible through con1
> PASS rockdata is invisible through con2
> commit in con1
> PASS rockdata is visible through con2
> remove the table from con1
> PASS rockdata is invisible through con2
> begin transaction in con1
> create table rockdata in con1
> PASS rockdata is visible through con1
> RollBack con1
> PASS rockdata is invisible through con1
> [1] TRUE
Running ‘dbWriteTableSchema.R’
Comparing ‘dbWriteTableSchema.Rout’ to ‘dbWriteTableSchema.Rout.save’ ...52a53,65
> row.names area peri shape perm
> 1 1 4990 2791.90 0.0903296 6.3
> 2 2 7002 3892.60 0.1486220 6.3
> 3 3 7558 3930.66 0.1833120 6.3
> 4 4 7352 3869.32 0.1170630 6.3
> 5 5 7943 3948.54 0.1224170 17.1
> 6 6 7979 4010.15 0.1670450 17.1
> 7 7 9333 4345.75 0.1896510 17.1
> 8 8 8209 4344.75 0.1641270 17.1
> 9 9 8393 3682.04 0.2036540 119.0
> 10 10 6425 3098.65 0.1623940 119.0
> [1] "Removing rockdata\n"
> [1] TRUE
Running ‘dbWriteTableTest.R’
Comparing ‘dbWriteTableTest.Rout’ to ‘dbWriteTableTest.Rout.save’ ...52a53,65
> row.names area peri shape perm
> 1 1 4990 2791.90 0.0903296 6.3
> 2 2 7002 3892.60 0.1486220 6.3
> 3 3 7558 3930.66 0.1833120 6.3
> 4 4 7352 3869.32 0.1170630 6.3
> 5 5 7943 3948.54 0.1224170 17.1
> 6 6 7979 4010.15 0.1670450 17.1
> 7 7 9333 4345.75 0.1896510 17.1
> 8 8 8209 4344.75 0.1641270 17.1
> 9 9 8393 3682.04 0.2036540 119.0
> 10 10 6425 3098.65 0.1623940 119.0
> [1] "Removing rockdata\n"
> [1] TRUE
Running ‘dbWriteTabletypes.R’
Comparing ‘dbWriteTabletypes.Rout’ to ‘dbWriteTabletypes.Rout.save’ ...234a235,264
> row.names strings
> 1 1 normal
> 2 2 t\tab
> 3 3 v\vertical tab
> 4 4 n\newline
> 5 5 r carriage \retern
> 6 6 back \\ slash
> 7 7 f\form feed
> [1] "Removing rockdata\n"
> 1 normal
> 2 müß
> [1] "Removing rockdata\n"
> PASS: could write small umlaut u and ligature sz
> 1 normal
> 2 kanji漢字
> [1] "Removing rockdata\n"
> PASS: could write kanji
> Read Numeric values
> PASS -- all integer is as expected
> PASS integer value is preservedGOOD -- all numeric values are as expected
> Read Logical values
> GOOD -- all logical types are as expected
> GOOD -- all logical values are as expected
> Read Character values
> GOOD -- all character types are as expected
> GOOD -- all character values are as expected
> Check that read after write gets the same data types
> PASS -- Date type is as expected
> PASS -- TIMESTAMP is received as POSIXct
> DONE
Running ‘dbtemptable.R’
Comparing ‘dbtemptable.Rout’ to ‘dbtemptable.Rout.save’ ...48a49,51
> name
> 1 bar
> PASS -- ended without segmentation fault
Running ‘escape.R’
Comparing ‘escape.Rout’ to ‘escape.Rout.save’ ...42a43,45
> [1] "aaa"
> [1] "aa''a"
> [1] TRUE
Running ‘loadDriverAndConnect.R’
Comparing ‘loadDriverAndConnect.Rout’ to ‘loadDriverAndConnect.Rout.save’ ...39a40,43
> datname encoding datallowconn
> 1 template0 6 FALSE
> 2 template1 6 TRUE
> [1] TRUE
Running ‘openSendQuery.R’
Comparing ‘openSendQuery.Rout’ to ‘openSendQuery.Rout.save’ ...68a69,76
> create temp table tmptest with dbGetQuery
> [1] f1
> <0 rows> (or 0-length row.names)
> create temp table tmptest with dbSendQuery
> [1] f2
> <0 rows> (or 0-length row.names)
> PASS tmptest disappeared after disconnection
> [1] TRUE
Running ‘selectWithAlias.R’
Comparing ‘selectWithAlias.Rout’ to ‘selectWithAlias.Rout.save’ ...53a54,66
> ar pe sh pr
> 1 4990 2791.90 0.0903296 6.3
> 2 7002 3892.60 0.1486220 6.3
> 3 7558 3930.66 0.1833120 6.3
> 4 7352 3869.32 0.1170630 6.3
> 5 7943 3948.54 0.1224170 17.1
> 6 7979 4010.15 0.1670450 17.1
> 7 9333 4345.75 0.1896510 17.1
> 8 8209 4344.75 0.1641270 17.1
> 9 8393 3682.04 0.2036540 119.0
> 10 6425 3098.65 0.1623940 119.0
> [1] "Removing rockdata\n"
> [1] TRUE
Running ‘utf.R’
Comparing ‘utf.Rout’ to ‘utf.Rout.save’ ...67c67,70
< Skip because envirinmental variables are not set to tell the connection params.
---
> GOOD -- all encoding are as expected
> GOOD -- all encoding are as expected
> GOOD -- all encoding are as expected
> DONE
OK
* checking PDF version of manual ... OK
* DONE
Status: OK
Further look into the install log.
$ cat RPostgreSQL.Rcheck/00install.out
* installing *source* package ‘RPostgreSQL’ ...
** using staged installation
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking build system type... x86_64-apple-darwin20.6.0
checking host system type... x86_64-apple-darwin20.6.0
checking target system type... x86_64-apple-darwin20.6.0
checking for pg_config... /usr/local/bin/pg_config
PG_CONFIG_BINDIR = /usr/local/Cellar/postgresql/14.1/bin
PG_CONFIG_DOCDIR = /usr/local/Cellar/postgresql/14.1/share/doc/postgresql
PG_CONFIG_HTMLDIR = /usr/local/Cellar/postgresql/14.1/share/doc/postgresql
PG_CONFIG_INCLUDEDIR = /usr/local/include
PG_CONFIG_PKGINCLUDEDIR = /usr/local/include/postgresql
PG_CONFIG_INCLUDEDIR-SERVER = /usr/local/include/postgresql/server
PG_CONFIG_LIBDIR = /usr/local/lib
PG_CONFIG_PKGLIBDIR = /usr/local/lib/postgresql
PG_CONFIG_LOCALEDIR = /usr/local/Cellar/postgresql/14.1/share/locale
PG_CONFIG_MANDIR = /usr/local/Cellar/postgresql/14.1/share/man
PG_CONFIG_SHAREDIR = /usr/local/share/postgresql
PG_CONFIG_SYSCONFDIR = /usr/local/etc/postgresql
PG_CONFIG_PGXS = /usr/local/lib/postgresql/pgxs/src/makefiles/pgxs.mk
PG_CONFIG_CONFIGURE = '--disable-debug' '--prefix=/usr/local/Cellar/postgresql/14.1' '--datadir=/usr/local/share/postgresql' '--libdir=/usr/local/lib' '--includedir=/usr/local/include' '--sysconfdir=/usr/local/etc' '--docdir=/usr/local/Cellar/postgresql/14.1/share/doc/postgresql' '--enable-thread-safety' '--with-gssapi' '--with-icu' '--with-ldap' '--with-libxml' '--with-libxslt' '--with-openssl' '--with-pam' '--with-perl' '--with-uuid=e2fs' '--with-bonjour' '--with-tcl' 'PG_SYSROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk' 'CC=clang' 'LDFLAGS=-L/usr/local/opt/[email protected]/lib -L/usr/local/opt/readline/lib' 'CPPFLAGS=-I/usr/local/opt/[email protected]/include -I/usr/local/opt/readline/include' 'CXX=clang++' 'PKG_CONFIG_PATH=/usr/local/opt/icu4c/lib/pkgconfig:/usr/local/opt/[email protected]/lib/pkgconfig:/usr/local/opt/krb5/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig' 'PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig:/usr/local/Homebrew/Library/Homebrew/os/mac/pkgconfig/11'
PG_CONFIG_CC = clang
PG_CONFIG_CPPFLAGS = -I/usr/local/Cellar/icu4c/69.1/include -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -I/usr/local/opt/[email protected]/include -I/usr/local/opt/readline/include
PG_CONFIG_CFLAGS = cflwarnall cflwarnmissing-prototypes cflwarnpointer-arith cflwarndeclaration-after-statement cflwarnerror=vla cflwarnerror=unguarded-availability-new cflwarnendif-labels cflwarnmissing-format-attribute cflwarnformat-security -fno-strict-aliasing -fwrapv cflwarnno-unused-command-line-argument -O2
PG_CONFIG_CFLAGS_SL =
PG_CONFIG_LDFLAGS = -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -L/usr/local/opt/[email protected]/lib -L/usr/local/opt/readline/lib cflwarnl,-dead_strip_dylibs
PG_CONFIG_LDFLAGS_EX =
PG_CONFIG_LDFLAGS_SL =
PG_CONFIG_LIBS = -lpgcommon -lpgport -lxslt -lxml2 -lpam -lssl -lcrypto -lgssapi_krb5 -lz -lreadline -lm
PG_CONFIG_VERSION = PostgreSQL 14.1
configure: checking for PostgreSQL header files
/usr/local/lib
/usr/local/include
gcc -I/Users/tomoaki/lcl/include -I/Users/tomoaki/lcl/include -I/usr/local/include -L/usr/local/lib conftest.c -lpq -o pqconftest
./pqconftest
140001...runs fine
checking for "/usr/local/include/libpq-fe.h"... yes
configure: creating ./config.status
config.status: creating src/Makevars
** libs
clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/usr/local/include -I/usr/local/include -fPIC -Wall -g -O2 -c RS-DBI.c -o RS-DBI.o
clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/usr/local/include -I/usr/local/include -fPIC -Wall -g -O2 -c RS-PQescape.c -o RS-PQescape.o
clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/usr/local/include -I/usr/local/include -fPIC -Wall -g -O2 -c RS-PostgreSQL.c -o RS-PostgreSQL.o
clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/usr/local/include -I/usr/local/include -fPIC -Wall -g -O2 -c RS-pgsql-copy.c -o RS-pgsql-copy.o
clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/usr/local/include -I/usr/local/include -fPIC -Wall -g -O2 -c RS-pgsql-getResult.c -o RS-pgsql-getResult.o
clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/usr/local/include -I/usr/local/include -fPIC -Wall -g -O2 -c RS-pgsql-pqexec.c -o RS-pgsql-pqexec.o
clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/usr/local/include -I/usr/local/include -fPIC -Wall -g -O2 -c RS-pgsql-pqexecparams.c -o RS-pgsql-pqexecparams.o
clang -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o RPostgreSQL.so RS-DBI.o RS-PQescape.o RS-PostgreSQL.o RS-pgsql-copy.o RS-pgsql-getResult.o RS-pgsql-pqexec.o RS-pgsql-pqexecparams.o -L/usr/local/lib -lpq -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
installing to /Users/tomoaki/RPostgreSQL.Rcheck/00LOCK-RPostgreSQL/00new/RPostgreSQL/libs
** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded from temporary location
** checking absolute paths in shared objects and dynamic libraries
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* DONE (RPostgreSQL)
I had a similar issue (but with RPostgres, you may consider switching to that package) building a container through docker for API use : RPostgres was installed but the library couldn't load libpq.so.5, same error message. Since I had already installed Postgres on my machine, I figure the problem was worked around therefore I had no such message on local ; but here's how I solved this in my dockerfile (thanks to this post), 100% verified on a machine with nothing related to R installed (Centos, server) :
RUN apt-get update && apt-get install libpq5 -y
before installing any package.
So executing apt-get update && apt-get install libpq5 -y
on your terminal should do the trick. Light and efficient.