vs code remote

vs code remote

Posted by nomadli on July 10, 2020

vscode 远程协作开发环境配置

  • linux服务器配置
    • 安装启用ssh服务
    • 设置允许使用不对称密钥登陆
    • 设置ssh公钥
  • window服务器配置
    • OpenSSH下载地址
    • 解压并将目录添加至系统路径PATH
    • Powershell 运行install-sshd.ps1安装服务
    • 进入服务将两个服务改为自动启动,并启动
    • Powershell 运行FixHostFilePermission.ps1
    • C:\ProgramData\ssh目录为配置目录
    • authorized_keys 安全->高级->删除继承->复制权限, 删除所有者只保留SYSTEM、userself
    • restart sshd
  • 本地配置
    • 安装vscode
    • 在vscode 插件栏搜索 remote Development 安装
    • 安装后插件栏被分为远程和本地两类插件
    • 链接window服务器的时候,remote-ssh需要disable local server
    • 打开远程配置编辑,例如:
        Host 10.228.129.42
        Port 45685
        User baoleiji
      
    • 在远程机器列表中选择一台开发机链接
    • 选择一个源码目录
    • 底部控制栏可以执行linux命令
    • 安装 ms-vsliveshare.vsliveshare-pack 插件可以实时协同编码
  • 基本规则
    • 新建项目将项目基础依赖如gdb、gcc、三方库、工具等安装配置到所有用户可以访问的目录
    • 开发人员最好各自创建一个用户, 代码clone到服务器各自用户名下,不要共用。
    • 如果所有开发人员都使用baoleiji账户,在baoleiji目录下创建不同的目录开发代码,否则有覆盖风险
  • C/C++ 语言
    • 安装时如果出错,大多是由于权限不足,可切换到root后设置适当的权限
    • 命令行 yum groups install “Development Tools”(在root下安装, 初始配置远程环境时装一次)
    • 安装本地C/C++语言插件
    • 安装远程C/C++语言插件
    • 编写源码
    • 旧studio工程可直接识别、但部分路径、配置需要手动修改,对复杂项目有不少一次性成本
    • 如果svn上传了studio生成的临时文件,需要删除,否则会查找缓存的路径报错
    • 在调试栏设置调试配置
        {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "debug",
                "type": "cppdbg",
                "request": "launch",
                "program": "${workspaceRoot}/test_c",
                "args": [],
                "stopAtEntry": false,
                "cwd": "${workspaceFolder}",
                "environment": [],
                "externalConsole": false,
                "MIMode": "gdb",
                "setupCommands": [
                    {
                        "description": "Enable pretty-printing for gdb",
                        "text": "-enable-pretty-printing",
                        "ignoreFailures": true
                    }
                ],
                "preLaunchTask": "C/C++: gcc build active file",
                "miDebuggerPath": "/usr/bin/gdb"
            }
        ]
        }
      
  • golang
    • 解压golang工具包,一般安装在/usr/local目录下
    • 在/etc/profile中配置golang的环境变量。
    • 一定要配置export GO111MODULE=on export GOPROXY=https://goproxy.cn,direct,否则被墙
    • 建议使用go mode 管理三方模块
    • 安装golang 插件
    • 安装提示的golang工具包,默认会安装到用户名的go目录,安装失败由于权限问题,可修改适当的文件夹权限
    • golang项目由golang编译器自己管理,因此旧项目迁移比较容易
    • 设置debug配置
        {
            "name": "go-debug",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "program": "${workspaceRoot}/test_go.go"
        }
      
  • java
    • centos自带java sdk最好先卸载
    • 安装java sdk
    • 在/etc/profile中配置JAVA_HOME等
    • 安装java插件
    • 如果插件提示java home路径错误,一般为系统java sdk没有卸载可以点击用户配置,选远程配置, 然后重启
    • java旧项目中的配置需要通过json文件重新配置,一般java项目使用三方管理项目因此迁移成本应该不大
        {
            "java.configuration.updateBuildConfiguration": "interactive",
            "java.home": "/usr/local/java/jdk1.8.0_251",
            "java.completion.enabled": true
        }
      
    • 设置debug配置
        {
            "name": "java-debug",
            "type": "java",
            "request": "launch",
            "mainClass": "test_java"
        }
      
  • dotnet core
    • sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
    • yum update
    • yum install dotnet-sdk-3.1
    • 在/etc/profile中配置 export MSBuildSDKsPath=xx/dotnet/sdk/3.x.x/Sdks
    • 在/etc/profile中配置 PATH=${PATH}:xx/dotnet/sdk/3.x.x:xx/dotnet/sdk/3.x.x/Sdks
    • 安装dotnet插件
    • dotnet new console -o test_donet
    • 在调试或test界面点击debug即可调试
    • 旧项目迁移可以直接识别studio工程,但如果svn上传了studio生成的临时文件,需要删除,否则会查找缓存的路径报错

vs live share

  • 支持V Studio和VS Code互通
  • 支持文字语音聊天
  • 支持共享项目、协助结对编程
  • 支持远程协助编程、教学
  • 支持服务器分享
  • 支持控制台分享