Install RPostgreSQL on RHEL 6.5 libpq-fe.h Error - r

I have RHEL 6.5 Server with an installation of R (3.1.1) & RStudioServer (0.98.1062)
I have postgresql-9.3 installed and handling a large database. In order to connect R to PostgreSQL, I have in the past used the RPostgreSQL (still do on my CentOS 7 Workstation). However, attempting to compile under RHEL 6.5 I get an error
In file included from RS-PQescape.c:7:
RS-PostgreSQL.h:23:26: error: libpq-fe.h: No such file or directory
The file is located on my system here:
/usr/pgsql-9.3/include/libpq-fe.h
Libpq is part of the Postgres installation, but RPostgreSQL cannot find it:
[root#server /]# yum list libpq*
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
Installed Packages
libpqxx.x86_64 1:4.0.1-1.rhel6 #pgdg93
libpqxx-debuginfo.x86_64 1:4.0.1-1.rhel6 #pgdg93
libpqxx-devel.x86_64 1:4.0.1-1.rhel6 #pgdg93
Is there any way to tell RPostgreSQL where to look (symbolic links?) or some other workaround? This should be simple, but I've wasted several hours on this already...

Followup info because I just had the same problem.
Installing yum install postgresql-devel resolves the error too.

I ended up looking into the RPostgreSQL configure file in the tarball, searched for the file name the script couldn't find and decided it was easiest to create an environmental variable:
export PG_INCDIR=/usr/pgsql-9.3/include/
Worked like a charm after that.
If you have sudo rights, you could also try:
yum install postgresql-devel

Related

Updating R to 3.5+ on Ubuntu 18.04

I'm looking to update R on our ubuntu 18.04 server to 3.5 or higher but I'm experiencing some difficulties.
Installing it via install r-base results in version 3.4.x, we need 3.5 or higher to run some specific scripts. I've also consulted this website: https://cran.ma.imperial.ac.uk/, and attempted add the repository listed (sudo add-apt-repository ppa:c2d4u.team/c2d4u4.0+) but this results in the following errors:
Cannot add PPA: 'ppa:~c2d4u.team/ubuntu/c2d4u4.0+'.
ERROR: '~c2d4u.team' user or team does not exist.
At this point, I'm at a loss. I'm wondering if it's potentially a firewall issue? or is there a setting I need to change.
What about downloading .deb(s) from https://cloud.r-project.org/bin/linux/ubuntu/bionic-cran40/ and installing them with dpkg / apt?

How can I compile RpostgreSQL with libssl and libpg and SSL activation

I am using R on Windows to connect to a PostgreSQL database hosted on AWS. The database is set up using forcessl = 1 - this means that any connection needs to be set up with sslmode=require.
The base RPostgreSQL package does not provide any exposure to ssl options. This has been raised as an issue many times (see here, here, here and here)
I know there is a workaround using the RPostgres package, but for other functionality reasons I would much prefer to use the RPostgreSQL package.
A few answers (e.g. here) have proposed using a modified dbname to connect with ssl like so:
dbConnect(dbDriver('PostgreSQL'),
dbname = 'dbname=foobar sslmode=require', # modified dbname
host = 'foobar.rds.amazonaws.com',
port = 5439,
user = 'foobar',
password = 'foobar')
But this did not work for me using the CRAN version of the package. This led me to a recent issue raised on the RPostgreSQL github: https://github.com/tomoakin/RPostgreSQL/issues/88
The initial user was able to use the modified dbname method when he compiled the package from source. On Windows, using the latest source package (0.6.2) compiled with RTools, I get the following error when I run the modified dbname code:
Error in postgresqlNewConnection(drv, ...) :
RS-DBI driver: (could not connect xxxxx.rds.amazonawss.com:5432 on dbname "xxxxxxx": sslmode value "require" invalid when SSL support is not compiled in
)
From this and the rest of the thread, it looks like SSL is not possible from current source in both Windows and Mac. However, the developer suggests:
If you compile in a environment where libssl and libpq was made SSL activated form, then the driver can use SSL.
I think this means I could manually download the libs and compile myself, but I am not sure if it is a quick fix or if it would require significant rewriting of the package. Any help or pointing in the right direction would be much appreciated. How can I do this in a safe, repeatable way?
I was able to solve this for the El Capitan macOS R users in my office, by doing the following:
Remove RPostgreSQL R package if you already have installed. Methods vary on how to do this, but from either R.app console or R in Terminal, type remove.packages('RPostgreSQL')
Make sure you have Homebrew installed, and from Terminal run: brew install libpq openssl
Open R.app, and from the Packages & Data menu, select Package Installer.
From the first drop-down menu, choose CRAN (sources) (choose mirror closest to you if you haven't used this before).
Using package search, find RPostgreSQL and for the options below, keep At System Level checked, and check Install Dependencies, then click Install Selected.
Quit out of all R and RStudio programs, and try using the new from source installed RPostgreSQL package.
DISCLAIMER: If you have heavy compile dependencies on OpenSSL or libpq for other programs, I have no idea how doing the above may break other programs.
Building on Windows is a can of worms. See R-Admin Windows Toolset. The only openSSL binaries for windows are from unknown developers. Building and installing openSSL on windows is another can of worms that you will need to research. It might be easier to install openSSL inside the R Windows build environment, but I have no experience with that.
EDIT: It turns out that when installing postgres on Windows, postgres installs openSSL. That means that the central problem on Windows is installing the Windows Toolset for R, installing postgres, then pointing the R build system to libpq.
Another solution would be to run linux in a virtual machine under windows. Here is one way to Install linux on Windows. With linux, depending on the distribution, you would only need to do something like the following from the linux command line (for a RedHat variant of linux):
sudo yum install openSSL
sudo yum install postgresql96
sudo yum install R
Line 2 installs libpq which is required for RPostgreSQL. It is libpq which must be compiled with openSSL. You will only be installing and using the PostgreSQL client, not the server and will also get psql. There might be other packages required, see R linux toolset. Normally, these will get pulled in with the above and should not be a problem.
RPostgreSQL contains a version of libpq, but the compile script does not look like it checks for openSSL, at least not on macOS. So it is important to get a system provided libpq installed.
It is also important for the RPostgreSQL configure script to find pg_config, which is installed when postgres client is installed. Not sure about windows through. So make sure pg_config is in your path. Type pg_config to find out.
Now you need to download and compile RPostgreSQL. To start R, type the following at the linux terminal.
R
Then from within R, get, compile and install RPostgreSQL:
install.packages("https://cran.r-project.org/src/contrib/RPostgreSQL_0.6-2.tar.gz", repo=NULL, type="source")
This should compile and install this version of RPostgreSQL. This last line should also work in windows if you have the windows tools installed correctly.
Hopefully, this gives you some ideas.

Failed to install R on Centos 7

I have CentOS 7 (3.10.0-123.el7.x86_64) and I seem not be able to install R and then get Rstudio server working.
This is what I did:
rpm -Uvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install R
Then I got this error:
Transaction check error:
file /usr/lib/systemd/system/blk-availability.service from install of device-mapper-7:1.02.107-5.el7_2.1.x86_64 conflicts with file from package lvm2-7:2.02.105-14.el7.x86_64
file /usr/sbin/blkdeactivate from install of device-mapper-7:1.02.107-5.el7_2.1.x86_64 conflicts with file from package lvm2-7:2.02.105-14.el7.x86_64
file /usr/share/man/man8/blkdeactivate.8.gz from install of device-mapper-7:1.02.107-5.el7_2.1.x86_64 conflicts with file from package lvm2-7:2.02.105-14.el7.x86_64
I am not sure what it is. There is nothing from whereis R because it didn't install.
If I install Rstudio Server, it would fail to start the service and said ERROR unable to find installation of R in the system
Can someone tell me how to install R properly on Centos 7?
That is not related to R. Your log shows a conflict between "device-mapper" and "lvm2", and these packages are used to operate with devices such as hard disks and partitions (before someone downvotes me, YES this is a crude simplification).
You should try to update your system with yum before installing R.
I resolved this problem by updating lvm2 firstly, then install R.
This idea was from: https://bugzilla.redhat.com/show_bug.cgi?id=1294128

Install postfix in CentOS 7 without maria-db

I am trying to install postfix using yum in CentOS 7. I'm using a version of mysql (5.5.28) which is installed directly from a rpm file.
The default postfix has a dependency on mariadb. Since mariadb conflicts with mysql I'm unable to use this. I tried using the centosplus repository which has mysql support. After installing compat-mysql rpm, I am able to install postfix using following command:
yum install --exclude=mariadb-libs --exclude=mysql-community-libs
postfix
But after this when I try to start postfix I get the following error:
/usr/sbin/postconf: relocation error: /usr/sbin/postconf: symbol
mysql_real_connect, version libmysqlclient_18 not defined in file
libmysqlclient.so.18 with link time reference
I am kind of stuck at here. Can any one please help?
Thanks in advance.
You need all required packages. Install all deendency packages.
Note that Installing Mariadb does mot mean you need it running. It will take only space on disk.

How to specify include and lib directories when locally installing RODBC?

i am trying to install RODBC with the commadn R CMD INSTALL -l /my/local/path RODBC.tar.gz and it wont find sql.h and sqlext.h ..how do i pass the include and lib paths to this command?
I had a similar problem recently while trying to install RODBC on an instance of Centos 5.8 x64. (Instead of using R CMD install, I just did sudo R, then installed the package inside R - but I was still having the same problem).
I resolved this by installing the following packages using yum:
unixODBC
unixODBC-libs
unixODBC-devel
mysql-connector-odbc
freetds
freetds-devel
Those last two are necessary because I was interfacing with an MSSQL server, which requires TDS. Anyway, once I installed unixODBC and the libs and development package, I was able to install RODBC with no difficulty (again, using sudo R and then install.packages("RODBC").
The only other thing to do is install the correct drivers/libraries for ODBC, which is what mysql-connector-odbc is. You will need to configure unixODBC to meet your needs, but the documentation is pretty solid, so I don't think you'll have too much difficulty.

Resources