Удалите Anaconda R и используйте систему R - PullRequest
1 голос
/ 03 октября 2019

Я частично удалил Anaconda R. База R теперь работает по умолчанию. Однако, когда я устанавливаю некоторые R пакеты с базовой установкой R, они терпят неудачу. Я думаю, что они терпят неудачу из-за старой символической ссылки на anaconda.

Я хочу удалить Anaconda R, потому что слишком много конфликтов версий пакетов.

Я использую Linux Mint 19 (то есть Ubuntu18.04).

Я следовал за этим сообщением , чтобы удалить Анаконду Р. Таким образом, я сделал:

  1. conda uninstall r-base
  2. conda uninstall r-*

Теперь which R возвращает /usr/bin/R. Если я загружаю R из командной строки Linux, используя R, а затем запускаю version в RI, получим:

> version
               _                           
platform       x86_64-pc-linux-gnu         
arch           x86_64                      
os             linux-gnu                   
system         x86_64, linux-gnu           
status                                     
major          3                           
minor          6.1                         
year           2019                        
month          07                          
day            05                          
svn rev        76782                       
language       R                           
version.string R version 3.6.1 (2019-07-05)
nickname       Action of the Toes  

Если я попытаюсь установить такой пакет, как install.packages("forecast") (это происходит для любого изнижеприведенных пакетов, которые не работают quadprog, fracdiff и т. д.), затем я получаю следующее сообщение об ошибке:

> install.packages("forecast")
Installing package into ‘/home/sav/R/x86_64-pc-linux-gnu-library/3.6’
(as ‘lib’ is unspecified)
also installing the dependencies ‘quadprog’, ‘fracdiff’, ‘tseries’, ‘RcppArmadillo’

trying URL 'https://cloud.r-project.org/src/contrib/quadprog_1.5-7.tar.gz'
Content type 'application/x-gzip' length 35925 bytes (35 KB)
==================================================
downloaded 35 KB

trying URL 'https://cloud.r-project.org/src/contrib/fracdiff_1.4-2.tar.gz'
Content type 'application/x-gzip' length 57636 bytes (56 KB)
==================================================
downloaded 56 KB

trying URL 'https://cloud.r-project.org/src/contrib/tseries_0.10-47.tar.gz'
Content type 'application/x-gzip' length 164796 bytes (160 KB)
==================================================
downloaded 160 KB

trying URL 'https://cloud.r-project.org/src/contrib/RcppArmadillo_0.9.700.2.0.tar.gz'
Content type 'application/x-gzip' length 1366153 bytes (1.3 MB)
==================================================
downloaded 1.3 MB

trying URL 'https://cloud.r-project.org/src/contrib/forecast_8.9.tar.gz'
Content type 'application/x-gzip' length 829958 bytes (810 KB)
==================================================
downloaded 810 KB

* installing *source* package ‘quadprog’ ...
** package ‘quadprog’ successfully unpacked and MD5 sums checked
** using staged installation
** libs
gfortran -fno-optimize-sibling-calls -fvisibility=hidden -fvisibility=hidden -fpic -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong -msse2 -mfpmath=sse   -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong  -c aind.f -o aind.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -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 init.c -o init.o
gfortran -fno-optimize-sibling-calls -fvisibility=hidden -fvisibility=hidden -fpic -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong -msse2 -mfpmath=sse   -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong  -c solve.QP.compact.f -o solve.QP.compact.o
gfortran -fno-optimize-sibling-calls -fvisibility=hidden -fvisibility=hidden -fpic -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong -msse2 -mfpmath=sse   -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong  -c solve.QP.f -o solve.QP.o
gfortran -fno-optimize-sibling-calls -fvisibility=hidden -fvisibility=hidden -fpic -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong -msse2 -mfpmath=sse   -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-uuRxut/r-base-3.6.1=. -fstack-protector-strong  -c util.f -o util.o
gcc -std=gnu99 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o quadprog.so aind.o init.o solve.QP.compact.o solve.QP.o util.o -lblas -lgfortran -lm -lquadmath -lgfortran -lm -lquadmath -L/usr/lib/R/lib -lR
/home/sav/anaconda3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.2.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -lblas
collect2: error: ld returned 1 exit status
make: *** [/usr/share/R/share/make/shlib.mk:6: quadprog.so] Error 1
ERROR: compilation failed for package ‘quadprog’
* removing ‘/home/sav/R/x86_64-pc-linux-gnu-library/3.6/quadprog’
* installing *source* package ‘fracdiff’ ...
** package ‘fracdiff’ successfully unpacked and MD5 sums checked
** using staged installation
** libs
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -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 fdcore.c -o fdcore.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -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 fdgam.c -o fdgam.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -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 fdhess.c -o fdhess.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -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 fdmin.c -o fdmin.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -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 fdsim.c -o fdsim.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -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 init.c -o init.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -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 pmult.c -o pmult.o
gcc -std=gnu99 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o fracdiff.so fdcore.o fdgam.o fdhess.o fdmin.o fdsim.o init.o pmult.o -lblas -lgfortran -lm -lquadmath -L/usr/lib/R/lib -lR
/home/sav/anaconda3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.2.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -lblas
collect2: error: ld returned 1 exit status
make: *** [/usr/share/R/share/make/shlib.mk:6: fracdiff.so] Error 1
ERROR: compilation failed for package ‘fracdiff’
* removing ‘/home/sav/R/x86_64-pc-linux-gnu-library/3.6/fracdiff’
* installing *source* package ‘RcppArmadillo’ ...
** package ‘RcppArmadillo’ successfully unpacked and MD5 sums checked
** using staged installation
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 g++ -std=gnu++11 accepts -g... yes
checking how to run the C++ preprocessor... g++ -std=gnu++11 -E
checking whether we are using the GNU C++ compiler... (cached) yes
checking whether g++ -std=gnu++11 accepts -g... (cached) yes
checking whether g++ version is sufficient... yes, with OpenMP as version 7.2.0
checking for macOS... checking LAPACK_LIBS... system LAPACK found
checking for OpenMP... found and suitable
configure: creating ./config.status
config.status: creating inst/include/RcppArmadilloConfigGenerated.h
config.status: creating src/Makevars
** libs
g++ -std=gnu++11 -I"/usr/share/R/include" -DNDEBUG  -I"/home/sav/R/x86_64-pc-linux-gnu-library/3.6/Rcpp/include"  -I../inst/include -fopenmp -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 RcppArmadillo.cpp -o RcppArmadillo.o
g++ -std=gnu++11 -I"/usr/share/R/include" -DNDEBUG  -I"/home/sav/R/x86_64-pc-linux-gnu-library/3.6/Rcpp/include"  -I../inst/include -fopenmp -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 RcppExports.cpp -o RcppExports.o
g++ -std=gnu++11 -I"/usr/share/R/include" -DNDEBUG  -I"/home/sav/R/x86_64-pc-linux-gnu-library/3.6/Rcpp/include"  -I../inst/include -fopenmp -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 fastLm.cpp -o fastLm.o
g++ -std=gnu++11 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o RcppArmadillo.so RcppArmadillo.o RcppExports.o fastLm.o -fopenmp -llapack -lblas -lgfortran -lm -lquadmath -L/usr/lib/R/lib -lR
/home/sav/anaconda3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.2.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -llapack
/home/sav/anaconda3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.2.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -lblas
collect2: error: ld returned 1 exit status
make: *** [/usr/share/R/share/make/shlib.mk:6: RcppArmadillo.so] Error 1
ERROR: compilation failed for package ‘RcppArmadillo’
* removing ‘/home/sav/R/x86_64-pc-linux-gnu-library/3.6/RcppArmadillo’
ERROR: dependency ‘quadprog’ is not available for package ‘tseries’
* removing ‘/home/sav/R/x86_64-pc-linux-gnu-library/3.6/tseries’
ERROR: dependencies ‘fracdiff’, ‘tseries’, ‘RcppArmadillo’ are not available for package ‘forecast’
* removing ‘/home/sav/R/x86_64-pc-linux-gnu-library/3.6/forecast’

The downloaded source packages are in
    ‘/tmp/RtmpS4CVTK/downloaded_packages’
Warning messages:
1: In install.packages("forecast") :
  installation of package ‘quadprog’ had non-zero exit status
2: In install.packages("forecast") :
  installation of package ‘fracdiff’ had non-zero exit status
3: In install.packages("forecast") :
  installation of package ‘RcppArmadillo’ had non-zero exit status
4: In install.packages("forecast") :
  installation of package ‘tseries’ had non-zero exit status
5: In install.packages("forecast") :
  installation of package ‘forecast’ had non-zero exit status

Из кода ошибки я могу определить, что проблемы начинают возникать с компилятором gcc. Похоже, что моя базовая установка R пытается получить доступ к двоичным файлам в папке anaconda3 в /home/sav/anaconda3/bin/:

gcc -std=gnu99 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o quadprog.so aind.o init.o solve.QP.compact.o solve.QP.o util.o -lblas -lgfortran -lm -lquadmath -lgfortran -lm -lquadmath -L/usr/lib/R/lib -lR
/home/sav/anaconda3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.2.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -lblas
collect2: error: ld returned 1 exit status

Примечание. Я не хочу удалять папку anaconda3, поскольку она содержит важные пакеты Python.

Также проблема не относится к forecast упаковке. Если я пойду на RcppArmadillo, я получу похожие ошибки. Линия виновника

g++ -std=gnu++11 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o RcppArmadillo.so RcppArmadillo.o RcppExports.o fastLm.o -fopenmp -llapack -lblas -lgfortran -lm -lquadmath -L/usr/lib/R/lib -lR
/home/sav/anaconda3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.2.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -llapack
/home/sav/anaconda3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.2.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -lblas
collect2: error: ld returned 1 exit status
make: *** [/usr/share/R/share/make/shlib.mk:6: RcppArmadillo.so] Error 1
ERROR: compilation failed for package ‘RcppArmadillo’

My ~/.bashrc содержит следующие строки

# added by Anaconda3 installer
# export PATH="/home/sav/anaconda3/bin:$PATH"

# added by Anaconda3 installer
export PATH="/home/sav/anaconda3/bin:$PATH"
. /home/sav/anaconda3/etc/profile.d/conda.sh

1 Ответ

0 голосов
/ 04 октября 2019

Частичное решение (используйте с осторожностью)

Если я закомментирую последние две строки сценария, которые Анаконда добавила к моим ~/.bashrc, следующим образом:

# added by Anaconda3 installer
# export PATH="/home/sav/anaconda3/bin:$PATH"

# added by Anaconda3 installer
# export PATH="/home/sav/anaconda3/bin:$PATH"
# . /home/sav/anaconda3/etc/profile.d/conda.sh

Затем перезагрузите мой компьютер. Это решает проблему того, что R пытается использовать компилятор gcc от Anaconda. В результате я могу установить все пакеты R, которые ранее не работали.

Меня беспокоит, что это грубое решение. Я думаю, что комментирование вышеприведенных строк в моем ~/.bashrc будет разрывать Ananconda другими способами, и я все еще хочу использовать Anaconda с Python, скажем, только не R.

...