Я пытаюсь установить пакет R nloptr на компьютере CentOS Linux, который не имеет подключения к Интернету следующим образом:
install.packages("/home/ravi/nloptr_1.0.4.tar.gz", repos = NULL, type="source")
Эта команда, в свою очередь, ищет следующий файл в Интернете
http://ab-initio.mit.edu/nlopt/nlopt-2.4.2.tar.gz
Однако это не удается, так как нет подключения к Интернету.
Я попробовал предложение из следующего сообщения stackoverflow:
проблема с установкой nloptr локально на Ubuntu
Я изменил URL в файлах configure и configure.ac следующим образом:
NLOPT_URL="file:///home//ravi//${NLOPT_TGZ}"
Однако при попытке установить пакет снова возникает следующая ошибка:
> install.packages("/home/ravi/nloptr_1.0.4.tar.gz", repos = NULL, type="source")
* installing *source* package 'nloptr' ...
files 'configure', 'configure.ac' have the wrong MD5 checksums
ERROR: 'configure' exists but is not executable -- see the 'R Installation and Administration Manual'
* removing '/opt/vertica/R/library/nloptr'
Warning message:
In install.packages("/home/ravi/nloptr_1.0.4.tar.gz", :
installation of package '/home/ravi/nloptr_1.0.4.tar.gz' had non-zero exit status
Может ли кто-нибудь помочь мне установить этот R-пакет локально?
Обновление 1
Основываясь на предложении от Dirk при первом установлении nlopt, я выполнил инструкции, приведенные на следующей странице:
http://ab-initio.mit.edu/wiki/index.php/NLopt_Installation
Я установил nlopt следующим образом:
./configure --enable-shared
make
make install
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib
Когда я попытался переустановить nloptr в R, он больше не ищет ссылку nlopt, но вызывает следующую ошибку:
Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object '/opt/vertica/R/library/nloptr/libs/nloptr.so':
/opt/vertica/R/library/nloptr/libs/nloptr.so: undefined symbol: nlopt_set_maxtime
Error: loading failed
Execution halted
ERROR: loading failed
* removing '/opt/vertica/R/library/nloptr'
Warning message:
In install.packages("/home/ravi/nloptr_1.0.4.tar.gz", :
installation of package '/home/ravi/nloptr_1.0.4.tar.gz' had non-zero exit status
Обновление 2
Как предложил Дирк, я просмотрел команду ldconfig и использовал следующую ссылку:
http://codeyarns.com/2014/01/14/how-to-add-library-directory-to-ldconfig-cache/
Я редактировал файл /etc/ld.so.conf, добавлял каталог /usr/local/lib, который содержит общую библиотеку и запускал команду ldconfig. Это добавило соответствующую общую библиотеку, как показано ниже:
libnlopt.so.0 (libc6,x86-64) => /usr/local/lib/libnlopt.so.0
libnlopt.so (libc6,x86-64) => /usr/local/lib/libnlopt.so
Однако, когда я попытался переустановить пакет nloptr, я все равно получаю ту же ошибку общего объекта.
Может ли кто-нибудь вести меня по ошибке общей библиотеки?