系统必备软件安装
1. system/kernel
安装 ubuntu 系统
# 实时系统镜像(推荐使用以下系统镜像,已经集成了实时内核)
http://mirrors.aubo-robotics.cn:8001/installer/ubuntu/ubuntu-16.04.3-rt94-amd64.iso
2. git
安装仓库管理工具git
# 安装vim和git,注意配置自己的邮箱和名称
sudo apt-get install git vim
git config --global user.name "Your Name" # 自己的 Gitlab 用户名
git config --global user.password "Your password" # 自己的 Gitlab 用户密码
git config --global user.email "email@example.com" # 自己的 Gitlab 账号绑定的邮箱
git config --global core.editor vim
git config --global credential.helper store # 免账号密码执行fetch pull push等指令(注意:第一次使用用http协议 clone 时需输入一次用户名密码。)
git config --global pull.rebase true # 默认pull使用rebase策略
# 查看config内容
git config -l
# 安装gitk(可以查看分支模型的界面)
sudo apt-get install gitk
3. ssh
安装ssh协议实现工具openssh-server和openssh-client
sudo apt-get install openssh-server openssh-client
# your_email@example.com 是你在GitLab注册的邮箱
ssh-keygen -t rsa -C "your_email@example.com" #之后一直输回车(默认配置)直到该命令结束
# 查看生成的public key
cd ~/.ssh
ls
cat id_rsa.pub # 查看 id_rsa.pub 文本中的内容,即 public key
上传public key
1.在终端窗口复制 id_rsa.pub 文本中的内容
3.将有效的密钥粘贴到文本框后,Add key按键会变成蓝色,点击该按键保存密钥。
4. qt
安装qt
# 下载qt5.12.9
wget http://mirrors.aubo-robotics.cn:8001/installer/qt/qt-opensource-linux-x64-5.12.9.run
# 安装qt5.12.9
chmod +x qt-opensource-linux-x64-5.12.9.run
./qt-opensource-linux-x64-5.12.9.run #按步骤输入自己注册的 qt 账户和密码,之后勾选 Qt5.12.9 等待自动安装
#创建OpenGL的动态链接
locate libGL
ln -s /usr/lib64/libGL.so.1 /usr/lib/libGL.so #假设上一步查找到的libGL版本的所在路径为/usr/lib64/libGL.so.1
# 编辑/etc/profile.d/path-qt5129.sh,在PATH中增加$HOME/Qt5.12.9/5.12.9/gcc_64/bin,这样qmake就能被正常找到
sudo bash
cat <<-EOF > /etc/profile.d/path-qt5129.sh
PATH="$HOME/Qt5.12.9/5.12.9/gcc_64/bin:\$PATH"
EOF
5. clang-format
clang-format是代码格式化的工具
5.1 Linux下安装代码格式化工具clang-format
# 切换到root权限
sudo bash # 输入密码(界面不显示密码)进入 root 权限
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
apt-add-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main"
apt-get update
apt-get -y install clang-format-9
# 创建链接
ln -s /usr/bin/clang-format-9 /usr/bin/clang-format
5.2 Windows下安装代码格式化工具clang-format
1、在Windows下的安装需要去官网下载相应的版本
2、选择最新版本
3、选择windows64位版本
4、下载之后直接进行安装,安装时注意勾选环境变量
5、安装后使用命令行检查下是否安装成功
5.3 相应的qtcreator插件配置
1. 在Help -> About Plugin中选择 C++/Beautifier
2. 在Tools -> Option -> Beautifier/General 中选择 Enable auto format on file save,开启保存文件时自动格式化,Tool选择
ClangFormat
3. 在Tools -> Option -> Beautifier/Clang Format中,Configuration中的Clang Format Command路径改为/usr/bin/clang-format(安装clang-format的版本为9,且建立了链接,所以此处路径也可以改为/usr/bin/clang-format-9),Options选择Use customized style,点击Add添加新的配置,将.clang-format中的内容复制到Value框中
6. cmake
依次安装代码编译工具make和cmake
6.1 make 安装
#先更新找到ubuntu-make,再下载
sudo apt-get update
sudo apt-get install ubuntu-make
sudo apt-get install make
6.2 cmake 安装
wget --no-check-certificate https://cmake.org/files/v3.20/cmake-3.20.5-linux-x86_64.sh
chmod +x ./cmake-3.20.5-linux-x86_64.sh
./cmake-3.20.5-linux-x86_64.sh # 一直回车
sudo ln -s `pwd`/cmake-3.20.5-linux-x86_64/bin/cmake /usr/bin/cmake
#若报错ln: failed to create symbolic link '/usr/bin/cmake': File exists
#则输入 sudo rm /usr/bin/cmake
#之后再次输入sudo ln -s `pwd`/cmake-3.20.5-linux-x86_64/bin/cmake /usr/bin/cmake
# ubuntu 18.04(指定3.20版本)
sudo apt remove cmake
hash -r
sudo snap install cmake --channel=3.20/stable --classic
#显示cmake (3.20/stable) 3.20.6 from Crascit✓ installed表示安装完成,
#否则输入sudo apt-get update然后输入sudo apt-get upgrade之后
#再次执行sudo snap install cmake --channel=3.20/stable --classic
#如果上述操作均不能安装cmake或者出现snapd.failure.service is a disabled or a static unit,not starting it这样的问题,执行以下操作
sudo fuser -vki /var/lib/dpkg/lock
sudo apt purge snapd
sudo dpkg --configure -a
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo apt install snapd
sudo dpkg -r snapd gnome-software-plugin-snap
sudo apt update
sudo apt full-upgrade
sudo apt install snapd
#执行完毕后再次执行hash -r和sudo snap install cmake --channel=3.20/stable --classic
7. 升级gcc
//重新安装证书
sudo apt-get install --reinstall ca-certificates
//添加仓库
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
打开 Software&Updates 更改Download from
sudo apt-get update
#如果update执行失败,出现InRelease问题,执行以下指令
sudo apt-get clean
sudo mv /var/lib/apt/lists /tmp
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt-get clean
sudo apt-get update
#成功后安装g++
sudo apt install g++-7
# 如果执行sudo apt install g++-7 缺少依赖,增加执行 sudo apt install -f进行修复安装
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 60 \
--slave /usr/bin/g++ g++ /usr/bin/g++-7
# 如果不执行上述指令,可能会出现update-alternatives: error: no alternatives for gcc
sudo update-alternatives --config gcc # 配置指令
# 执行配置指令后,如果出现 There is only one alternative in link group gcc (providing /usr/bin/gcc): /usr/bin/gcc-7
# 可能的原因是当前只有一个g++版本可供选择
# 可增加执行 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5 (本地g++ 版本是5)
# 再次执行 sudo update-alternatives --config gcc会出现,可以根据序号选择版本
gcc --version
g++ --version
# This one if you want the **all** toolchain programs (with the triplet names) to also point to gcc-7.
# For example, this is needed if building Debian packages.
# If you are already are root (e.g. inside a docker image), remove the "sudo" below.
ls -la /usr/bin/ | grep -oP "[\S]*(gcc|g\+\+)(-[a-z]+)*[\s]" | xargs sudo bash -c 'for link in ${@:1}; do ln -s -f "/usr/bin/${link}-${0}" "/usr/bin/${link}"; done' 7
8. OpenSSL 版本升级
8.1 查看 Qt 对应 OpenSSL 版本
如果根据教程安装的
Qt5.12.9
,则跳过此步骤,对应OpenSSL
版本为OpenSSL_1_1_1d
其他版本
Qt
可在任意程序中执行下列命令查看对应OpenSSL
版本
qDebug() << SslSocket::sslLibraryBuildVersionString();
8.2 安装对应版本的 OpenSSL
# 克隆仓库
git clone https://github.com/openssl/openssl.git
# 切换版本
git checkout OpenSSL_1_1_1d
# 安装
./config
make
sudo make install
# 替换新版本链接
ln -s /usr/local/bin/openssl /usr/bin/openssl
ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1
ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1
# 查看升级结果
openssl version -a
附: 推荐拓展(根据需求自行安装)
1. 实时内核
#对于有实时内核需求的项目,建议安装
http://mirrors.aubo-robotics.cn:8001/installer/ubuntu/linux-headers-4.14.195-rt94_4.14.195-rt94-1_amd64.deb
http://mirrors.aubo-robotics.cn:8001/installer/ubuntu/linux-image-4.14.195-rt94_4.14.195-rt94-1_amd64.deb
2. typora
# typora 是一款 markdown 编辑器,arcs 相关仓库中一般会有 README.md/CHANGELOG.md
wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add -
# add Typora's repository
sudo add-apt-repository 'deb https://typora.io/linux ./'
sudo apt-get update
# install typora
sudo apt-get install typora
# root用户登录时设置markdown文件的默认打开方式为typora
# 步骤一 编辑器打开/etc/gnome/defaults.list
gedit /etc/gnome/defaults.list
# 步骤二 添加以下内容保存后退出,注销后重新登录生效。
text/markdown=typora.desktop
3. 自定义git提交模板
可以自己编辑一个模板文件,比如新建~/.gitmessage
,编辑一段关于提交规范的注释
vim ~/.gitmessage
# head: <type>(<scope>): <subject>
# - type: feat, fix, docs, style, refactor, test, chore
# - scope: can be empty (eg. if the change is a global or difficult to assign to a single component)
# - subject: start with verb (such as 'change'), 50-character line
#
# body: 72-character wrapped. This should answer:
# * Why was this change necessary?
# * How does it address the problem?
# * Are there any side effects?
#
# footer:
# - Include a link to the ticket, if any.
# - BREAKING CHANGE
#
修改全局配置文件`~/.gitconfig`,添加
[commit]
template = ~/.gitmessage
4. clang-tidy
推荐安装代码规范检查工具clang-tidy
sudo apt-get install -y clang-tidy-8
Checks: '-*,readability-identifier-naming'
CheckOptions:
- { key: readability-identifier-naming.NamespaceCase, value: lower_case }
- { key: readability-identifier-naming.ClassCase, value: CamelCase }
- { key: readability-identifier-naming.PrivateMemberSuffix, value: _ }
- { key: readability-identifier-naming.StructCase, value: CamelCase }
- { key: readability-identifier-naming.FunctionCase, value: camelBack }
- { key: readability-identifier-naming.VariableCase, value: lower_case }
- { key: readability-identifier-naming.GlobalVariablePrefix, value: g_ }
- { key: readability-identifier-naming.GlobalConstantCase, value: UPPER_CASE }
配置方式:
Tools -> Options -> Analyzer -> Clang Tools
在
Executables
框中填入/usr/bin/clang-tidy-8
点击
Diagnostic Configuration
-> Copy(重命名ARCS)- 在
Clang-Tidy Checks
页面选择Use .clang-tidy config file
- 拷贝配置到工程文件夹的
.clang-tidy
文件中 Analyze
->Clang-tidy and Clazy ..
-> 选择要分析的文件 ->Analyze
- 根据建议对代码进行修改