tomoakin / RPostgreSQL

Automatically exported from code.google.com/p/rpostgresql
64 stars 20 forks source link

Error loading RPostgreSQL #113

Open amartinezgarcia opened 3 years ago

amartinezgarcia commented 3 years ago

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?

amartinezgarcia commented 3 years ago

I forgot to add that I'm using PostgreSQL 12—I've also updated it after the issue came up

cfriedrichh commented 3 years ago

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 .

markskrass commented 2 years ago

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.

Screen Shot 2021-11-18 at 4 35 10 PM

.

tomoakin commented 2 years ago

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().

tomoakin commented 2 years ago

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/openssl@1.1/lib -L/usr/local/opt/readline/lib' 'CPPFLAGS=-I/usr/local/opt/openssl@1.1/include -I/usr/local/opt/readline/include' 'CXX=clang++' 'PKG_CONFIG_PATH=/usr/local/opt/icu4c/lib/pkgconfig:/usr/local/opt/openssl@1.1/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/openssl@1.1/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/openssl@1.1/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)
JagetYohan commented 2 years ago

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.