返回

Ubuntu下RStudio Server终端启动问题解决及优化

Linux

解决 Ubuntu 下终端启动 RStudio Server 的问题

直接说问题吧,大家都习惯在终端里用 rstudio 命令启动 RStudio 桌面版、打开文件、创建新文件。最近转到 RStudio Server,发现这招不好使了,从终端启动或者打开现有 rstudio-server 文件变得有些麻烦。 我之前尝试过 rstudio-serverr-server 命令,都没用。更怪的是,which rstudio 也没返回任何结果,可 RStudio Server 明明装好了也能正常用。这问题该怎么解决? 下面给大家细说一下。

一、为啥以前的招数不好使了?

先要搞清楚 RStudio 桌面版和 RStudio Server 的区别。

  • RStudio 桌面版: 这是个独立的应用程序,直接在你的电脑上运行。 你输入 rstudio,系统直接找到并运行这个程序。

  • RStudio Server: 这家伙是个“服务器-客户端”模式的软件。服务器部分一直在后台跑着,你得通过浏览器(客户端)去访问它。 直接运行服务器端的程序, 没有图形界面给你用, 自然和以前不一样。

再说说 which rstudio 找不到东西的原因。一般来说,桌面版 RStudio 会把可执行文件(就是那个能直接运行的程序)放到系统的 PATH 环境变量包含的目录里,这样你在终端里输入 rstudio 就能直接启动。 但 RStudio Server 安装时,可能并没把可执行文件放到这些常规目录里,而是放在了安装目录或其他地方, which 找不到是很正常的事情。

二、几个可行的办法

1. 直接用浏览器打开

这是最简单的方法,既然 RStudio Server 是通过浏览器访问的,直接在浏览器地址栏输入服务器地址就行了。

  • 原理: RStudio Server 默认监听 8787 端口(也可能设置成了其他端口)。你在浏览器里输入地址,就是告诉浏览器去连接这个服务器,服务器会把 RStudio 的界面发送到你的浏览器。
  • 操作步骤:
    1. 打开你常用的浏览器。
    2. 在地址栏输入:http://localhost:8787 (如果你没改过端口,就用这个。要是改了,就把 8787 换成你设置的端口号)。或者直接输入服务器的 IP 地址加端口号,比如 http://192.168.1.100:8787
    3. 输入你的用户名和密码登录。
      注意:需要现在浏览器中运行 Rstudio server 后才可以在其中运行 R 代码等。

2. 创建 alias(别名)

虽然不能直接在终端启动 rstudio 图形界面, 但是可以在终端里执行其他 rstudio-server 相关的管理指令。可以在你的 shell 配置文件(比如 .bashrc.zshrc)里创建一个 alias,把常用的 RStudio Server 管理命令简化。

  • 原理: alias 就是给一个命令起个“外号”。以后你在终端里输入这个“外号”,就相当于输入了原来的命令。
  • 操作步骤:
    1. 打开你的 shell 配置文件。如果你用 Bash,就打开 ~/.bashrc;如果你用 Zsh,就打开 ~/.zshrc。 你可以用任何文本编辑器打开。
    2. 在文件末尾加上类似下面这样的几行:
      alias rstudio-start='sudo rstudio-server start'
      alias rstudio-stop='sudo rstudio-server stop'
      alias rstudio-restart='sudo rstudio-server restart'
      alias rstudio-status='sudo rstudio-server status'
      
    3. 保存文件,然后执行 source ~/.bashrc (或 source ~/.zshrc),让修改生效。或者你重新打开一个终端窗口,修改也会生效。
  • 效果: 以后你在终端里输入 rstudio-start,就相当于输入了 sudo rstudio-server start,可以启动 RStudio Server 服务。rstudio-stoprstudio-restartrstudio-status 同理。
  • 安全建议: 这些命令需要 sudo 权限。 建议仔细阅读 rstudio 官网, 确定哪些管理需要权限。

3. 使用 rstudio-server 命令行工具 (更高级,但非必须)

RStudio Server 其实自带了一些命令行工具,可以用来管理服务、查看状态等。虽然不是直接打开RStudio IDE, 但可以控制 RStudio server 的运行。

  • 原理: 这些命令行工具位于 RStudio Server 的安装目录里,提供了一些管理功能,例如 start, stop, restart 等。
  • 操作步骤:
    1. 找到 rstudio-server 命令行工具的路径。 通常,它会在 RStudio Server 的安装目录下。 你可以试试在终端里输入:
      sudo find / -name rstudio-server 2>/dev/null
      
      这条命令会在整个系统里搜索名为 rstudio-server 的文件,并把结果显示出来。
    2. 用找到的路径执行命令。 假设上一步找到的路径是 /usr/sbin/rstudio-server,你可以这样:
      sudo /usr/sbin/rstudio-server start   # 启动服务
      sudo /usr/sbin/rstudio-server stop    # 停止服务
      sudo /usr/sbin/rstudio-server restart # 重启服务
      sudo /usr/sbin/rstudio-server status  # 查看服务状态
      sudo /usr/sbin/rstudio-server active  # 查看server 是否活跃
      
  • 可以添加可执行文件路径到系统变量中, 步骤如下(非必须):
    1. 找出 rstudio-server 执行路径, 比如为: /usr/lib/rstudio-server/bin/rstudio-server。
    2. .bashrc 文件尾部添加如下命令
    export PATH=$PATH:/usr/lib/rstudio-server/bin
    
    1. 重新打开一个 terminal, 此时 rstudio-server 指令可以正常使用.

4. 从 RStudio Server 内部终端打开文件(曲线救国)

如果想在 RStudio Server 的内部终端打开文件到当前的会话,虽然不如直接用 rstudio 命令方便,但还是有办法的。

  • 原理: 在 RStudio Server 内部终端执行的命令是在 R 环境中进行的,可以通过执行系统 shell, 找到当前目录,打开其中的 R 文件。

  • 实现思路
    通过执行 r 代码进行文件等相关处理。

  • 具体操作如下
    假设我们已经在当前 rstudio server 界面中。

    1. 先开启浏览器 server session。
    2. 在 RStudio Server 内部的终端, 运行以下 r 代码, 打开目标文件夹中名为 target_file.R 文件:
     system("echo 'file.edit(\"target_file.R\")' | R --no-save")
    

如果想打开多个文件,你可以这样:

system("echo 'file.edit(\"file1.R\", \"file2.R\")' | R --no-save")

原理: 我们使用system去模拟命令行执行命令。 通过创建 r 代码file.edit("target_file.R"), 然后把该代码使用 管道 “|” 给 R --no-save 命令进行执行.

5.创建桌面快捷方式 (非必须)

由于通过 terminal 不能像本地 rstudio 软件直接开启图形界面.为了方便,可以为 RStudio Server 创建一个桌面快捷方式。

  • 原理: 桌面快捷方式就是一个指向某个程序或网址的小图标,点击它就能快速启动。

  • 操作步骤(以 Ubuntu 为例):

    1. 创建一个 .desktop 文件:
      在你的桌面上(或任何你想放快捷方式的地方),创建一个文本文件,文件名以 .desktop 结尾,比如 rstudio-server.desktop

    2. 编辑 .desktop 文件:
      用文本编辑器打开这个文件,把下面这些内容复制进去:

      [Desktop Entry]
      Version=1.0
      Type=Application
      Name=RStudio Server
      Comment=Access RStudio Server
      Exec=xdg-open http://localhost:8787
      Icon=rstudio
      Terminal=false
      StartupNotify=false
      Categories=Development;IDE;
      

      解释一下上面每一行的意思:

      • Type=Application: 文件类型为程序。
      • Name=RStudio Server:快捷方式的名称。
      • Exec=xdg-open http://localhost:8787:点击快捷方式时要执行的命令, 也可以选用其他浏览器运行指令 Exec=firefox http://localhost:8787
      • Icon=rstudio:快捷方式的图标。
    3. 保存文件,并赋予执行权限:
      右键点击这个 .desktop 文件,选择“属性”,在“权限”选项卡里勾选“允许作为程序执行文件”。或者你在终端里进入桌面, 输入:
      chmod +x rstudio-server.desktop

    现在,你应该能在桌面上看到一个 RStudio Server 的快捷方式图标了,双击它就能打开 RStudio Server。
    不同发行版, 不同图形界面的桌面快捷方式不相同,如遇问题, 可具体参考官方指南进行调试。

其他

如果尝试所有以上方法,rstudio-server 命令等还是无法正常使用,可能是安装问题,可以尝试如下思路解决:

  • 重装 rstudio-server 确保其完整性。
  • 检查所有安装和使用的相关指令中,是否有拼写错误。

希望这些办法能帮你解决在终端中使用 RStudio Server 的问题。 选择哪个办法,主要看你的个人习惯和具体需求。