vmware 安装 V10.1-1114的初始化
安装新的V10.1-1114版本,需要一些处理才能进行开发。
一、安装vmware-tool插件
可以解决vmware下ubuntu窗口不适应和无法复制文件到虚拟机。
(1)在VMware菜单栏上选择 虚拟机->安装 VMware Tools
(2)拷贝并解压VMwareTools-10.1.6-5214329.tar.gz
复制 VMwareTools-10.1.6-5214329.tar.gz 文件到本地目录,如 /opt/vmware-tool/ 文件夹,并解压:
解压出来可以看到有一个vmware-install.pl的文件,这个文件就是安装VMware Tools的脚本文件;
(3)执行命令:sudo perl vmware-install.pl
(4)reboot
重启机器
二、永久分辨率配置
分辨率查看可通过 xrandr
编辑 ~/.profile ,添加如下内容:
cvt 1360 768
xrandr --newmode "1360x768_60.00" 84.75 1360 1432 1568 1776 768 771 781 798 -hsync +vsync
xrandr --addmode Virtual1 "1360x768_60.00"
xrandr --output Virtual1 --mode "1360x768_60.00¨
三、安装libopencv-dev开发库
在最开始的时候直接安装libopencv-dev,会出现“无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。”的提示错误。
1)通过aptitude 命令发现可供选择的解决方案为空;
2)通过更换apt源(清华镜像源或者阿里源),但通过lsb_release -c 发现系统版本为juniper,不可进行apt源更改,会导致系统依赖大面积出错;
3)通过sudo apt-get -y install 也未解决;
4)通过sudo apt-get install libopencv=指定版本 也未解决;
5)通过sudo apt-get install libopencv 的依赖包,最后定位到了libgl2ps1.4依赖包问题,通过在内网源取得deb包最终解决问题。
问题定位:
Ubuntu的这个包并没有在focal中编出来,所以。我们用ubuntu的仓库作为依赖来源时,这个包就出来了问题。
问题解析及解决方案:
libgl2ps1.4 传到 https://launchpad.dev/kylin/+source/gl2ps/1.4.0+dfsg1-2k1
上还在任务队列,并未及时更新到apt源中,
此时会出现上述问题。需要通过内网vpn进行安装libgl2ps1.4包。
当软件包同步到apt源中可通过 apt-cache policy libgl2ps1.4
进行查看。
之后就能愉快的安装libopencv-dev了: sudo apt-get install libopencv-dev
四、安装5.12.8版本的qtcreator
内置的qtcreator版本为5.12.8,但功能有待改进,故在清华镜像源(https://mirrors.tuna.tsinghua.edu.cn/qt/official_releases/qt/5.12/5.12.8/)上安装一个run安装包。
1)赋予可执行权限: sudo chmod a+x qt-opensource-linux-x64-5.12.8.run
2)执行安装程序:./qt-opensource-linux-x64-5.12.8.run
3)配置环境变量到 /etc/profile文件
export PATH="/opt/Qt5.12.8/Tools/QtCreator/bin:$PATH"
export PATH="/opt/Qt5.12.8/5.12.8/gcc_64:$PATH"
- 为OpenGL创建连接: sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 /usr/lib/libGL.so
5)创建win开始菜单启动到 /usr/share/applications/qtcreator.desktop
[Desktop Entry]
Type=Application
Exec=qtcreator %F
Name=Qt Creator
GenericName=C++ IDE for developing Qt applications
X-KDE-StartupNotify=true
Icon=QtProject-qtcreator
StartupWMClass=qtcreator
Terminal=false
Categories=Development;IDE;Qt;
MimeType= text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.qt.qmakeprofile;application/vnd.qt.xml.resource;
- 为/opt/Qt5.12.8/Tools/QtCreator/bin/qtcreator 创建链接: sudo ln -s /opt/Qt5.12.8/Tools/QtCreator/bin/qtcreator /usr/bin/qtcreator
五、配置git环境
1. 配置git commit环境
$ apt-get install python3-pip
$ pip3 install inquirer
$ git config --global user.email "xxx"
$ git config --global user.name "xxx"
编辑/usr/bin/git-inquirer,赋予可执行权限,然后输入git-inquirer即可生成一个交互式窗口来规范commit输入:
#!/bin/python3
import inquirer
import sys
from string import Template
import subprocess
def number_validation(answers, current):
return int(current)
def empty_validation(answers, current):
return bool(current)
def no_validation(answers, current):
return True
def addList(name, message, list):
return inquirer.List(name, message, list)
def addText(name, message, valid):
return inquirer.Text(name, message, validate=valid)
def addCheck(_name, _message, _choices):
return inquirer.Checkbox(_name, message=_message, choices=_choices)
questions = [
addCheck("action", "选择非选项(空格选择,回车跳过)", ['Bug', 'Issue', 'Task'])
]
optinalAnswers = inquirer.prompt(questions)
questions = [
addList('action', "select you action", ['fix', 'feat', 'refactor', 'docs', 'chore', 'style', 'pref', 'test']),
addText("module", "input module name", no_validation),
addText('title', "input title", empty_validation),
addText('description', "input description", empty_validation),
addText("log", "input log", empty_validation),
]
optinal = {
"Bug": addText("bug", "input bug id", empty_validation),
"Issue": addText("issue", "input issue id", empty_validation),
"Task": addText("task", "input task id", empty_validation),
}
optinalMap = {
"Bug": "bug",
"Issue": "issue",
"Task": "task",
}
for action in optinalAnswers["action"]:
questions.append(optinal[action])
answers = inquirer.prompt(questions)
template = '${action}'
if answers["module"]:
template += '(${module})'
template += ': ${title}\n\nDescription: ${description}\n\nLog: ${log}\n'
for action in optinalAnswers["action"]:
template += action + ": ${" + optinalMap[action] + "}\n"
subprocess.run(["git", "commit", "-m", Template(template).substitute(answers)])
优雅的提交Commit信息,也使用Angular团队提交规范。启动git-inquirer的常用注释如下:
备注:
一、主要有以下组成:
标题行: 必填, 描述主要修改类型和内容
主题内容: 描述为什么修改, 做了什么样的修改, 以及开发的思路等等
页脚注释: 放 Breaking Changes 或 Closed Issues
二、常用的修改项有:
type: commit 的类型
feat: 新特性
fix: 修改问题
refactor: 代码重构
docs: 文档修改
style: 代码格式修改, 注意不是 css 修改
test: 测试用例修改
chore: 其他修改, 比如构建流程, 依赖管理
scope: commit 影响的范围, 比如: route, component, utils, build...
subject: commit 的概述
body: commit 具体修改内容, 可以分为多行
footer: 一些备注, 通常是 BREAKING CHANGE 或修复的 bug 的链接
2. 配置免密码git push
1)vim ~/.git-credentials 输入:https://{username}:{password}@github.com
2)终端下,进入属于你的分支,执行如下命令:git config –global credential.helper store
3)查看配置内容:vim ~/.gitconfig
出现如下内容,则代表配置正确,之后reboot会发现不用再输入用户名和密码:
[credential]
helper = store
六、配置debuild环境
sudo apt install build-essential debmake debhelper dh-make devscripts xutils-dev
七、配置openssh
$ sudo apt install openssh
$ sudo vim /etc/ssh/ssh_config
打开 Port 22
$ sudo systemctl restart sshd
-------------------------------------------
Wish you all the best and good health in 2021.