CentOS 7.9 开发环境

合作厂商A的代码,虽然宣称支持跨平台,早期也的确做过大量的平台适配工作。但目前看来,跨平台的工作应该是暂停了,至于后期是否重新拾起来不得而知。

除了客户端是 windows 版本之外,所有的服务(包括设备接入、流媒体服务、流媒体服务调度、存储服务、存储服务调度等等)都是使用 centos7 作为部署环境的。至于是否使用 centos7 作为开发环境,就看各位喜好了,但编译环境肯定还是 centos7 没跑了。

如果使用 centos7 作为编码环境,有两个选择:

  • 自己搭建虚拟机,借由图形界面的 IDE 进行开发,使用 git/svn 等版本控制工具时也更加直观
  • 使用 xshell 等工具远程访问开发服务器,借由 vim 进行开发

后者更具有灵活性,也更方便和同事合作开发,避免同事改动内容后(未提交 svn)手工导出到虚拟机的烦恼,后期如果权限收紧 svn 不再开放外网权限,手工导出源码存在合规问题,即便合规导入导出也是一件很繁琐的事情。但没有图形界面沟通时总是短板(组内同事水平不一)。

先尝试 vim 编码开发,如果学习曲线不够平滑,效率提升困难,后面试验使用图形界面进行开发。

vimplus & gdb

安装 vim,使用 vim --version 查看其是否支持 python,否则需要源码方式重新安装 vim

如果 vim 只支持 python,不支持 python3,那么安装 vimplus 过程中编译 YouCompleteMe 就不能任性地输入 3。

安装过程中,最好配置代理服务器,保证网络没问题。

之后使用 vim hello.cpp 遇到以下报错提示:

The ycmd server SHUT DOWN (restart with ‘:YcmRestartServer’)

解决方式参考 StackOverflow , 进入 YouCompleteMe 插件目录 ~/.vim/bundle/YouCompleteMe and ran python install.py,执行重装指令。

遇到如下报错提示,不支持对 cpp 的语义补全:那就试试 python install.py --clang-completer

ValueError: No semantic completer exists for filetypes: [u’cpp’]

Windows 下远程开发

使用 visual code :visual studio 远程开发

使用 msvc :使用vs2019进行Linux远程开发

有位同学碰到了相同的问题,VS Code 构建 C++ 远程开发环境 IDE ,他在 MSVC 和 VS Code 等多个方案中选择了后者。

scp

在 windows 编码;在 合作厂商A的主机编译;在堡垒机的容器中测试;好麻烦。

scp 属于openssh-clients这个包,运行:yum -y install epel-release && yum -y install openssh-clients

拷贝动态库:

scp -P 22006 112.27.200.95:/svn/ACI/output/CentOS-x64/SO/lib/libws_d.so /mnt/Arges/usr/bin/SO/WS/ws.so && md5sum /mnt/Arges/usr/bin/SO/WS/*

拷贝 STDU:

scp -P 22006 112.27.200.95:/svn/ACI/output/CentOS-x64//MS/bin/STDU_d /mnt/Arges/usr/bin/STDU && md5sum /mnt/Arges/usr/bin/*

拷贝调度服务:

scp -P 22006 112.27.200.95:/svn/ACI/output/CentOS-x64//MS/bin/STDU_Scheduler_d /mnt/Arges/usr/bin/STDU_Scheduler && md5sum /mnt/Arges/usr/bin/*

或者压缩文件等:

scp -P 22006 112.27.200.95:/svn/ACI/output/CentOS-x64/SO/lib/solib-r*.tar.gz /mnt/Arges/usr/bin/SO/

更多工具

CentOs7 安装最新版的 Git ,使用软件源 yum install git 安装的版本过低,不支持 git svn 命令。

查看 git 网站的权威描述:Download for Linux and Unix

CentOS 使用 IUS / SCL 第三方软件源

TODO

  1. 升级 gcc/g++ 版本到新版本(具体版本待定),GCC, the GNU Compiler Collection
  2. 使用 vcpkg 在 linux 平台安装 spdlog 和 boost 等库,要求 g++ >= 6
  3. 借由对三方库的使用,熟悉 vimplus 的跳转等操作,熟悉 gdb 调试等

How does p command work in vim?

windows 系统下 git 中 vim 的光标能否设置?

centos8

CentOS 8 不能安装软件

dnf 包管理器

CentOS Stream 8 的区别

如何从 CentOS 8 升级/迁移到 CentOS Stream 8

mariadb

mysql_install_db — Initialize MySQL Data Directory

mysql_install_db is deprecated as of MySQL 5.7.6 because its functionality has been integrated into mysqld, the MySQL server. To initialize a MySQL installation, invoke mysqld with the --initialize or --initialize-insecure option.

mariadb_install_db 反而更具活力了

windows 平台使用 git bash 执行 ./mysql.exe -u 连接数据库时,用户名或密码错误等失败场景会打印,但成功的场景中没有输出,程序假死。使用 powershell 功能正常。

以下版本的数据库,[默认账户及其鉴权](mysql_install_db - MariaDB Knowledge Base) ,还是要 设置密码

1
2
3
4
5
6
7
fnie@LAPTOP-3J1Q3U7C MINGW64 /e/mariadb-10.6.5-winx64/bin
$ ./mariadb.exe --version
E:\mariadb-10.6.5-winx64\bin\mariadb.exe Ver 15.1 Distrib 10.6.5-MariaDB, for Win64 (AMD64), source revision 109fc67d4da46d52d2a96528eaea3b0ef6275692

fnie@LAPTOP-3J1Q3U7C MINGW64 /e/mariadb-10.6.5-winx64/bin
$