

linux下通过 VS Code + Remote SSH来使用R

第一步 在自己电脑上安装VS Code
1、安装什么版本的VS Code,这是踩的第一个坑,由于课题组服务器的linux系统比较老旧一些,最新版本的VS Code是不能通过Remote SSH来远程连接的。
根据我使用的CentOS 7系统,选择下载 1.85.2 版本的 VS Code进行安装,下载安装包后按提示安装,记得先卸载旧版本(打开“设置” -> “应用”,找到 Visual Studio Code,点击卸载。)。
https://update.code.visualstudio.com/1.85.2/win32-x64-user/stable
2、安装好后,打开软件,点击左下角设置,在弹出来的搜索框中输入update mode 然后选择none,避免自动更新软件


第二步 确认电脑可以通过cmd远程连接服务器
这是第二个坑,即便以前使用Xftp这类软件完全可以连接到服务器,但是使用windows cmd不一定,如果不解决的话,VS Code也是不能远程连接上的。
打开CMD,输入
ssh -v 用户名@你的服务器IP
果然报错:
OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
Bad owner or permissions on C:\\Users\\Administrator/.ssh/config
修复步骤(几分钟即可搞定):
找到文件: 打开电脑的资源管理器(文件夹),进入路径 C:\Users\Administrator\.ssh。
打开高级安全设置: 右键点击 config 文件 -> 选择属性 -> 切换到安全选项卡 -> 点击下方的高级按钮。
禁用继承(切断多余权限): * 在弹出的高级配置窗口底部,点击禁用继承(Disable inheritance)。
系统会弹出一个警告框,选择**“从此对象中删除所有已继承的权限”**(这会清空上面列表里的所有用户)。
添加你的专属权限:
点击添加按钮 -> 点击左上角的选择主体。
在下方输入框中输入你的用户名 Administrator -> 点击检查名称(系统会自动核对并加上下划线) -> 点击确定。
在权限勾选框中,勾选完全控制 -> 点击确定。
保存并退出: 此时检查一下,权限列表里应该只有 Administrator 这一个用户(如果有 SYSTEM 也可以保留,但绝对不能有 Everyone 或其他杂乱的组)。一路点击确定保存并关闭所有属性窗口。
再次返回CMD,输入ssh -v 用户名@你的服务器IP,将会提示输入密码。
第三步 通过VS Code连接服务器
1、安装Remote SSH,在左侧的插件市场(Extensions,快捷键 Ctrl+Shift+X)中搜索并安装插件:Remote - SSH。

2、安装好后,需要将该插件也降级,点卸载旁边的小箭头选择并选择 0.108.0 或者 0.106.1安装。
3、按下 F1 或 Ctrl+Shift+P或点击那个蓝色的 >< 图标,输入 Remote-SSH: Connect to Host...。输入你平时登录服务器的 SSH 命令(例如 ssh 用户名@你的服务器IP),按回车并输入密码。连接成功后,VS Code 的左下角会显示绿色的 SSH 状态。

第四步 打开服务器上的“工作目录”
点击左侧欢迎界面上的 “打开文件夹...” (Open Folder...)。
顶部会弹出一个路径输入框,默认应该是个人用户主目录(比如 /home/XXX/XXX/)。
直接点击确定 (OK)。
会需要二次输入密码
此时,左侧边栏就会显示你服务器上的所有文件了!这就是文件浏览区

第四步 安装R插件
1、首先在终端这里激活之前安装在个人账户下的conda R环境,为啥这么说呢,因为我用VS Code连接服务器用R的原因就是linux本身安装RStudio后,是全局安装,只能使用一个R,要么是系统安装的R,要么是你自己在conda环境下安装的R,系统的R,很难用,但是用自己账户的R影响别人,所以就想切换到VS Code连接服务器用R,使用界面和RStudio很像,但是又可以用自己账号下安装的conda环境下的R。
mamba activate spatial_r_env mamba install -c conda-forge r-languageserver r-httpgd
2、插件区找到R,然后点击安装,哈哈哈哈,不出意外,又是不能安装,还是需要安装一个低版本的插件,这次需要通过终端安装。
code-server --install-extension REditorSupport.r@2.8.1安装成功后的标志:左侧边栏会出现一个 “R”图标。

第五步 检查是否可用
1、点击左上角的文件图标,在空白处右击新建一个文件,命名为test.R,在右侧的代码编辑区,输入以下内容。#检查环境和画图
print("Hello, ArchR!")x <- rnorm(100)plot(x, main="My First Server Plot")
此时操作就像RStudio了,鼠标点在第一行上,按CTRL+回车,就会运行,并自动跳下一行,当然需要先从在下方的终端区进入R,输入R回车,变为>即可。
2、遇到问题解决,不能够出现图片,检查发现下方显示R没有连接,点击这个图标,还会弹出报错。

首先,安装vscDebugger,通过本地安装,
本地下载: 在你的 Windows 电脑浏览器里打开:https://github.com/ManuelHentschel/vscDebugger/archive/refs/heads/master.zip
上传服务器: 把下载好的 master.zip 通过 Xftp 或 VS Code 左侧文件面板拖进服务器的文件夹里。
cd /home/xxxxx/# 解压 ZIP 包
unzip vscDebugger-master.zip# 重新打包成 R 认识的 .tar.gz 格式
tar -czvf vscDebugger.tar.gz vscDebugger-master/install.packages("/home/XXXX/vscDebugger.tar.gz", repos = NULL, type = "source")其次,修改R插件设置

点击这里,打开设置,找到以下选项勾选,并在这两个位置添加自己的R地址,在R控制台输入
file.path(R.home("bin"), "R"),将返回的地址粘贴进去,不用加引号





退出当前的R,然后重新激活之前的conda环境,输入R回车,
install.packages(c("jsonlite", "rlang"))退出R,在终端
vi ~/.Rprofilesource(file.path(Sys.getenv(if (.Platform$OS.type == "linux") "USERPROFILE" else "HOME"), ".vscode-R", "init.R"))
保存后退出,然后重新打开vs code,进入服务器,激活环境,进入R,然后就解决了

不一定完美,但是问题解决了,嘻嘻
本公众号文章内容仅供学术交流与参考使用,不代表任何机构立场。水平有限,如有不当或侵权之处,请联系后台小编(微信号:_liyeya)进行删除或修改,感谢您的理解与支持!