我是Linux新手,但我在安装没有Windows二进制文件的R
软件包时遇到了很多麻烦。我宁愿不安装完整的Linux安装并移动所有内容。从Windows Interoperability开始判断似乎这样应该是可能的。
我想从块引用中的GNU R package cplexAPI文档中选择任何一个选项。我试过了:
C:\Users\zejas>bash
zejas@DESKTOP-JASON:/mnt/c/Users/zejas$ R CMD INSTALL cplexAPI_1.3.2.tar.gz
The program 'R' is currently not installed. You can install it by typing:
sudo apt-get install r-base-core
zejas@DESKTOP-JASON:/mnt/c/Users/zejas$
基于以下示例:
$/mnt/c/Windows/System32/notepad.exe
我试过了:
zejas@DESKTOP-JASON:/mnt/c/Users/zejas$ $/mnt/C/Program Files/Microsoft/MRO-3.3.1/bin
bash: $/mnt/C/Program: No such file or directory
zejas@DESKTOP-JASON:/mnt/c/Users/zejas$ /mnt/C/Program Files/Microsoft/MRO-3.3.1/bin
bash: /mnt/C/Program: No such file or directory
zejas@DESKTOP-JASON:/mnt/c/Users/zejas$ /mnt/C/Program Files/Microsoft/MRO-3.3.1/bin/R.exe
bash: /mnt/C/Program: No such file or directory
zejas@DESKTOP-JASON:/mnt/c/Users/zejas$ $/mnt/C/Program Files/Microsoft/MRO-3.3.1/bin/R.exe
bash: $/mnt/C/Program: No such file or directory
zejas@DESKTOP-JASON:/mnt/c/Users/zejas$ C/Program Files/Microsoft/MRO-3.3.1/bin/R.exe
bash: C/Program: No such file or directory
zejas@DESKTOP-JASON:/mnt/c/Users/zejas$ $/mnt/C/Program Files/Microsoft/MRO-3.3.1/bin/R.exe
bash: $/mnt/C/Program: No such file or directory
zejas@DESKTOP-JASON:/mnt/c/Users/zejas$ /mnt/C/Program Files/Microsoft/MRO-3.3.1/bin/R.exe
bash: /mnt/C/Program: No such file or directory
zejas@DESKTOP-JASON:/mnt/c/Users/zejas$ /mnt/c/Program Files/Microsoft/MRO-3.3.1/bin/R.exe
bash: /mnt/c/Program: No such file or directory
zejas@DESKTOP-JASON:/mnt/c/Users/zejas$ /mnt/c/Windows/System32/notepad.exe
bash: /mnt/c/Windows/System32/notepad.exe: cannot execute binary file: Exec format error
有什么想法吗?
----------------------------------------------- -----------------------------
Linux和MacOS X安装
----------------------------------------------- -----------------------------
CPLEX可调用库和CPLEX的位置包括 目录可以在/README.html>中找到 是CPLEX安装目录。还看看了 CPLEX的示例Makefile中的变量CLNFLAGS和COPT 安装。在那里,变量CPLEXLIBDIR指向可调用的 图书馆目录。
有几种方法可以安装cplexAPI包:
1)直接设置变量PKG_CFLAGS,PKG_CPPFLAGS和PKG_LIBS,例如:
R CMD INSTALL --configure-args =" \ PKG_CFLAGS =' -m64 -fPIC' \
PKG_CPPFLAGS =' -I / CPLEX /包括' \
PKG_LIBS =' -L $ {CPLEXLIBDIR} -lcplex -m64 -lm -pthread'" \
cplexAPI_x.x.x.tar.gzPKF_CFLAGS是可选的,但PKG_CPPFLAGS和PKG_LIBS都必须是 给出。
2)使用--with-cplex - :
- with-cplex-include = PATH,PATH是include目录 CPLEX
- with-cplex-lib = PATH,PATH是目录 含有 可调用的CPLEX库。
R CMD INSTALL --configure-args =" \ --with-cplex-include = / path / to / include / dir \ --with-CPLEX-LIB = /路径/到/ LIB /目录" cplexAPI_x.x.x.tar.gz
当使用--with-cplex-时,两个参数--with-cplex-lib和 必须提供--with-cplex-include。
- with-cplex-link = -l ...库到链接器的路径 汇编
如果没有给出--with-cplex-link,' -lcplex -lm -pthread'将会 用作默认值。
- with-cplex-cflags = ...可选CFLAGS
可以使用另一个参数来使用debuging CPLEX的C API中包含的例程:
- with-cplex-check = PATH,PATH是目录 含有 来自CPLEX示例目录的文件check.c。
R CMD INSTALL --configure-args =" \
--with-CPLEX-LIB =' /路径/到/ LIB /目录' \ --with-cplex-include =' / path / to / include / dir' \ --with-cplex-link =' -lcplex -m64 -lm -pthread' \ --with-cplex-cflags =' -m64 -fPIC' \ --with-cplex-check =' / path / to / examples / dir / examples / src / c'" \ cplexAPI_x.x.x.tar.gz3)提供CPLEX安装的位置:
- 与-CPLEX-DIR = PATH PATH是CPLEX目录。这不是CPLEX安装目录,它是包含的目录 lib / include /和examples /目录。通常这是 / CPLEX。
R CMD INSTALL --configure-args ="
--with-CPLEX-DIR =' / CPLEX'" \ cplexAPI_x.x.x.tar.gz此过程将采用第一种系统类型和库格式 它找到了。编译所需的信息来自于 示例Makefile。
4)不提供任何信息:
R CMD INSTALL cplexAPI_x.x.x.tar.gz 此过程将尝试查找CPLEX交互式优化器或指向的CPLEX_BIN环境变量 将使用CPLEX交互式优化器。目录有两个级别 以上用作CPLEX目录,获取所有其他信息 来自上面#3中的CPLEX示例Makefile。
答案 0 :(得分:0)
首先,要访问其中包含空格的路径,请使用双引号:
"/mnt/c/Program Files/Microsoft/MRO-3.3.1/bin/R.exe"
其次,如果您构建了Windows 10或更高版本的14951,则只能从bash运行Windows程序。这在您链接到的MSDN页面顶部注明:
适用于Linux的Windows子系统可以调用本机Windows二进制文件,并可以从Windows命令行调用。运行Anniversary Update build 14951的Windows 10用户可以使用此功能。
此版本仍在Windows Insider版本中,因此目前尚未推出(截至2017年1月16日,最新的GA版本为14393)。目前,如果您需要此功能,可以安装cbwin。
第三,从Linux shell运行R不会神奇地解决预编译二进制包不可用的原因:cplexAPI依赖于IBM的CPLEX Studio应用程序,您仍然需要将它用于R包上班。假设您确实可以使用此功能,则可以下载cplexAPI源并从Windows 编译包,而无需触及bash shell。