From 7b91611b4db1a71be1ecf3064e40fa51cb87bac7 Mon Sep 17 00:00:00 2001 From: "Xu, Shunxuan" Date: Mon, 24 Aug 2015 13:46:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=90=AD=E5=BB=BArocky4.2?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E7=BC=96=E8=AF=91=E7=8E=AF=E5=A2=83=E7=9A=84?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新文件: autobuild.md Signed-off-by: Xu, Shunxuan --- autobuild.md | 217 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 217 insertions(+) create mode 100644 autobuild.md diff --git a/autobuild.md b/autobuild.md new file mode 100644 index 0000000..6428679 --- /dev/null +++ b/autobuild.md @@ -0,0 +1,217 @@ +# 搭建4.2自动编译环境说明 # + +## 1 引言 ## + +### 1.1 概述 ### + +  本文档为搭建4.2自动编译环境的配置说明文档,以便实施测试人员部署自动编译环境参考。本文档主要概述在已有编译机服务器的情况下,如何搭建自动编译环境的虚拟机(因目前4.2系统为在172.16.0.250服务器的基础上搭建运行监测并自动编译的虚拟机,故以虚拟机编译环境搭建为例)。 + +### 1.2 术语定义 ### + +  软件包:可使用软件包管理器进行安装的压缩包。 + +  编译:指的是源码包生成软件包的过程。在此过程中包括配置、编译、安装、打包等子过程。 + +  pkg包:特指以.pkg.tar.gz为后缀的编译完成的安装包。 + +  src包:指的是未经编译的源码包。 + +  光盘环境:指的是光盘镜像的目录结构,而不是从光盘启动进入安装光盘系统后的环境。   + +### 1.3 适用范围 ### + +  本文档只适用于Rocky6.0.42.41以及以后的版本。 + +### 1.4 参考资料 ### + +  【1】《pkg命令说明文档》,V0.2,李志,韦帅 + +  【2】《Rocky6.0.42版本构建方法》,韦帅 + +## 2 自动编译环境搭建 ## + +### 2.1 自动编译环境介绍 ### + +  Rocky4.2自动编译系统:通过对4.2软件包git库的监控管理,实现4.2自动编译出盘及发布的版本控制系统。即:在linx6.0.4系统(服务器172.16.0.250)上实现编译环境虚拟机的搭建、自动编译的存储、网页服务器、通知邮件的发送等。 + +  在编译环境虚拟机(Rocky6.0.42.41系统)中进行软件包git库监控,当检测到新的git库内容提交时,自动进行搭建最小环境、自动编译、自动集成出盘、收集编译信息并制作发布网页,然后存储到服务器并通知服务器发送通知邮件。 + +#### 2.1.1 编译服务器介绍 #### + +  服务器ip:172.16.0.250 + +  软件环境:服务器Linx6.0.4系统、编译机Rocky6.0.42.41系统(服务器上的自动编译虚拟机) + +  特别注意事项!!! + + 服务器172.16.0.250上的/home/builder中原有的文件千万注意不能删除! + 此为4.2系统自动编译程序的核心重要文件! + +#### 2.1.2 环境搭建准备 #### + +  git库: autobuild-tools(自动编译的工具集合)、chroot_x86-64_git(4.2最小编译环境) + +  debian8.0最小环境(用于markdown文档处理): http://172.16.0.85/chroot-env/base-jessie_amd64.cow.xz + +### 2.2 自动编译环境搭建 ### + +#### 2.2.1 虚拟机安装 #### + +  在服务器(6.0系统)上安装编译机(4.2.41虚拟机),使用kvm进行安装,并配置好网络(桥接网卡),分区大小100G左右。内存2G(服务器8G)。 + +  关于kvm安装:(后期补充) + +#### 2.2.2 自动编译环境配置及搭建 #### + +##### 2.2.2.1 环境配置与准备 ##### + +  创建工作目录(/home/x86_64-workdir)和ftp挂载目录(/home/builder) + +``` + mkdir /home/x86_64-workdir /home/builder +``` + +  配置ftp自动挂载(将服务器的/home/builder目录挂载到编译机的/home/builder),修改配置文件/etc/fstab(重启生效):添加如下行 + +``` +172.16.0.250:/home/builder /home/builder nfs nolock 0 0 +``` + +  安装光盘制作需要的包(此包可在4.2.41系统编译获得,待将源码提交到git库中):xorriso#1.3.6-x86_64-linx-Rocky4.3.pkg.tar.gz + +  git clone自动编译环境搭建的工具(在工作目录下执行): + +``` +git clone http://gitlab.rd.in.linx/linx6.0.42/autobuild-tools.git +``` + +  git clone自动编译需要的4.2最小环境(在工作目录下执行): + +``` +git clone http://gitlab.rd.in.linx/chroot_git/chroot_x86_64_git.git +``` + +  下载debian8.0最小环境(在工作目录下执行): + +``` +wget http://172.16.0.85/chroot-env/base-jessie_amd64.cow.xz +``` + +##### 2.2.2.2 环境搭建 ##### + +  1.搭建构建环境:在工作目录下执行准备环境的命令脚本 + +``` +./autobuild-tools/build-pkg/pre.sh +``` + +  注意,此准备工具执行会克隆4.2的git库。 + +  2.搭建4.2最小环境:在工作目录下克隆的chroot_x86_64_git的目录中执行 + +``` +./preps.sh +``` +  3.搭建处理markdown文件的debian8.0最小环境:在工作目录下解压base-jessie_amd64.cow.xz + +``` +tar -xf base-jessie_amd64.cow.xz +``` +  在解压后的debian8.0的最小环境的根目录下克隆转换markdown为pdf文件的工具库。 + +``` +git clone git@gitlab.rd.in.linx:linx6.0.42/progit.git +``` + +  chroot到解压的最小环境目录下,安装处理markdown文件需要的包及git库,最小环境中已配置好源。 + +``` +chroot base-jessie_amd64.cow +apt-get update (可能需要跟新源) +aptitude install pandoc ruby texlive-xetex texlive-fonts-recommended \ + fonts-lmodern fonts-arphic-ukai fonts-arphic-gbsn00lp ttf-wqy-microhei \ + ttf-wqy-zenhei +``` +  安装配置处理markdown文件的debian8.0最小环境时,配置问题: + +  问题1 + +``` +localhost:/progit# ./makepdfs +Will generate pdf for the following languages: +zh +The generation process will start now. +zh: +Parsing markdown... ./latex/makepdf:74:in `gsub!': invalid byte sequence in US-ASCII (ArgumentError) +from ./latex/makepdf:74:in `block in pre_pandoc' +from ./latex/makepdf:59:in `instance_eval' +from ./latex/makepdf:59:in `block in replace' +from ./latex/makepdf:57:in `instance_eval' +from ./latex/makepdf:57:in `replace' +from ./latex/makepdf:71:in `pre_pandoc' +from ./latex/makepdf:166:in `block (3 levels) in
' +from ./latex/makepdf:165:in `popen' +from ./latex/makepdf:165:in `block (2 levels) in
' +from ./latex/makepdf:25:in `call' +from ./latex/makepdf:25:in `figures' +from ./latex/makepdf:156:in `block in
' +from ./latex/makepdf:155:in `each' +from ./latex/makepdf:155:in `
' +``` +  解决方法:(添加环境变量)export RUBYOPT="-U -Ku -E utf-8:utf-8" + +  问题2 + +``` +localhost:/progit# ./makepdfs +Will generate pdf for the following languages: +zh +The generation process will start now. +zh: +Parsing markdown... done +Creating main.tex for zh... done +Running XeTeX: +Pass 1... failed with: +! I can't find file `pzdr'. +Consider running this again with --debug. +``` +  解决方法:(安装包)texlive-fonts-recommended + +  问题3 + +``` +localhost:/progit# ./makepdfs +Will generate pdf for the following languages: +zh +The generation process will start now. +zh: +Parsing markdown... done +Creating main.tex for zh... done +Running XeTeX: +Pass 1... failed with: +! Font EU1/lmr/m/n/10=[lmroman10-regular]:mapping=tex-text at 10.0pt not loadab +Consider running this again with --debug. +``` +  解决方法:(安装包)fonts-lmodern + +## 3 自动编译监测运行 ## + +### 3.1 自动编译启动 ### + +  运行自动编译执行脚本,在工作目录下执行:(直接按以下命令执行,为每天凌晨1点监测执行) + +``` +./autobuild-tools/build-pkg/auto_gitcheck.sh +``` +  若要即刻执行自动编译: + +``` +./autobuild-tools/build-pkg/auto_gitcheck.sh -m +``` + +  配置自动编译系统开机自启动,修改配置文件/etc/rc.d/rc.local ,在exit 0行之前,添加如下行: + +``` +nohup /home/x86_64-workdir/autobuild-tools/build-pkg/auto_gitcheck.sh + >> /home/x86_64-workdir/auto_gitcheck.log & +```