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

介绍

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

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

准备

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

  • 一台已经设置好可以使用sudo命令的非root账号的Ubuntu服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器
  • 至少 1GB的RAM
  • 安装R

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

步骤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() 功能devtools从官方的Comprehensive R Archive Network(CRAN)进行安装。

install.packages('devtools')

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

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

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

第3步 - 从GitHub安装R包

在这一步中,我们将直接从GitHub安装Shiny的最新开发版本,这是一个R的Web应用程序框架。我们将使用devtools提供的install_github功能执行此操作。GitHub包由author(rstudio)及其名称(shiny)定义,您可以从主项目页面的GitHub URL中找到它:https://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。

运行闪亮:

我们将连接到R,这次是普通用户。务必输入R标题大小写。

R

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

library("shiny")

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

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

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

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

重新安装Shiny版本的Shiny

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

让我们花一点时间回到稳定的包裹。首先,我们将中断与服务器CTRL+ C,然后退出将R壳CTRL+ D并重新输入它作为根:

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教程

更多Ubuntu教程请前往腾讯云+社区学习更多知识。

参考文献:《How to Install R Packages using devtools on Ubuntu 18.04》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算

6个虚拟机备份和恢复的最佳实践

虚拟机的架构与传统的物理机有着天壤之别,因此不适合于传统的备份方案。在本文中,我们将介绍一些虚拟机备份的最佳实践。

229100
来自专栏后端技术探索

nginx常见面试题

Nginx的并发能力在同类型网页服务器中的表现,相对而言是比较好的,因此受到了很多企业的青睐,我国使用Nginx网站的知名用户包括腾讯、淘宝、百度、京东、新浪、...

19320
来自专栏维C果糖

详述 IntelliJ IDEA 提交代码前的 Code Analysis 机制

在我们用 IntelliJ IDEA 向 SVN 或者 Git 提交代码的时候,IntelliJ IDEA 提供了一个自动分析代码的功能,即Perform co...

27950
来自专栏java学习

Java程序员必备的11大Intellij插件

链接:https://www.jianshu.com/p/686ba0ae4ac2

12610
来自专栏后端技术探索

Nginx面试中最常见的18道题 抱佛脚必备

Nginx的并发能力在同类型网页服务器中的表现,相对而言是比较好的,因此受到了很多企业的青睐,我国使用Nginx网站的知名用户包括腾讯、淘宝、百度、京东、新浪、...

30130
来自专栏java思维导图

图文并茂,深入浅出Nginx

01前言 Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。 ? 架构图 上图基本上说明...

43550
来自专栏java技术学习之道

10大必备的Intellij插件,大幅提高你的工作效率

39630
来自专栏叔叔的博客

关于bootstrap.yml,踩的坑

首先,bootstrap.yml作为配置文件,是在springcloud中实现的,而不是springboot!

32520
来自专栏木头编程 - moTzxx

Laravel 文件上传功能实现

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

2.2K40
来自专栏Java工程师日常干货

深入浅出Nginx前言反向代理服务器?Nginx的Master-Worker模式我们的主战场:nginx.conf

Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。

15030

扫码关注云+社区

领取腾讯云代金券