Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从webinterface自动安装R软件包_R_Ubuntu_Package - Fatal编程技术网

从webinterface自动安装R软件包

从webinterface自动安装R软件包,r,ubuntu,package,R,Ubuntu,Package,为了提供一种简单的方法,用更多的软件包扩展我的webapp,我开始考虑通过文件链接自动安装R软件包 为了让事情变得简单,让我们假设我有一个输入字段和一个按钮。 输入字段将填充到包源的链接(例如)。 点击按钮后,应下载并安装软件包 我找到了所需的命令: 下载:wgethttp://cran.r-project.org/src/contrib/C50_0.1.0-16.tar.gz 安装1:sudo R CMD安装路径/C50_0.1.0-16.tar.gz--library=/usr/lib/R

为了提供一种简单的方法,用更多的软件包扩展我的webapp,我开始考虑通过文件链接自动安装R软件包

为了让事情变得简单,让我们假设我有一个输入字段和一个按钮。 输入字段将填充到包源的链接(例如)。 点击按钮后,应下载并安装软件包

我找到了所需的命令:

  • 下载:
    wgethttp://cran.r-project.org/src/contrib/C50_0.1.0-16.tar.gz
  • 安装1:
    sudo R CMD安装路径/C50_0.1.0-16.tar.gz--library=/usr/lib/R/site library
  • 安装2:
    sudo R CMD安装路径/C50_0.1.0-16.tar.gz--library=/usr/local/lib/R/site library
  • 安装3:
    sudo R CMD安装路径/C50_0.1.0-16.tar.gz--library=/usr/lib/R/library
在哪里存储这些命令以及如何调用脚本?(可能是php中的exec?)

如何处理sudo?有没有办法通过ajax等发送密码,或者根本不需要密码

你觉得怎么样

编辑(解决方案):

因为在接下来的几个小时里我无法回答自己的问题,所以我用最终得到的解决方案编辑了我的问题

经过一些研究和您的提示,我最终得到了这段代码(在上找到并根据我的需要定制)

installPackage.html

<%
cat(".Rprofile: Setting UK repositoryn")
r = getOption("repos") # hard code the UK repo for CRAN
r["CRAN"] = "http://cran.uk.r-project.org"
options(repos = r)
rm(r)

install.packages("packageNameFromAjaxCall", lib="/usr/lib/R/site-library")
install.packages("packageNameFromAjaxCall", lib="/usr/local/lib/R/site-library")
install.packages("packageNameFromAjaxCall", lib="/usr/lib/R/library")
%>

我已经实现了用户定义的函数,以静默方式安装和加载所需的R包。希望会有所帮助。代码如下:

# Function to Install and Load R Packages
Install_And_Load <- function(Required_Packages)
{
    Remaining_Packages <- Required_Packages[!(Required_Packages %in% installed.packages()[,"Package"])];

    if(length(Remaining_Packages)) 
    {
        install.packages(Remaining_Packages);
    }
    for(package_name in Required_Packages)
    {
        library(package_name,character.only=TRUE,quietly=TRUE);
    }
}

# Specify the list of required packages to be installed and load    
Required_Packages=c("ggplot2", "Rcpp");

# Call the Function
Install_And_Load(Required_Packages);
#安装和加载R软件包的功能

安装和加载您熟悉
devtools
软件包吗?如果有人想安装他们的
rootkit\u 0.1.0.tar.gz
软件包怎么办?@RicardoSaporta还没有。快速查看后,我看不出
devtools
如何为我的问题提供解决方案。@JoshuaUlrich这就是为什么只有我和联合管理员才能安装新软件包的原因。此功能不适用于普通用户。是否有理由不使用
install.packages()
# Function to Install and Load R Packages
Install_And_Load <- function(Required_Packages)
{
    Remaining_Packages <- Required_Packages[!(Required_Packages %in% installed.packages()[,"Package"])];

    if(length(Remaining_Packages)) 
    {
        install.packages(Remaining_Packages);
    }
    for(package_name in Required_Packages)
    {
        library(package_name,character.only=TRUE,quietly=TRUE);
    }
}

# Specify the list of required packages to be installed and load    
Required_Packages=c("ggplot2", "Rcpp");

# Call the Function
Install_And_Load(Required_Packages);