无法在R 3.3.0上安装nloptr软件包

时间:2016-05-24 23:27:11

标签: r packages nlopt

我无法在R 3.3.0上安装nloptr 1.0.4软件包。消息如下:

> install.packages("nloptr")
Installing package into ‘/Users/fgomesbarros/Library/R/3.3/library
(as ‘lib’ is unspecified)
trying URL 'https://cran.revolutionanalytics.com/src/contrib/nloptr_1.0.4.tar.gz'
Content type 'application/octet-stream' length 353942 bytes (345 KB)
==================================================
downloaded 345 KB

* installing *source* package ‘nloptr’ ...
** package ‘nloptr’ successfully unpacked and MD5 sums checked
checking for g++... g++
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++ accepts -g... yes
checking how to run the C++ preprocessor... g++ -E
checking whether we are using the GNU C++ compiler... (cached) yes
checking whether g++ accepts -g... (cached) yes
checking for pkg-config... yes
configure: Now testing for NLopt header file.
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
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 nlopt.h usability... yes
checking nlopt.h presence... yes
checking for nlopt.h... yes
configure: Suitable NLopt library found.
configure: creating ./config.status
config.status: creating src/Makevars
** libs
/usr/bin/clang++ -I/opt/local/Library/Frameworks/R.framework/Resources/include -DNDEBUG  -I/opt/local/include    -fPIC  -pipe -Os -arch x86_64 -stdlib=libstdc++  -c dummy.cpp -o dummy.o
/usr/bin/clang -I/opt/local/Library/Frameworks/R.framework/Resources/include -DNDEBUG  -I/opt/local/include    -fPIC  -pipe -Os -arch x86_64  -c nloptr.c -o nloptr.o
/usr/bin/clang++ -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/opt/local/Library/Frameworks/R.framework/Resources/lib -L/opt/local/lib -Wl,-headerpad_max_install_names -o nloptr.so dummy.o nloptr.o -F/opt/local/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
installing to /Users/fgomesbarros/Library/R/3.3/library/nloptr/libs
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
Error in dyn.load(file, DLLpath = DLLpath, ...) : 
  unable to load shared object '/Users/fgomesbarros/Library/R/3.3/library/nloptr/libs/nloptr.so':
  dlopen(/Users/fgomesbarros/Library/R/3.3/library/nloptr/libs/nloptr.so, 6): Symbol not found: _nlopt_add_equality_mconstraint
  Referenced from: /Users/fgomesbarros/Library/R/3.3/library/nloptr/libs/nloptr.so
  Expected in: flat namespace
 in /Users/fgomesbarros/Library/R/3.3/library/nloptr/libs/nloptr.so
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/Users/fgomesbarros/Library/R/3.3/library/nloptr’
* restoring previous ‘/Users/fgomesbarros/Library/R/3.3/library/nloptr’
Warning in install.packages :
  installation of package ‘nloptr’ had non-zero exit status

The downloaded source packages are in
    ‘/private/var/folders/rz/dp6vmb39165406h9qv69q60c0000gn/T/RtmpLvLOmn/downloaded_packages’`

我的R版本是3.3.0,如下所示:

> version
               _                           
platform       x86_64-apple-darwin12.6.0   
arch           x86_64                      
os             darwin12.6.0                
system         x86_64, darwin12.6.0        
status                                     
major          3                           
minor          3.0                         
year           2016                        
month          05                          
day            03                          
svn rev        70573                       
language       R                           
version.string R version 3.3.0 (2016-05-03)
nickname       Supposedly Educational      

任何线索?

我还尝试在R的旧版本(2.3.3和2.3.4)中安装并遇到同样的问题。

提前致谢。

5 个答案:

答案 0 :(得分:2)

我尝试以root身份重新安装软件包,但它确实有效!我不知道为什么。

答案 1 :(得分:0)

我能够使用

在我的Mac上解决问题
$ brew install nlopt

考虑到这个问题,我注意到其他人据说使用

在Ubuntu上解决了这个问题
$ sudo apt-get install libnlopt-dev

显然你现在需要在R之外安装它。

答案 2 :(得分:0)

我不得不重新安装R,使用R-CRAN安装程序并卸载macports包。

终于有效了!

答案 3 :(得分:0)

如果您在macOS High Sierra上使用nloptr 1.2.0和R 3.5.1遇到此问题,由于brew install nlopt中权限不足,/usr/local将失败。解决方法:

$ mkdir /usr/local/Frameworks
$ sudo chown -R $(whoami) /usr/local/Frameworks
$ brew install nlopt

换句话说,您不想更改整个/usr/local目录的权限。当自制程序尝试创建/usr/local/Framework时,安装将失败。因此,如上所示,请手动进行操作。然后重试> install.packages("nloptr")。它对我有用。

答案 4 :(得分:0)

对于我来说,运行CentOS,缺少的拼图是这样的:

     sudo yum install nlopt-devel