Blog: 入职某选
入职某选,记录下......
入职某选,记录下......
现在我们来看看,怎么安装和配置OpenSCAD:
1、下载
官方下载页:http://www.openscad.org/downloads.html
各个平台的下载地址:
Mac OS X: https://files.openscad.org/OpenSCAD-2021.01.dmg
Windows:https://files.openscad.org/OpenSCAD-2021.01-x86-64-Installer.exe
Linux(以类debian发行版为例):sudo apt-get install openscad
其他参考下载页面
2、安装
以windows系统为例:安装其实没有什么特殊的,直接点安装按钮就OK。
3、Enjoy!!!
最近玩3D打印,需要绘制模型,但是自己又不会CAD,只会写点代码。So,我就用万能的谷歌一下,结果还真让我发现一款神器:点我去康康OpenSCAD。
OpenSCAD是一款使用编程的方式创建3D模型的CAD工具,可以在Windows、Mac OS X、Linux/Unix系统上运行的软件。
软件界面:
官网预览:
最近在公司业务需要用到一个硬件模块,上面有这样1个功能需要一直在循环执行,但是这个功能不能阻塞掉其他功能的执行。
想到这里,有人肯定会说,用多线程啊,但是它没有啊。
于是我做了一番调查,mpy有个自带的uasyncio模块可以解决这个问题,上帝给你关上一扇门的时候就给你开了个窗。
开干(上代码示例):
import uasyncio as asyncio
async def loop_task(arg):
while True:
print('{0} 状态1'.format(arg))
await asyncio.sleep(1)
print('{0} 状态2'.format(arg))
await asyncio.sleep(1)
async def other_task():
print('我是其他非阻塞任务')
await asyncio.sleep(1)
def main():
loop = asyncio.get_event_loop()
loop.create_task(loop_task('死循环'))
loop.create_task(other_task())
loop.run_forever()
if __name__ == '__main__':
main()
OK, all done, enjo!!!
查看容器ID和名称:docker ps
###查看当前启动的容器信息
查看某一个容器已经挂载的目录:docker inspect 5406191cda6f | grep Mounts -A 20
###通过容器ID查看docker inspect jenkins | grep Mounts -A 20
###通过容器名称查看
查看启动容器的配置文件:docker stop
###停止容器cd /var/lib/docker/containers
###进入containers文件ls
###查看containers目录下,目标容器详细IDcd /var/lib/docker/containers/容器ID
###结合docker ps命令查询的ID可知哪一个是查询容器的详细id
如下图可找到对应配置文件进行修改。
docker日志存储位置
在Linux系统中docker启动后日志存储在/var/lib/docker/containers/容器ID/目录中,启动一个容器后,容器ID目录中会生成如下文件:
5406191cda6fbc9fb7765c0b8aa31e075e8854900fab1f61917bab3c07f4af7a-json.log checkpoints config.v2.json hostconfig.json hostname hosts mounts resolv.conf resolv.conf.hash
每个容器的日志默认都会以 json-file 的格式存储于/var/lib/docker/containers/<容器id>/<容器id>-json.log 下,不过并不建议去这里直接读取内容,因为容器的日志则可以通过 docker logs命令来访问,而且可以像 tail -f 一样,使用 docker logs -f 来实时查看。如果使用 Docker Compose,则可以通过 docker-compose logs <服务名> 来查看。
cd ~/.ssh/
###进入~/.ssh/文件
打开电脑终端,进入~/.ssh/文件查看是否存在id_rsa.pub和id_rsa文件。
若存在,表明之前已生成过SSH rsa密钥,可重新生成或使用现有密钥。
若没有或重新生成,输入以下命令生成密钥。ssh-keygen -t rsa -C "email@example.com"
###其中邮箱地址为你在gitlub上个人信息邮箱地址保持一致。
一直选择回车键即可,若为重新生成,则当询问是否rewrite时,需要输入yes。生成完成后,可输入以下命名查看并复制公钥。cat id_rsa.pub
###查看rsa公钥,前提:需先进入~/.ssh/文件
登录gitlab,将第一步中生成的SSH 公钥地址粘贴到SSH key,粘贴您的 SSH 公钥
3.验证本地连接是否okgit config --global user.name "name"
###配置gitlab用户名git config --global user.email "email@example.com"
###配置gitlab邮箱ssh -T ssh://git@gitlab.com
###检查本地连接是否OK
如果连接OK,既可以拉取和上传代码。
4.ssh方式或http方式拉取项目代码git clone ssh://git@gitlab.com:30022/name/projectname.git
###使用ssh拉取,需完成上面的1、2、3步git clone http://gitlab.com/name/projectname.git
###使用http方式拉取cd projectname
###进入克隆下来的工程文件
5.更新上传代码相关命令
若之前拉取过工程,更改了内容,上传新的内容命令如下:git add .
###将项目的文件添加到仓库中git commit -m
"更新信息" ###提交到远程仓库,双引号内写入更新信息git pull 或 git pull origin master
###拉取最新代码,指定分支git push 或 git push -u origin master
###上传最新代码,指定分支
若未拉取过工程,需上传本地已存在的文件,代码命令如下:cd existing_folder
###进入已存在的文件git init
###初始化git仓库git remote add origin git@gitlab.com:name/projectname.git
###添加关联远程仓库地址git add .
###上面已解释git commit -m "Initial commit"
###上面已解释git push -u origin master
###上面已解释
若更新仓库地址使用命令:git remote set-url origin git@gitlab.com:name/projectname.git
若删除仓库地址使用命令:git remote remove origin git@gitlab.com:name/projectname.git
查看关联的远程仓库使用命令:git remote -v
⚠️注:截图中涉及地址为内网地址。
cd /usr/local
wget https://nodejs.org/dist/v10.15.0/node-v10.15.0-linux-x64.tar.xz
###下载安装包tar xf node-v10.15.0-linux-x64.tar.xz
###解压安装包cd node-v10.15.0-linux-x64
###删除多余的压缩安装包ls node-v10.15.0-linux-x64/bin
###查看cpm和node文件pwd
###查看cpm和node文件位置ln -s /usr/local/node-v10.15.0-linux-x64/bin/node /usr/local/bin/node
###软连接ln -s /usr/local/node-v10.15.0-linux-x64/bin/node /usr/local/bin/node
###软连接npm run build
###查看npm命令是否OKnode -v
###查看npm安装版本
export PATH=$PATH:/usr/local/node-v10.15.0-linux-x64/bin. ###环境变量配置
备注:
mac环境变量配置文件 .bash_profile
linux 环境变量配置文件/etc/profile
wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
###下载安装包tar -zvxf android-sdk_r24.4.1-linux.tgz
###解压安装包rm android-sdk_r24.4.1-linux.tgz
###删除多余的压缩安装包
若想删除已经解压的文件夹,使用命令 rm -rf examplefilename
vi /etc/profile
###进入环境变量配置文件,写入如下3条export命令export ANDROID_HOME=/usr/local/android-sdk-linux
###配置环境变量export PATH=$ANDROID_HOME/tools:$PATH
###配置环境变量export PATH=$ANDROID_HOME/platform-tools:$PATH
###配置环境变量android update sdk --no-ui
###更新sdk包export
###查看配置的环境变量cd $ANDROID_HOME
###查看$ANDROID_HOME配置的环境变量是否生效
前提条件:需安装node js成功才可执行 npm 命令安装appium。npm install -g appium
###通过npm全局安装appium,直接使用npm需使用梯子
执行npm命令后,同node js所在文件夹(如上为node-v10.15.0-linux-x64)位置:/usr/local/node-v10.15.0-linux-x64,会生成node_modules文件夹,位置:/usr/local/node_modules
所以: cd /usr/local/node_modules
###可查看已安装的内容,如appium
npm install -g appium-doctor
###全局安装appium-doctor,直接使用npm一般需使用梯子,
⚠️注意:若未使用梯子时使用npm下载失败,可先安装淘宝的cnpm,再使用cnpm安装
`npm install -g cnpm` ###安装淘宝的cnpm
`cnpm install -g appium` ###cnpm全局安装appium
列出当前正在运行的容器列表:
docker ps
其中通过ports来查看容器的端口信息(是否映射以及映射的端口号)和使用的连接类型(tcpudp),如果暴露的端口是连续的,还会被合并在一起,例如一个容器暴露了3个 TCP 端口:100,101,102,则会显示为100-102/tcp。
如上图:Jenkins的端口5000用来做slave的,8080做主服务端口,其中默认50000端口说明在docker hub官方文档可查看。
列出当前机器所有的镜像:
docker images
其中“tag”为版本号,其中“REPOSITORY”镜像仓库全路径和镜像名称
启动容器命令:
docker run jenkins/jenkinsversion
-d、--name、-p、-v参数完善启动容器 :
docker run -d --name -p 8081:8080 myjenkins jenkins/jenkinsversion -v /data/jenkins_home/:/var/jenkins_home --privileged
-d 后台运行,
--name 自定义名称,以上的我命名为myjenkins,docker是私有网络
-p,宿主机8081端口映射到8080端口做端口映射,把端口暴露出来,构建虚拟网络,当前机器可以访问,可以去了解下docker的网络原理
-v 宿主机的目录:容器的目录 ,挂载目录,可以有多个-v参数,如挂载主机的时间/etc/localtime、hosts文件等
--privileged 表示对目录拥有最高权限
进入容器:
docker exec -it -uroot myjenkins bash
其中myjenkins为docker ps 查看的 “names”
停止容器:
docker stop myjenkins
其中myjenkins为docker ps 查看的 “names”
重启容器
docker restart myjenkins
删除容器:
docker rm myjenkins
查看容器日志:
docker logs -f names
Mac系统,查看Jenkins默认密码:
docker exec myjenkins tail /var/jenkins_home/secrets/initialAdminPassword
Jenkins自带的插件服务器在国内下载奇慢无比,于是乎需要更换为Jenkins国内源镜像进行加速。
废话少说,上步骤:
1、登录管理员账号
2、点击系统管理 - 系统配置 - 插件管理
3、点击“高级”Tab,找到最后一项“升级站点”
4、将URL输入框内容更换为清华源
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
现在更新插件,进度条应该是嗖一下就完了,哈哈~
在公司转岗做测开了,估计2021年上半年的工作都在自动构建上面,下半年估计忙自动化测试脚本开发和维护。
大体上,由于公司项目都是安卓系统源码工程,自动构建选了Jenkins+Gerrit+SonarQube等开源工具来实现。
现在主要讲讲怎么搭建SonarQube服务器:
1)下载一些文件:
2)先安装数据库PostgreSQL(这个是Sonar唯一支持的开源DB,MS-SQL&Oracle都是收费的),命令:
sudo apt install PostgreSQL
然后对数据库进行简单的配置:
sudo -i -u postres
psql -u postres
alter user postres with password '你的数据库账户密码';
CREATE DATABASE sonar;
q
sonar.jdbc.username=postgres
sonar.jdbc.password=你的密码
sonar.jdbc.url=jdbc:postgresql://localhost/sonar
3)配置JDK路径到sonar配置文件$SONARQUBE-HOME/conf/wrapper.conf ,将以下行改为:
wrapper.java.command=你的JDK11绝对路径
4)把下载的CXX检查的jar包放入$SONARQUBE-HOME/extensions/plugins下
5)使用$SONARQUBE-HOME/bin/linux-x86-64/sonar.sh start启动sonar服务器, 出现以下字样代表启动成功(不能使用root权限启动):
Starting SonarQube...
SonarQube is already running.
6)浏览器输入 ip:9000 ,就可以看到sonar的主页了。
默认账户/密码:admin/admin
7)安装简体中文包:
① 点击顶部菜单,最后一个配置,
② 点击子菜单“应用市场”,
③ 在插件搜索框中输入“chinese”,安装简体中文插件
一些问题解决方法:
1、启动的时候遇到 Process exited with exit value [es]: 143报错:
解决方法:
在/etc/sysctl.conf文件中加入
vm.max_map_count=262144
fs.file-max=65536
然后执行sysctl -p使配置生效
在 /etc/security/limits.conf后加入
ulimit -n 65536
ulimit -u 2048
然后切换sonar用户下执行ulimit -Hn
$SONARQUBE-HOME/bin/linux-x86-64/sonar.sh restart 重启
2、启动的时候遇到 Process exited with exit value [es]: 1报错:
解决方法:
以普通权限运行,不要以root权限执行