如何在Ubuntu 18.04上使用devtools安装R包

在这个R教程中,我们将讨论如何安装devtools并使用它直接从git存储库安装包。

介绍

R是一种流行的开源编程语言,专门研究统计计算和图形。 它广泛用于开发统计软件和执行数据分析。 R社区以不断为特定研究领域添加用户生成的包而闻名,这使其适用于许多领域。

在本教程中,我们将讨论如何安装devtools并使用它直接从GitHub安装R包。

先决条件

要继续学习本教程,您需要一台Ubuntu 18.04服务器:

一旦满足这些先决条件,您就可以开始了。

第1步 - 为devtools安装系统依赖项

我们将从交互式shell安装devtools,但在此之前,我们需要安装这些系统依赖项:

sudo apt install build-essential libcurl4-gnutls-dev libxml2-dev libssl-dev

有了这些依赖关系,我们就可以继续了。

第2步 - 安装devtools包

通过devtools,我们将能够直接从GitHub,BitBucket,本地文件安装和构建软件包,并从CRAN安装特定版本。 为了使devtools在系统范围内可用,我们将以root身份输入R的shell:

sudo -i R

在监视器内,我们将使用install.packages()函数从官方的Comprehensive R Archive Network(CRAN)安装devtools

install.packages('devtools')

安装可能需要一段时间。 当它完成时,接近安装输出的末尾,我们应该看到:

...
** testing if installed package can be loaded
* DONE (devtools)

接下来,我们将直接从GitHub获取和构建项目时进行测试。

第3步 - 从GitHub安装R包

在这一步中,我们将直接从GitHub安装Shiny的最新开发版本,这是一个R的Web应用程序框架。 我们将使用devtools提供的install_github函数来完成此操作。 GitHub包由其作者( rstudio )及其名称( shiny )定义,您可以从主项目页面的GitHub URL找到它: https://github.com/ rstudio/shinyhttps://github.com/ rstudio/shiny

使用以下命令安装:

devtools::install_github('rstudio/shiny')

当我们在输出结尾附近看到以下行并返回到R提示时,安装已成功完成:

. . .
** testing if installed package can be loaded
* DONE (shiny)
>

我们可以使用以下命令查看我们安装的Shiny的特定版本:

packageVersion("shiny")
[1] ‘1.1.0.9000’

在下一步中,我们将快速浏览一下Shiny。 我们首先需要执行几个系统级任务,因此我们将使用以下命令或使用CTRL-D退出监视器:

q()

其中任何一个都会提示您保存工作区图像,R的工作环境包括用户定义的对象。 这不是我们的目的,所以你可以安全地输入n

由于我们将使用Web浏览器查看Shiny可以执行的示例,因此我们将确保允许Web流量。

检查防火墙

Shiny是一个Web应用程序框架,因此为了在浏览器中查看其示例,我们需要确保在我们的防火墙上允许Web流量。 内置Web服务器在每次启动时随机选择一个端口,除非我们使用特定值启动它。 为了简化防火墙管理,我们在运行示例时指定端口4040。

让我们检查防火墙的状态,如果我们启用它:

sudo ufw status

如果您遵循我们的必备教程,则只允许SSH,如以下输出所示:

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

您可能有其他规则或根本没有防火墙规则。 由于在这种情况下只允许SSH流量,我们将添加端口4040并在完成后检查状态。

sudo ufw allow 4040/tcp
sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
4040/tcp                   ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
4040/tcp (v6)              ALLOW       Anywhere (v6)

配置防火墙后,我们准备好了解一下Shiny。

运行Shiny:

我们将连接到R,这次是普通用户。 一定要输入R作为标题大小写。

R

接下来,我们将加载Shiny包:

library("shiny")

Shiny包含11个内置示例,演示了它的工作原理。 我们将加载库,然后运行第一个示例。 因为我们正在处理远程服务器,所以我们将指定主机地址以便从本地计算机进行浏览。 我们还将launch.browser设置为FALSE因此它不会尝试在远程服务器上启动浏览器。

runExample("01_hello", host = "203.0.113.0", port = 4040, launch.browser= FALSE)
Listening on http://203.0.113.0:4040

我们在网络浏览器中访问此网址:

Shiny的01-Hello示例的屏幕截图

我们安装Shiny来说明使用devtools直接从GitHub存储库安装。 然后,我们运行了没有提升权限的示例Shiny应用程序,以验证所有用户是否都可以访问该程序包。

重新安装Shiny版本的Shiny

对于生产情况,我们将从CRAN安装,除非我们有令人信服的理由从存储库安装。

让我们花一点时间回到稳定的包裹。 首先,我们将使用CTRL + C中断服务器,然后使用CTRL + D退出R shell并以root身份重新输入:

sudo -i R

我们可以使用以下命令安装稳定版本,该命令将覆盖我们在前面步骤中完成的GitHub安装。

install.packages("shiny")

让我们验证版本的变化:

packageVersion("shiny")
[1] ‘1.1.0’

输出表明我们从GitHub安装的版本不是1.1.0.9000 ,而是运行稳定版本。

注意:我们还可以从描述文件的系统命令行中找到有关软件包版本的更多信息。

cat /usr/local/lib/R/site-library/shiny/DESCRIPTION

结论

在本教程中,我们直接从GitHub安装了最新的Shiny软件包,并学习了如何从CRAN重新安装其稳定版本。

如果您有兴趣了解有关Shiny本身的更多信息,可以查看RStudio的Shiny教程 您可能还有兴趣安装开源RStudio Server ,这是一个运行在远程Linux服务器上的R版本的接口,它将IDE带到基于服务器的部署。