我的gdtools软件包有问题。我想从源代码安装它,但是不幸的是我无法在Linux机器上安装任何额外的库。我要解决的问题是在安装时包含软件包:
$scope.fileSelected = function (file) {
$.ajax({
url: 'Files_Uploaded/' + file.name,
type: 'HEAD',
error: function () {
//file does not exist
existsError.style.display = 'none';
saveSubmitButton.removeAttribute("disabled");
saveButton.removeAttribute("disabled");
uploadFile(file); window.location.host
},
success: function () {
//file exists
existsError.style.display = 'block';
}
});
};
这使我更进一步。但是然后我需要再包含一个指向freetype库的目录:/extra/gdtools/windows/cairo-1.15.10/include/freetype2/freetype
但是当我尝试将其添加到命令时,它不起作用。我已经尝试了许多方法来执行此操作,例如,它不起作用:
install.packages(repos = c("http://localhost.net/cran"), type = "source", pkgs = c('gdtools'), configure.vars = c("INCLUDE_DIR=/extra/gdtools/windows/cairo-1.15.10/include/cairo"))
有人可以帮我怎么做吗?我也从R CMD级别尝试过。任何解决方案对我来说都是可以接受的。
答案 0 :(得分:0)
这可能是一个非常令人困惑的情况,因为 R 文档没有明确告诉您如何执行此操作。但是,有几个选项可以完成工作。正如您将在示例中看到的,诀窍是如何将字符串组合在一起。要在 INCLUDE_DIR 或 LIB_DIR 中获得多个目录,只需将多个目录嵌入完整的双引号字符串中的单引号中即可。但是请注意,您不需要将 -I 或 -L 标志放在字符串的开头,但必须将它们放在其他目录之前.这是因为 R 会在解析出 INCLUDE_DIR 和 LIB_DIR 后为您添加它。
对这些方法的一个警告是,并非每个包都可以自由实现其他变量和查找库和头文件的方法。虽然 LIB_DIR 和 INCLUDE_DIR 似乎很常用,但可以找到使用其他特定环境变量代替这些变量的包。包也有可能没有以 -I 或 -L 开头。只需了解包装的期望即可。好消息是,即使更改了变量名称等,这些一般原则仍应适用。
在命令行安装中可以使用配置变量
R CMD INSTALL --configure-vars="LIB_DIR='/my/lib/dir1 -L/my/lib/dir2' INCLUDE_DIR='/my/include/dir1 /my/include/dir2'" /path/to/myPackage
或在 R 中
install.packages("myPackage", configure.vars=c("LIB_DIR='/my/lib/dir1 -L/my/lib/dir2' INCLUDE_DIR='/my/include/dir1 -I/my/include/dir2'"))
您还可以在 .Renviron 文件中为 R 设置环境变量。该文件在启动时由 R 读取。请参阅关于 R 如何处理 .Renviron 以及它期望它位于何处的 R documentation。您可以简单地在文件中添加所需的变量,R 将在安装包时使用它们。
LIB_DIR="/my/lib/dir1 -L/my/lib/dir2"
INCLUDE_DIR="/my/include/dir2 -I/my/include/dir2"
虽然这个选项很方便,但这也意味着这些变量将用于所有包。 configure vars 方法可能更适合一次性安装或需要按包进行设置(通过命名向量或列表完成)。