2. 开发环境搭建:从零铺好路

做任何项目,环境搭得对不对,直接决定后面能走多远。

Shiny 应用部署也一样。你别看它表面上就是个网页,背后是 R 语言、RStudio、Shiny 包这三件套在干活。任何一个环节没装对,后面都跑不起来。

这一章,咱们就把这三样东西装好,再跑通你的第一个 Shiny 应用。说白了,就是给你铺好路,确保后面不出幺蛾子。

开发环境搭建流程 1. 安装 R 语言 核心引擎 2. 安装 RStudio 开发 IDE 3. 安装 Shiny 包 Web 框架 4. 创建第一个 Shiny 应用 验证环境是否正常 部署环境准备就绪 ✅ 顺序不要乱 先 R 后 IDE 再包

2.1 安装 R 语言 —— 拿什么跑代码?

R 是整个 Shiny 应用的计算核心。没有 R,后面一切都免谈。

下载路径

去 CRAN(Comprehensive R Archive Network)官网,找对应操作系统的安装包。我个人习惯直接选清华或中科大的镜像,下载速度快得多。

关键步骤

  • Windows 用户:运行 .exe,一路默认即可。注意安装路径不要带中文。
  • macOS 用户:下载 .pkg 文件,双击安装。
  • Linux 用户:通过包管理器安装,比如 Ubuntu 就是 sudo apt install r-base。

我曾经吃过这个亏:安装路径里带了中文,结果后面装包全都报错,排查了半天才发现是路径问题。你想想看,配错了路径,后续所有操作都没法跑。

装完后,打开终端或者命令行,敲一下这个命令验证是否成功:

R --version

能看到版本号,就说明 R 已经装好了。

版本选择建议

场景推荐版本理由
学习 / 开发最新稳定版功能全,社区支持好
生产部署次新 LTS 版稳定性优先,兼容性好
旧系统兼容根据系统选择避免依赖冲突

2.2 安装 RStudio —— 给你一个好用的工位

RStudio 是一个集成开发环境(IDE),说白了就是让你写代码更舒服的地方。

它本身不干活,但是能帮你管理项目、调试代码、预览图形,对 Shiny 开发来说非常好用。

安装步骤

  1. 去 RStudio 官网下载对应操作系统的安装包。
  2. 双击运行,默认安装即可。

我个人的习惯是,安装完成后先调几个设置:

  • 设置工作目录(Tools → Global Options → Default working directory)
  • 把 Console 的字体调大一点,眼睛不费劲。
  • 打开日志区(左上角 View → Panes → Move Toolbar to Top),方便调试时看到输出。

RStudio 有两个版本:桌面版和服务器版。咱们做开发用桌面版就行。服务器版是给多人协作用的,后面部署章节会提到。

2.3 安装 Shiny 包 —— 让 R 学会做网站

R 本身只做计算,不会做网页。Shiny 包就是那个让它变成 Web 框架的核心工具。

在 RStudio 的 Console 里,输入以下命令:

install.packages("shiny")

等它跑完,不出错就算装好了。

但为什么我推荐你多装几个包?因为实际项目中,Shiny 经常要配合其他包一起用:

  • shinydashboard:快速搭建仪表盘布局
  • shinythemes:一键换皮肤
  • DT:显示交互式表格
  • plotly:做交互式图表

核心就一句话:先装 shiny 包,它能让你跑起来。其他的后面按需加。

常见安装问题

问题 1:网络超时

国内网络访问 CRAN 有时很慢。解决办法:设置国内镜像。

options(repos = c(CRAN = "https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
install.packages("shiny")

问题 2:缺少系统依赖(Linux)

我记得有一次在 CentOS 上装 Shiny,报错说缺了 libcurl。查了一下发现,Shiny 依赖一些系统库。

Ubuntu 用户可以这样装:

sudo apt install libcurl4-openssl-dev libssl-dev libxml2-dev

2.4 创建第一个 Shiny 应用 —— 看它能不能跑

环境搭好了,咱们跑一个最简单的例子,验证一下。

在 RStudio 里,新建一个 R 脚本(File → New File → R Script),输入以下代码:

library(shiny)

ui <- fluidPage(
  titlePanel("我的第一个 Shiny 应用"),
  sidebarLayout(
    sidebarPanel(
      sliderInput("bins", "分箱数量:", min = 1, max = 50, value = 30)
    ),
    mainPanel(
      plotOutput("distPlot")
    )
  )
)

server <- function(input, output) {
  output$distPlot <- renderPlot({
    x <- faithful[, 2]
    bins <- seq(min(x), max(x), length.out = input$bins + 1)
    hist(x, breaks = bins, col = 'darkgray', border = 'white')
  })
}

shinyApp(ui = ui, server = server)

保存后,点击 RStudio 右上角的 Run App 按钮,或者直接按 Ctrl+Shift+Enter(Mac 是 Cmd+Shift+Enter)。

如果一切正常,你会在浏览器里看到一个带滑动条的页面,拖动滑块直方图会变化。你想想看,我第一次看到这个反馈时,也觉得这个反馈太酷了。

注意:如果页面提示 “Application failed to start”,大概率是包没装对,或者端口被占用了。关掉其他 R 进程,重新 run 一遍试试。

2.5 核心概念:UI 与 Server

刚才那个例子虽然短,但它代表了 Shiny 应用的标准结构:

组成部分作用类比
ui定义页面布局和输入控件网站的 HTML 模板
server处理数据、计算结果、生成输出后端的处理逻辑
shinyApp()把 ui 和 server 绑在一起启动应用启动器

这个模式会贯穿整门课程。后面每章你都会看到它,只是 ui 和 server 会越来越复杂。

写 Shiny 应用时,不需要手动写 HTML、CSS 或 JavaScript。Shiny 的 fluidPage 和各种 layout 函数会自动帮你生成前端代码。把精力集中在后端的逻辑上就对了。

2.6 本章小结

我们做完了三件事:装了 R、装了 RStudio、装了 Shiny 包,还跑通了第一个应用。

嗯,现在你的开发环境已经准备就绪了。后面所有章节的内容,都会在这个基础上展开。记得保持这个环境干净整洁,别在云服务器上乱装东西,不然以后排查问题有你哭的。