云服务器配置Code-Server环境并运行Python和C++

news2024/11/15 17:44:43

目录

  • 1、前言
  • 2、部署流程
    • 2.1 前置准备
    • 2.2 运行docker安装Code-Server
  • 3、运行Code-Server
    • 3.1 配置运行环境
    • 3.2 运行Python
    • 3.3 运行C++

1、前言

  云服务器需要配置C++开发环境,了解到有code-server这个VsCode提供的云端服务,因此选择在云服务器上部署。

2、部署流程

2.1 前置准备

  首先你的服务器需要有docker这个服务,安装教程见VPS配置aliyundriver-webdav以及使用Aria2以及Rclone挂载阿里云盘实现离线下载器。

2.2 运行docker安装Code-Server

docker run -d --name code-server -p 1234:8080 --security-opt seccomp=unconfined --restart=unless-stopped \
-v "/mnt/AliyunDriver/BackUpFiles/VscodeWeb/.config:/home/coder/.config" \
-v "/mnt/AliyunDriver/BackUpFiles/VscodeWeb:/home/coder/project" \
-u "$(id -u):$(id -g)" \
-e "DOCKER_USER=$USER" \
codercom/code-server:latest

  这里注意几个参数-p 1234:8080--security-opt seccomp=unconfined以及--restart=unless-stopped

  • -p是映射端口,将容器中的8080端口映射到主机的1234,后面使用这个端口号,服务器IP:1234的形式就可以访问code-server。
  • –security-opt seccomp=unconfined 允许容器执行全部的系统调用,否则gdb会失效,原因暂时未知。
  • –restart=unless-stopped,让容器除非停止状态的时候停止,其它时刻都重启。
    如果没有配置--security-opt seccomp=unconfined,会导致gdb报下面的错误:
&"warning: GDB: Failed to set controlling terminal: Invalid argument\n"
Unexpected GDB output from command "-exec-run". During startup program exited with code 127.

  有的回答说和export SHELL= /bin/bash有关,在这里是不对的,这里是容器启动的code-server,所以应该和SHELL的环境变量没有太大的关系。

3、运行Code-Server

3.1 配置运行环境

  现在输入ip地址还不能直接进去,服务设置了密码。
  使用下例指令进入docker容器:

docker exec -it code-server bash

  编辑配置文件:

vi ~/.config/code-server/config.yaml

  修改passward。
在这里插入图片描述
  执行docker restart code-server,输入上面配置的IP地址和端口号就可以进去Code-Server服务了。

  进去之后和我们电脑使用的VsCode非常相似,首先安装中文语言包。
  点击插件按钮进入扩展市场,搜索chinese
在这里插入图片描述
  安装下面这个插件,按照提示重启就会变成中文界面。
在这里插入图片描述

3.2 运行Python

  Code-Server运行Python非常简单,新建.py文件后会自动提示下载python和jupyter,基本没什么流程就可以直接运行了,因此这里不重点叙述。
在这里插入图片描述
  需要注意的是jupyter notebook只会显示为空,因为我这里使用的是IP访问,是不安全的,会限制WEB视图以及复制粘贴功能,需要加密证书才可以正常使用。有使用反向代理或者是生成伪证书的方式来处理,这里还没研究,先记录下来。后续选择重新docker部署了jupyter notebook。

3.3 运行C++

  配置C++稍微繁琐一些,首先安装gcc以及gdb。执行:

sudo apt-get update

  然后使用:

sudo apt-get install build-essential gdb

  安装gdb,这里安装的gdb是linux版本的,安装后可以通过gcc -v看到当前gcc 版本。

  环境搭载还需要下载C/C++插件,这个插件在Code-Server上不能自动搜索到,所以通过下面链接下载,下载后通过网页直接传送到Code-Server,然后在文件右键安装扩展VSIX。
C/C++插件下载链接。
在这里插入图片描述

  配置好运行环境之后就可以愉快的写C++了,新增一个.cpp文件后,点击左上角的三条横线,然后选择配置默认环境,选择C/C++:g++ 编译活跃文件,然后vscode会自动生成一个task.json文件。
在这里插入图片描述
  task.json文件我们需要替换为下面这个:

{
  "version": "2.0.0",
  "tasks": [
    {
      "type": "shell",
      "label": "g++ build active file",
      "command": "/usr/bin/g++",
      "args": ["-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}"],
      "options": {
        "cwd": "/usr/bin"
      },
      "problemMatcher": ["$gcc"],
      "group": {
        "kind": "build",
        "isDefault": true
      }
    }
  ]
}

  内容差不多相同,只需要注意

"args": ["-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}"]

  替换后面为"${fileDirname}/${fileBasenameNoExtension}"
  这时候点击运行C++代码已经会生成可执行文件了。

  然后再配置调试文件lauch.json
在这里插入图片描述
  选择添加gdb调试,会自动生成文件lauch.json。
  我们需要修改的还是类似项目位置,注意修改:
   "program": "${fileDirname}/${fileBasenameNoExtension}"

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "g++ build and debug active file",
      "type": "cppdbg",
      "request": "launch",
      "program": "${fileDirname}/${fileBasenameNoExtension}",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ],
    }
  ]
}

在这里插入图片描述
  可以看到已经正常启动而且能够调试了。

参考文章:

1.如何在 Linux 系统中的 VS Code 上配置 C/C++ 环境

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/64184.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

D3--FPGA IIC接口通信2022-12-05

1.IIC简介 1.1 IIC概述 IIC即 Inter-Integrated Circuit(集成电路总线),是由 Philips 半导体公司在八十年代初设计出来的一种简单、双向、二线制总线标准。多用于主机和从机在数据量不大且传输距离短的场合下的主从通信。主机启动总线,并产…

[附源码]计算机毕业设计少儿节目智能推荐系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Android 基础知识4-2.2常用控件提示(Toast)

效果图: 介绍: Toast是Android提供的“快显讯息”类,Toast类的使用非常简单,而且用途很多。比如,当退出应用程序时,可以用它来提示用户“需要更新”,或者当在输入框中输入文本时,可以…

含有双硫键的交联剂NHS-PEG1-SS-PEG1-NHS,NHS-SS-NHS,活性酯-双硫键-活性酯

基础产品数据(Basic Product Data): 中文名:活性酯-双硫键-活性酯 英文名:NHS-SS-NHS,NHS-PEG1-SS-PEG1-NHS 结构式(Structural): 详细产品数据(Detailed Pro…

批量查询谷歌PR权重的方法有哪些?是什么影响着谷歌PR值?

批量查询谷歌PR权重的方法有哪些? 查询谷歌PR权重最简单最最直接的方法就是使用站长工具查询,具体操作如下: 首先打开站长工具,在域名输入框输入网站的域名(一行一个); 然后勾选需要查询的功能&…

NumPy模块使用介绍

NumPy使用介绍1.NumPy科学计算库介绍和环境准备 ​ NumPy(Numerical Python)是Python的⼀种开源的数值计算扩展。提供多维数组对象,各种派⽣对象(如掩码数组和矩阵),这种⼯具可⽤来存储和处理⼤型矩阵&…

Qt下多线程的四种使用方法总结及代码示例

文章目录前言一、继承QThread,重写run()函数二、继承QObject,使用moveToThread()函数三、继承QRunnable,重写run()函数,使用QThreadPool线程池四、使用QtConcurrent的run()函数五、示例代码六、下载链接总结前言 在之前的Qt开发工…

时间序列分析的基本流程(R语言版——实验篇)

数据处理 1.导入数据&#xff08;.csv&#xff09; 能导入绝大所数形式的格式文件 ex52<-read.table("C:\\Users\\33035\\Desktop\\习题5.2数据.txt",headerT,fileEncoding GBK) #header &#xff1a;T:表示留第一行 #fileEncoding:有中文时最好改为GBK 2.对数…

MySQL---DDL

MySQL简介DDL操作 文章目录MySQL简介DDL操作数据库分类关系型数据库&#xff08;SQL&#xff09;非关系型数据库&#xff08;NOSQL&#xff09;区别DBMSMySQL简介概念特点MySQL运行机制SQL通用语法结构化查询语言分类DDL操作数据库操作表查询创建数据类型数值类型字符串类型日期…

入行测试已经4年了 ,进阿里后迷茫了3个月,做完这个项目我决定离职....

转行测试 我是大专非计科&#xff0c;我转行之前从事的工作是商场管理&#xff0c;努力了4年左右的时间才做到楼层经理&#xff0c;但是工资太低并且事情太多&#xff0c;薪资才6K。 更多的是坚定了自己的想法&#xff0c;我要改变自己 恰好有几个大学同学在互联网公司工作&a…

微电网重构|基于群稀疏性的机会约束微电网重构(Matlab代码和Python代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清…

python算法对音频信号处理Sonification :Gauss-Seidel迭代算法

可以将44.1kHz单通道.wav文件中的一秒读取到长度为44100的数组&#xff08;称为b&#xff09;中。给定矩阵A&#xff0c;我们寻求系统Ax b的解。通过Gauss-Seidel的迭代&#xff0c;向量如果我们将b记录的录音&#xff0c;则将一些白噪声作为我们的初始猜测&#xff0c;并在每…

JVM常见面试题

目录 一、JVM内存划分 二、JVM类加载 1、什么是类加载 2、类加载的过程 2.1 加载 2.2 连接 2.3 初始化 3、何时触发类加载 4、双亲委派模型 4.1 什么是双亲委派模型 4.2 双亲委派模型的优点 三、JVM的垃圾回收机制 1、什么是GC 2、GC回收哪部分内存 3、判定垃圾…

# Monaco Editor 使用

Monaco Editor 使用 文章目录Monaco Editor 使用安装依赖版本问题vue2Vue3webpack-dev-servermonaco-editor-webpack-pluginVersion Matrix集成步骤Vue2 配置 monaco-editor-webpack-plugin 插件Vue3 vue.config.js测试页面实例属性说明支持的语言类型报错解决控制台报错效果图…

自适应滤波器更新算法-EP2

文章目录1、变步长 SC-MPNLMS 频域分块算法1.1 算法原理1.2 算法代码1.3 算法优缺点2、集成多种自适应滤波算法的回声消除器1.1 算法原理1.2 算法代码1.3算法优缺点1.4 算法自适应准则3、新的变步长的LMS自适应滤波算法3.1算法原理3.2算法代码3.3算法优缺点参考文献本文接上一篇…

钉钉小程序入门3—钉钉扫码登录PC端网站

第一部分、准备材料&#x1f332; 公网环境 老版钉钉扫码中必须要配置一个域名才可以调试&#xff0c;新版支持IP配置调了。我是手机打开热点&#xff0c;电脑连接热点进行调试的&#xff0c;比老版要方便了不少。 查看本机IP地址方法&#xff1a; 如果使用的Windows&#xff…

MySQL高可用复制管理工具 —— Orchestrator使用

Orchestrator介绍 Orchestrator&#xff08;orch&#xff09;&#xff1a;go编写的MySQL高可用性和复制拓扑管理工具&#xff0c;支持复制拓扑结构的调整&#xff0c;自动故障转移和手动主从切换等。后端数据库用MySQL或SQLite存储元数据&#xff0c;并提供Web界面展示MySQL复…

docker学习笔记2(狂神)

Docker的常用命令 然后我们来学我们最重要的镜像命令&#xff1a; docker images 查看所有本地的主机上的镜像 docker search搜索镜像&#xff1a; docker pull下载镜像&#xff1a; docker pull 镜像名[:tag] 指定版本下载&#xff1a; docker rmi删除镜像&#xff1a; 批量…

[附源码]Python计算机毕业设计Django市场摊位管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

m基于遗传优化的不同等级电动汽车充电站的选址方案matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 作为电动汽车的普及与推广&#xff0c;必要的基础配套服务设施、充电站的建设位置和选址规划对整体行业的发展起着重要的意义&#xff0c;本文中提出了一个不同等级电动汽车充电站的选址与求解算…