# 重装的原因
    某个开发任务时,发现需要glibc2.25,本机版本比较低,就下载源码configure make makeinstall,结果失败了,
    看来与系统用的glibc有冲突,造成部分库版本不一致,打开终端出现段错误,重启也进不去了,终于下定决心重装新版本os
# 网速不够就没下最新版,选择livecd启动系统,备份文件
    原系统在第2硬盘,就把盘挂在一个新建目录 sudo mount /dev/sdb1 /home/deepin/sdb
    然后到新建目录里找到原先系统里各种文件 jdk node idea和npm cargo等配置文件
    然后安装deepinlinux20.7,启动后把jdk和配置用上,顺便装上linux版qq和微信vscode,系统更新,竟然成了20.8节省以后再升级了
    查看glibc版本 ldd --version  2.28,应该够用很多软件了
    继续整环境,sudo apt install git 配置免密登陆
    生成密钥    ssh-keygen -t rsa -b 4096 -C "qzc1998@qq.com"   
    使用记事本打开 .ssh/id_rsa.pub 文件,复制里面的文本内容 到代码库个人偏好设置里填写ssh密钥
    ssh -T git@gitee.com 码云网站是这么验证的
    本公司 git clone ssh://git@gitlab.sz:30022/XXXX.git 这样就可以下载
# 免密登陆其他机器
    生成密钥文件
    ssh-keygen -t rsa
    复制文件到远程机器
    ssh-copy-id -i root@192.168.1.2
    然后登陆一次验证密码 ssh root@192.168.1.2
# 继续整开发环境
    调整显示器亮度,启用暗黑主题,git下载一个工程,用idea打开,设置字体22,安装中文 背景 lombok AlibabaJavaCodingGuidelines vue插件,
    idea安装插件 SequenceDiagram可以生成时序图,想修改时序图中添加中文注释,就导出PlantUML文件,用PlantUML插件修改
        https://plugins.jetbrains.com/plugin/8286-sequencediagram/versions/stable         插件市场里可以安装 PlantUML diagramming tool integration
    比较软件用了CCompare ,邮件用了雷鸟邮件客户端可以接收多家邮件,数据库客户端用了dbeaver
    vscode 启动就安装中文语言包 ,rust的插件rust-analyzer vscode-rust-syntax bettertoml和json格式化 vscode-json   
    调试器 ext install vadimcn.vscode-lldb 就是安装codelldb 注意可能需要离线安装
    https://github.com/vadimcn/vscode-lldb/releases/download/v1.8.1/codelldb-x86_64-linux.vsix
     github下载速度太慢,更新hosts文件
    sudo systemd-resolve --flush-caches
    sudo resolvectl flush-caches
    如果没这,用 ps -ef | grep named看下 service named status 或 systemctl status named
    或者安装下面的 apt-get install -y nscd  systemctl restart nscd
    后来找到 加速github网站 https://github.welab.eu.org/
    
    
# linux时间少了8小时
    sudo apt-get install ntpdate
    sudo ntpdate time.windows.com
    感觉ntp容易失败,那就自己设置时间 date -s “XXXX”,然后把时间写入硬件,为了简化自己有一个java程序用settime.sh脚本调用
    sudo hwclock --localtime --systohc
# 安装docker
    
    如果有旧版先删除 sudo apt remove docker.io docker-engine
    // 安装 curl 文件传输工具和 gnupg2 非对称加密相关依赖
    sudo apt install curl gnupg2
    // 中科大源(无法翻出去的人建议用国内镜像源,速度比官方源快很多)
    curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -
    // 官方源(有能力对外网加速的人请用官方源,毕竟可以第一时间获取最新的版本)
    curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
    // 中科大源(无法翻出去的人建议用国内镜像源,速度比官方源快很多)
    echo 'deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/debian buster stable' | sudo tee /etc/apt/sources.list.d/docker.list
    // 官方源(有能力对外网加速的人请用官方源,毕竟可以第一时间获取最新的版本)
    echo 'deb [arch=amd64] https://download.docker.com/linux/debian buster stable' | sudo tee /etc/apt/sources.list.d/docker.list
    正式安装 sudo apt update && sudo apt install docker-ce -y
    安装完以后查看一下版本 sudo docker version
    为了让当前非root账号也能执行,我们需要将当前的账号加入到docker用户组中 sudo usermod -aG docker qzc
    启动 systemctl start docker
    验证 sudo docker run hello-world
    参考公司 http://gitlab.sz/red-line/docs/-/wikis/win%E4%B8%8B%E5%90%AF%E5%8A%A8docker
    公司内记得设置安全镜像库https://harbor.sz 如下命令登录公司内库认证
    docker login harbor.sz -u admin -p admin
        sudo cp ./docker.service /lib/systemd/system/docker.service
        修改了自定义的启动命令
        ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock  --registry-mirror=https://yn3efubc.mirror.aliyuncs.com/ --insecure-registry=https://harbor.sz
        自定义本地镜像保存路径加上去起不来,可能是命令有改变,先试一下配置文件
        docker info命令查看一下本地路径 Docker Root Dir: /var/lib/docker
        修改配置文件/etc/default/docker 增加 -g /home/qzc/docker-home 感觉没生效
        还是 用备份老文件到新文件夹,删除老文件夹,创建链接即可 

```
         cp -r /var/lib/docker /home/qzc/docker-home/
          rf -rf /var/lib/docker
         ln -s /home/qzc/docker-home/docker /var/lib/docker 解决问题
         ```
 # 搭建vscode下c和c++开发环境
     安装编译器 sudo apt install gcc g++ gdb
     vscode安装插件 搜索"C++",然后安装C/C++即可
     按下Ctrl+P,输入">task",点击配置任务运行程序,即可编辑tasks.json,这个是控制编译操作的配置
     {
     "version": "2.0.0",
     "tasks": [
         {
             "type": "cppbuild",
             "label": "buildFile",
             "command": "/usr/bin/gcc",
             "args": [
                 "-fdiagnostics-color=always",
                 "-g",
                 "${file}",
                 "-o",
                 "${fileDirname}/${fileBasenameNoExtension}"
             ],
             "options": {
                 "cwd": "${fileDirname}"
             },
             "problemMatcher": [
                 "$gcc"
             ],
             "group": "build",
             "detail": "编译器: /usr/bin/gcc"
         }
     ]
     }
     按下Ctrl+Shift+B进行编译,系统会生成launch.json,这个是控制调试运行的配置文件。输入下面内容
     {
     "version": "0.2.0",
     "configurations": [
         {
             "name": "(gdb) Launch",
             "type": "cppdbg",
             "request": "launch",
             "program": "${workspaceRoot}/${fileBasenameNoExtension}",    //编译后的二进制文件位置
             "args": [],
             "stopAtEntry": false,
             "cwd": "${workspaceRoot}",
             "environment": [],
             "externalConsole": false,    //如果是true,将在新的窗口(console)输出,反之在下面的输出选项卡输出
             "MIMode": "gdb",
             "miDebuggerPath": "gdb",
             "preLaunchTask": "buildFile",
             "setupCommands": [
                 {
                 "description": "Enable pretty-printing for gdb",
                 "text": "-enable-pretty-printing",
                 "ignoreFailures": true
                 }
             ]
         }
     ]
     }


    ok,就可以加断点f5调试了
    文件 -> 首选项 -> 设置 在用户 - 扩展 - C/C++ 中,找到C_Cpp: Formatting。选择“vcFormat”
                        设置->文本编辑器->格式化->Format on Type: 当敲回车键时即可看到格式化的效果
                        同时最好把on save 和 on paste  也勾选效果更好