【问题标题】:Bash on Ubuntu on Windows, Run Linux Commands to Install a Windows ProgramBash on Ubuntu on Windows,运行 Linux 命令安装 Windows 程序
【发布时间】:2017-01-16 08:13:44
【问题描述】:

我是 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 安装 --configure-args ="\PKG_CFLAGS='-m64 -fPIC'\
PKG_CPPFLAGS='-I/cplex/include' \
PKG_LIBS='-L${CPLEXLIBDIR} -lcplex -m64 -lm -pthread'" \
cplexAPI_x.x.x.tar.gz

PKF_CFLAGS 是可选的,但 PKG_CPPFLAGS 和 PKG_LIBS 都必须是 给定的。

2) 使用--with-cplex-:

--with-cplex-include=PATH 其中 PATH 是包含目录 CPLEX

--with-cplex-lib=PATH 以 PATH 为目录 包含 CPLEX 的可调用库。

R CMD 安装 --configure-args="\ --with-cplex-include=/path/to/include/dir \ --with-cplex-lib=/path/to/lib/dir" 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

可以使用进一步的参数来使用调试 CPLEX 的 C API 中包含的例程:

--with-cplex-check=PATH 以 PATH 为目录 包含 CPLEX 示例目录中的文件 check.c。

R CMD 安装 --configure-args=" \
--with-cplex-lib='/path/to/lib/dir' \ --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.gz

3) 给出 CPLEX 安装的位置:

--with-cplex-dir=PATH PATH 是 CPLEX 目录。这不是 CPLEX 安装目录,它是包含 lib/include/ 和 examples/ 目录。通常这是 /cplex。

R CMD 安装 --configure-args="
--with-cplex-dir='/cplex'" \ cplexAPI_x.x.x.tar.gz

此过程将采用第一个系统类型和库格式 它发现。编译所需的信息取自 示例 Makefile。

4) 不提供任何信息:

R CMD 安装 cplexAPI_x.x.x.tar.gz 此过程将尝试查找 CPLEX 交互式优化器,或 CPLEX_BIN 环境变量指向 将使用 CPLEX 交互式优化器。目录两级 上面用作 CPLEX 目录,所有其他信息都被取走 来自上面 #3 中的 CPLEX 示例 Makefile。

【问题讨论】:

    标签: r linux windows-subsystem-for-linux


    【解决方案1】:

    首先,要访问包含空格的路径,请使用双引号:

    "/mnt/c/Program Files/Microsoft/MRO-3.3.1/bin/R.exe"
    

    其次,如果您拥有 Windows 10 或更高版本的 build 14951,则只能从 bash 运行 Windows 程序。这在您链接到的 MSDN 页面顶部注明:

    适用于 Linux 的 Windows 子系统可以调用本机 Windows 二进制文件并从 Windows 命令行调用。此功能适用于运行周年更新版本 14951 的 Windows 10 用户。

    此版本仍处于 Windows Insider 版本中,因此尚未正式发布(截至 2017 年 1 月 16 日,最新 GA 版本为 14393)。目前,如果您需要此功能,可以安装 cbwin

    第三,从 Linux shell 运行 R 并不能神奇地解决预编译二进制包不可用的原因:cplexAPI 依赖于 IBM 的 CPLEX Studio 应用程序,您仍然需要为 R 包提供此功能去工作。假设您确实有这个,您可以下载 cplexAPI 源代码并从 Windows 编译包,而无需接触 bash shell。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-10
      • 1970-01-01
      • 2017-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多