I am using R in RStudio outside of a conda environment (I have miniconda3 installed to operate QIIME2). However, when I try installing R packages, I am always getting errors as R is always looking in the wrong directories. I nearly always have the packages installed, so running sudo apt-get won't fix the problem. I am running R 3.6.1 on Ubunutu 18.04.
> sessionInfo()
R version 3.6.1 (2019-07-05)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.3 LTS
Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/openblas/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/libopenblasp-r0.2.20.so
locale:
[1] LC_CTYPE=en_NZ.UTF-8 LC_NUMERIC=C LC_TIME=en_NZ.UTF-8 LC_COLLATE=en_NZ.UTF-8 LC_MONETARY=en_NZ.UTF-8 LC_MESSAGES=en_NZ.UTF-8
[7] LC_PAPER=en_NZ.UTF-8 LC_NAME=C LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=en_NZ.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] usethis_1.5.1 devtools_2.0.2
loaded via a namespace (and not attached):
[1] Rcpp_1.0.2 ps_1.3.0 prettyunits_1.0.2 rprojroot_1.3-2 withr_2.1.2 digest_0.6.20 crayon_1.3.4 assertthat_0.2.1 R6_2.4.0
[10] backports_1.1.4 magrittr_1.5 rlang_0.4.0 cli_1.1.0 fs_1.3.1 remotes_2.1.0 rstudioapi_0.10 testthat_2.2.1 callr_3.3.1
[19] desc_1.2.0 tools_3.6.1 glue_1.3.1 pkgload_1.0.2 compiler_3.6.1 processx_3.4.1 pkgbuild_1.0.4 sessioninfo_1.1.1 memoise_1.1.0
My .libPaths() are configured to the following:
> .libPaths()
[1] "/home/barefootbushman/R/x86_64-pc-linux-gnu-library/3.6" "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"
[4] "/usr/lib/R/library"
and echo $PATH in the terminal returns:
barefootbushman@barefootbushman:~/Documents/DWER Thresholds/HMSIC Example$ echo $PATH
/home/linuxbrew/.linuxbrew/bin:/etc/:/usr/:/usr/lib/x86_64-linux-gnu/pkgconfig/:/home/linuxbrew/.linuxbrew/bin:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/x86_64-linux-gnu:/usr/lib/:/home/linuxbrew/.linuxbrew/bin:/usr/include/:/usr/:/usr/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/bin:/home/barefootbushman/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
I have three main issues. The first is installing BayesLogit - an R package. I get the following:
> library(devtools)
> install_url('https://cran.r-project.org/src/contrib/Archive/BayesLogit/BayesLogit_0.6.tar.gz')
Downloading package from url: https://cran.r-project.org/src/contrib/Archive/BayesLogit/BayesLogit_0.6.tar.gz
Your system is ready to build packages!
✔ checking for file ‘/tmp/RtmpFgmgVU/remotes10aa2c0130d5/BayesLogit/DESCRIPTION’ ...
─ preparing ‘BayesLogit’:
✔ checking DESCRIPTION meta-information ...
─ cleaning src
─ checking for LF line-endings in source and make files and shell scripts
─ checking for empty or unneeded directories
─ looking to see if a ‘data/datalist’ file should be added
─ building ‘BayesLogit_0.6.tar.gz’
Installing package into ‘/home/barefootbushman/R/x86_64-pc-linux-gnu-library/3.6’
(as ‘lib’ is unspecified)
* installing *source* package ‘BayesLogit’ ...
** using staged installation
** libs
/home/barefootbushman/miniconda3/bin/x86_64-conda_cos6-linux-gnu-c++ -I"/usr/share/R/include" -DNDEBUG -DUSE_R -DNDEBUG -DDISABLE_SINGLE -DNTHROW -fpic -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c Matrix.cpp -o Matrix.o
/home/barefootbushman/miniconda3/bin/x86_64-conda_cos6-linux-gnu-c++ -I"/usr/share/R/include" -DNDEBUG -DUSE_R -DNDEBUG -DDISABLE_SINGLE -DNTHROW -fpic -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c MatrixFrame.cpp -o MatrixFrame.o
/home/barefootbushman/miniconda3/bin/x86_64-conda_cos6-linux-gnu-c++ -I"/usr/share/R/include" -DNDEBUG -DUSE_R -DNDEBUG -DDISABLE_SINGLE -DNTHROW -fpic -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c RRNG.cpp -o RRNG.o
/home/barefootbushman/miniconda3/bin/x86_64-conda_cos6-linux-gnu-c++ -I"/usr/share/R/include" -DNDEBUG -DUSE_R -DNDEBUG -DDISABLE_SINGLE -DNTHROW -fpic -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c RNG.cpp -o RNG.o
/home/barefootbushman/miniconda3/bin/x86_64-conda_cos6-linux-gnu-c++ -I"/usr/share/R/include" -DNDEBUG -DUSE_R -DNDEBUG -DDISABLE_SINGLE -DNTHROW -fpic -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c FSF_nmix.cpp -o FSF_nmix.o
/home/barefootbushman/miniconda3/bin/x86_64-conda_cos6-linux-gnu-c++ -I"/usr/share/R/include" -DNDEBUG -DUSE_R -DNDEBUG -DDISABLE_SINGLE -DNTHROW -fpic -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c LogitWrapper.cpp -o LogitWrapper.o
/home/barefootbushman/miniconda3/bin/x86_64-conda_cos6-linux-gnu-c++ -I"/usr/share/R/include" -DNDEBUG -DUSE_R -DNDEBUG -DDISABLE_SINGLE -DNTHROW -fpic -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c PolyaGamma.cpp -o PolyaGamma.o
/home/barefootbushman/miniconda3/bin/x86_64-conda_cos6-linux-gnu-c++ -I"/usr/share/R/include" -DNDEBUG -DUSE_R -DNDEBUG -DDISABLE_SINGLE -DNTHROW -fpic -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c PolyaGammaAlt.cpp -o PolyaGammaAlt.o
/home/barefootbushman/miniconda3/bin/x86_64-conda_cos6-linux-gnu-c++ -I"/usr/share/R/include" -DNDEBUG -DUSE_R -DNDEBUG -DDISABLE_SINGLE -DNTHROW -fpic -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c PolyaGammaSP.cpp -o PolyaGammaSP.o
/home/barefootbushman/miniconda3/bin/x86_64-conda_cos6-linux-gnu-c++ -I"/usr/share/R/include" -DNDEBUG -DUSE_R -DNDEBUG -DDISABLE_SINGLE -DNTHROW -fpic -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c InvertY.cpp -o InvertY.o
/home/barefootbushman/miniconda3/bin/x86_64-conda_cos6-linux-gnu-c++ -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o BayesLogit.so Matrix.o MatrixFrame.o RRNG.o RNG.o FSF_nmix.o LogitWrapper.o PolyaGamma.o PolyaGammaAlt.o PolyaGammaSP.o InvertY.o -lblas -lgfortran -lm -lquadmath -llapack -L/usr/lib/R/lib -lR
/home/barefootbushman/miniconda3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -lblas
/home/barefootbushman/miniconda3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -llapack
collect2: error: ld returned 1 exit status
/usr/share/R/share/make/shlib.mk:6: recipe for target 'BayesLogit.so' failed
make: *** [BayesLogit.so] Error 1
ERROR: compilation failed for package ‘BayesLogit’
* removing ‘/home/barefootbushman/R/x86_64-pc-linux-gnu-library/3.6/BayesLogit’
Error: Failed to install 'unknown package' from URL:
(converted from warning) installation of package ‘/tmp/RtmpFgmgVU/file10aaf61ed1/BayesLogit_0.6.tar.gz’ had non-zero exit status
>
I know lblas and lapack are installed in the following folders:
(base) barefootbushman@barefootbushman:~$ whereis lblas
lblas: /usr/lib/lblas.so
(base) barefootbushman@barefootbushman:~$ whereis lapack
lapack: /usr/lib/x86_64-linux-gnu/lapack
How do I tell R to look in the correct folder?
Secondly, when updating/installing new packages, I keep getting ANTICONF ERROR
Here is an example:
> install.packages("curl")
Installing package into ‘/home/barefootbushman/R/x86_64-pc-linux-gnu-library/3.6’
(as ‘lib’ is unspecified)
trying URL 'https://cloud.r-project.org/src/contrib/curl_4.0.tar.gz'
Content type 'application/x-gzip' length 379180 bytes (370 KB)
==================================================
downloaded 370 KB
* installing *source* package ‘curl’ ...
** package ‘curl’ successfully unpacked and MD5 sums checked
** using staged installation
Found pkg-config cflags and libs!
Using PKG_CFLAGS=-I/usr/include/x86_64-linux-gnu
Using PKG_LIBS=-lcurl
------------------------- ANTICONF ERROR ---------------------------
Configuration failed because libcurl was not found. Try installing:
* deb: libcurl4-openssl-dev (Debian, Ubuntu, etc)
* rpm: libcurl-devel (Fedora, CentOS, RHEL)
* csw: libcurl_dev (Solaris)
If libcurl is already installed, check that 'pkg-config' is in your
PATH and PKG_CONFIG_PATH contains a libcurl.pc file. If pkg-config
is unavailable you can set INCLUDE_DIR and LIB_DIR manually via:
R CMD INSTALL --configure-vars='INCLUDE_DIR=... LIB_DIR=...'
--------------------------------------------------------------------
ERROR: configuration failed for package ‘curl’
* removing ‘/home/barefootbushman/R/x86_64-pc-linux-gnu-library/3.6/curl’
* restoring previous ‘/home/barefootbushman/R/x86_64-pc-linux-gnu-library/3.6/curl’
Warning in install.packages :
installation of package ‘curl’ had non-zero exit status
The downloaded source packages are in
‘/tmp/RtmpFgmgVU/downloaded_packages’
I know I have libcurl already installed at these locations:
(base) barefootbushman@barefootbushman:~$ whereis libcurl
libcurl: /usr/lib/x86_64-linux-gnu/libcurl.la /usr/lib/x86_64-linux-gnu/libcurl.so /usr/lib/x86_64-linux-gnu/libcurl.a
This happens for nearly every R package, with different source packages.
The third issue relates to zlib.h. Again looking in the wrong directory
> install.packages("git2r")
Installing package into ‘/home/barefootbushman/R/x86_64-pc-linux-gnu-library/3.6’
(as ‘lib’ is unspecified)
trying URL 'https://cloud.r-project.org/src/contrib/git2r_0.26.1.tar.gz'
Content type 'application/x-gzip' length 1214783 bytes (1.2 MB)
==================================================
downloaded 1.2 MB
* installing *source* package ‘git2r’ ...
** package ‘git2r’ successfully unpacked and MD5 sums checked
** using staged installation
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
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 for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
configure: Package dependency requirement 'libgit2 >= 0.26.0' could not be satisfied.
-----------------------------------------------------------------------
Unable to find the libgit2 library on this system. Building 'git2r'
using the bundled source of the libgit2 library.
To build git2r with a system installation of libgit2, please install:
libgit2-dev (package on e.g. Debian and Ubuntu)
libgit2-devel (package on e.g. Fedora, CentOS and RHEL)
libgit2 (Homebrew package on OS X)
and try again.
If the libgit2 library is installed on your system but the git2r
configuration is unable to find it, you can specify the include and
lib path to libgit2 with:
given you downloaded a tar-gz archive:
R CMD INSTALL git2r-.tar.gz --configure-vars='INCLUDE_DIR=/path/to/include LIB_DIR=/path/to/lib'
or cloned the GitHub git2r repository into a directory:
R CMD INSTALL git2r/ --configure-vars='INCLUDE_DIR=/path/to/include LIB_DIR=/path/to/lib'
or download and install git2r in R using
install.packages('git2r', type='source', configure.vars='LIB_DIR=-L/path/to/libs INCLUDE_DIR=-I/path/to/headers')
On macOS, another possibility is to let the configuration
automatically download the libgit2 library from the Homebrew
package manager with:
R CMD INSTALL git2r-.tar.gz --configure-vars='autobrew=yes'
or
R CMD INSTALL git2r/ --configure-vars='autobrew=yes'
or
install.packages('git2r', type='source', configure.vars='autobrew=yes')
-----------------------------------------------------------------------
configure: Attempting configuration of bundled libgit2
checking size of void*... 8
checking for library containing inflate... no
checking for zlib... yes
checking for library containing EVP_EncryptInit... no
checking for openssl... yes
checking for library containing libssh2_version... no
checking for libssh2... yes
checking for ANSI C header files... no
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for struct stat.st_mtim... yes
checking for struct stat.st_mtimespec... no
checking for struct stat.st_mtime_nsec... no
checking for struct stat.st_mtim.tv_nsec... yes
checking for futimens... no
checking for qsort_r... no
checking for qsort_s... no
----- Results of the git2r package configure -----
HTTPS transport......................: yes
LibSSH2 to enable the SSH transport..: yes
--------------------------------------------------
configure: creating ./config.status
config.status: creating src/Makevars_libgit2
** libs
/home/barefootbushman/miniconda3/bin/x86_64-conda_cos6-linux-gnu-cc -I"/usr/share/R/include" -DNDEBUG -I. -Ilibgit2/src -Ilibgit2/include -Ilibgit2/deps/http-parser -DGIT_ARCH_64 -DGIT_OPENSSL=1 -DGIT_HTTPS=1 -DGIT_SSH -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DLIBGIT2_NO_FEATURES_H -DR_NO_REMAP -DSTRICT_R_HEADERS -DGIT_SHA1_OPENSSL=1 -DGIT_USE_STAT_MTIM -DGIT_USE_NSEC -DGIT_DEPRECATE_HARD -DGIT2R_HAVE_BUF_DISPOSE -DGIT2R_HAVE_OBJECT_ANY -DGIT2R_HAVE_GIT_ERROR -fpic -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c libgit2/src/apply.c -o libgit2/src/apply.o
In file included from libgit2/src/delta.h:10:0,
from libgit2/src/apply.c:22:
libgit2/src/pack.h:13:10: fatal error: zlib.h: No such file or directory
#include <zlib.h>
^~~~~~~~
compilation terminated.
/usr/lib/R/etc/Makeconf:167: recipe for target 'libgit2/src/apply.o' failed
make: *** [libgit2/src/apply.o] Error 1
ERROR: compilation failed for package ‘git2r’
* removing ‘/home/barefootbushman/R/x86_64-pc-linux-gnu-library/3.6/git2r’
* restoring previous ‘/home/barefootbushman/R/x86_64-pc-linux-gnu-library/3.6/git2r’
Warning in install.packages :
installation of package ‘git2r’ had non-zero exit status
The downloaded source packages are in
‘/tmp/RtmpFgmgVU/downloaded_packages’
Again, zlib is here:
(base) barefootbushman@barefootbushman:~$ whereis zlib.h
zlib: /usr/include/zlib.h /usr/share/man/man3/zlib.3.gz
Any help overcoming these issue would be greatly appreciated. I need to get on with a load of work, and have spent days trying to understand how to change the directories where R is looking for these files.