0%

在Cent OS下安装Code-Server实现远程写代码

引言

当你发现在iPad,Android手机上并没有一个好的IDE去完成你的代码,而你又想实现随时随地写代码的需求(奇怪的需求),那么你可以试试Code-Server——一个部署在Linux服务器上面的类似于VSCode的编辑器,随时随地,只需拥有一个Web浏览器,就可以进行代码的编辑、执行和调试

本文章则将教授如何在Cent OS下进行Code-Server的部署,并简单的加入三个插件实现C++和Python的编辑执行和调试。

租用一个CentOS服务器

这里笔者选用的是阿里云的ECS,在COVID-19疫情期间,学生只要通过一个简单的认证和答对几道服务器相关的题目(百度就能找到答案)即可获得一个六个月的服务器【🔗链接】。如果错过了,以后,凭借大学生的身份,你也可以以10元/月的价格获得服务器(该价格也适用于腾讯云)。你可以对该服务器进行任意配置和系统的更换,这里笔者选择了CentOS 7.3。理论上,该份引导说明适用于所有的CentOS 7.x的服务器。

通过SSH链接到服务器并进行配置

  1. 在阿里云的界面中进入控制台,在左侧栏找到ECS,“实例”中就有你刚才获得的服务器(切换左上角的地区到你领取的服务器所在的位置才能看到)。进入后在左边基本信息栏找到更多,更改密码到你想要的密码,即可点击“远程连接”。

  2. 进入后,请按照下图的说明进行填写——

    服务器登陆.jpg

  3. 进入后,界面大致如图,这下面黑乎乎的一块叫做终端

    QQ图片20200307001014.png

  4. 在这里就可以进行操作了。

进行Screen的安装和使用

  1. 这里安装Screen的原因是,code-server本身是在SSH链接失效时会自动断开的,但是Screen可以建立如Windows多任务的效果进行切换并且不会因为SSH断开而导致code-server自动退出
  2. 也不会在部署的时候因为意外断开SSH连接导致需要之前的任务重做
  3. 而且还能进行更多任务处理并更为方便的管理,比如笔者的服务器就同时作为Code-Server、Minecraft服务器、CoolQ on Docker服务器
  4. 输入yum install -y screen即可安装Screen。【更多的Screen使用方法可以点击这里了解,深入研究请点击这里
  5. 输入screen -S code 建立一个screen窗口(code 为该screen的名称,可自行选择)
  6. 进入后会自动清屏

安装Code-Server

  1. 如果是外国的服务器可以直接从GitHub进行镜像的发行版下载——请进入Code-Server发行版页面,将最新版本的发行版的Linux x86_64版本的链接复制,然后在终端中输入wget 复制的链接

    如果你的服务器和笔者一样位于国内,访问github较慢,则建议将发行版压缩包下载到自己电脑(通过科学上网方式)后通过WinSCP传输到服务器上。【传输时选择SFTP模式,ip即服务器ip,端口选择默认的22,用户名和密码和登陆时相同,进入后即可像复制粘贴文件一样进行传输了】

  2. 笔者选择的是[2.1698-vsc1.41.1]版本,对应的发行版本文件为code-server2.1698-vsc1.41.1-linux-x86_64.tar.gz。笔者装完了之后一天他就出了3.0版本emmmm

  3. 上传到的位置可以随便选择,笔者放到了/root位置便于操作

  4. 上传/下载完毕后,在终端中输入tar -xzvf 你刚才下载的文件的全名回车就会解压出来一个文件夹了

  5. 输入ls 回车查看你刚才解压出来的那个文件夹(不带扩展名的那个就是)

  6. 进入刚才解压的文件夹【输入cd 你刚才解压出来的文件夹的名字 回车即可进入那个文件夹(Tips:可以输入前面几个字母然后按Tab就能自动补全)】

  7. 进入,输入命令./code-server回车就能启动啦~

  8. 注意,启动后默认端口是8080,请在阿里云安全组配置处设置该端口可入

  9. 接下来,在浏览器输入 服务器ip:8080 即可进入

  10. 对了,需要提供密码

    QQ截图20200307004754.jpg

  11. 密码在启动时已经显示(显示于Password: xxxxxxxxx这里),复制粘贴进入即可,这个密码是每次启动更换,也就是说如果你一直运行就不会更换密码

进行Python+pip环境的配置

  1. 首先要安装Python 3(Centos自带的是Python 2.7),通过 按住Ctrl情况下连续按下A和D 退出当前的screen

  2. 然后和上面差不多新建一个screen(名字别和上面相同)

  3. 进入后,通过yum install epel-release命令安装Epel仓库

  4. 然后通过yum install python36命令安装Python3.6【也可以使用更新的版本,不过比较新的可能不在Epel仓库里,建议从最新版,比如笔者当时是38,就从38往下试37、36……到能支持的】

  5. 然后运行上面两行安装pip(第二行的 “python3.6” 视你的python版本而定)

    1
    2
    curl -O https://bootstrap.pypa.io/get-pip.py
    sudo /usr/bin/python3.6 get-pip.py
  1. 完成后运行python3 -V查看是否正确安装

  2. Github发行版页面,下载VScode的python插件.vsix文件,并且传到服务器上

  3. 在Code-Server网页插件界面选择 Install from VSIX…

    QQ截图20200307012117.jpg

  4. 在右边选择你刚才下载的VSIX文件即可完成安装

  5. 接下来,就可以尽情的写Python,运行和调试程序了【建议建立一个文件夹专门放Python文件】

进行C++环境的配置

  1. 首先在终端执行以下代码以安装gcc,g++,gdb

    1
    2
    3
    yum install gcc
    yum install gcc-c++
    yum install gdb
  1. 同Python,其Github发行版页面请点击这里,按照如Python已经介绍的方式安装插件

  2. 在一个位置新建文件夹存放C++文件(完全不会终端操作的可以通过WinSCP建文件夹)

  3. 使用Code-Server打开该文件夹(左上角的≡ → File → Open Floder…)

  4. 并新建文件helloworld.cpp文件,文件中内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    #include <iostream>
    #include <string>
    using namespace std;
    int main(int argc, char const *argv[])
    {
    cout<< "hello world" << endl;
    return 0;
    }
  5. 使用F1,打开命令选项,输入C/C++,选择C/C++:Edit configuration,生成c_cpp_properties.json配置文件,输入以下代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    {
    "configurations": [
    {
    "name": "Linux",
    "includePath": [
    "/usr/include/**", //引用原生库,不加的话会不能#include <iostream>
    "${workspaceFolder}/**"
    ],
    "defines": [],
    "compilerPath": "/usr/bin/gcc",
    "cStandard": "c11",
    "cppStandard": "c++17",
    "intelliSenseMode": "clang-x64"
    }
    ],
    "version": 4
    }
  6. 继续在该刚才生成的 .vscode 文件夹里建立 tasks.json 文件,输入以下代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    {
    "version": "2.0.0",
    "tasks": [{
    "label": "compile",
    "command": "g++",
    "args": [
    "-g",
    "${file}",
    "-o",
    "${fileDirname}/${fileBasenameNoExtension}"
    ],
    "problemMatcher": {
    "owner": "cpp",
    "fileLocation": [
    "relative",
    "${workspaceRoot}"
    ],
    "pattern": {
    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
    "file": 1,
    "line": 2,
    "column": 3,
    "severity": 4,
    "message": 5
    }
    },
    "group": {
    "kind": "build",
    "isDefault": true
    }
    }
    ]
    }
  7. 继续在 .vscode 文件夹里建立 launch.json 文件,输入以下代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    {
    "version": "0.2.0",
    "configurations": [
    {
    "name": "C/C++",
    "type": "cppdbg",
    "request": "launch",
    "program": "${fileDirname}/${fileBasenameNoExtension}",
    "args": [],
    "stopAtEntry": false,
    "cwd": "${workspaceFolder}",
    "environment": [],
    "externalConsole": false,
    "MIMode": "gdb",
    "preLaunchTask": "compile",
    "setupCommands": [
    {
    "description": "Enable pretty-printing for gdb",
    "text": "-enable-pretty-printing",
    "ignoreFailures": true
    }
    ]
    }
    ]
    }
  8. 大功告成!接下来你可以在这个新建立的文件夹里写C++代码文件了(不是 .vsocode 文件夹),使用方式同本地的VSCODE【不要让cpp文件的文件名中含有中文】

*可选:安装Code-Runner

  1. 在VSCODE插件市场找到Code-Runner,点击右边Resources里面的 Download Extension 下载插件
  2. 安装即可
  3. 如何调至终端中运行请参考这篇博文

*可选:安装其他插件

  1. 和上面一样,使用VSIX文件安装即可
  2. 请注意插件版本的兼容性
  3. 语言包插件可能暂不支持