編包----rpm和deb和ISO目錄製作出ISO
淨室環境編包
1、deb:pbuilder
第一、建立淨室環境(/etc/pbuilderrc)===git-pbuilder是對pbuilder的一層包裝
預設獲取系統的架構來構架淨室環境
git-pbuilder-liver create | login | clean | update 等
可以指定架構來構建淨室環境(32位)
ARCH=i386 git-pbuilder-liver create
第二、編譯包(gbp.conf)
ARCH=I386 gbp buildpackage --git-ignore-branch -sa
http://192.168.0.210/pub/manuals
3.0(quilt) 需要tag git tag -a debian/v1.0 -m "test" debian/changlog mt7601u (1.0.1)對應的是-
3.0(native) 需要修改 debian/changlog mt7601u (1.0.1) 對應的是.
dh_make --createorig
1、編寫rule檔案,重寫裡面的內容.或是debian/install檔案
2、git commint -a -m "<A> add file"
3、gbp dch -R -a (會自動提取commint的內容作為changelog內容)
4、如果/debian/source/format檔案是3.0(quilt),需要提交一個tag標籤。
git tag -a debian/1.0 -m "<A> commnet"
git push origin develop:develop --tags或git push origin --tags
5、git push oragin develop:develop
第三步、更新倉庫索引檔案
1、dpkg-scanpakeage pool/* /dev/null | gzip > dist/Packages.gz(deb二進位制)
2、dpkg-scansource pool/* /dev/null | gzip > dist/Source.gz(deb原始碼)
第四步、做盤(2種方法)
live-bulld:live-build
root許可權
lb config
lb build
lb clean(晴空root)
git clean -dfx(徹底)
社群:
lb config -d liuriver
live-build:是基礎做盤。
livecd:是在基礎之上修改之後os
package-lists:做進ISO中的包
installer.list.chroot:安裝完就刪除
localization-zh.list.chroot:非中文安裝的刪除
hooks:系統做好後處理指令碼
include.chroot:臨時修改os系統
或者
apt-get installgitlive-build cdebootstrap debootstrap
git clonegit://git.kali.org/live-build-config.git
cdlive-build-config
./build.sh--distributionkali-rolling--verbose
=======================================================
RPM的淨室環境編包
2、rpm:mock。
rpmbuild -ba如果有依賴可以yum-utils工具中的yum-builddep來安裝依賴
yum-builddep xxx.spec檔案
koji 也是對mock的一層包裝
rpkg和centpkg是對koji的封裝
cbs也是koji一層封裝
配置檔案執行順序
- /etc/mock/site-defaults.cfg
- /etc/mock/<buildroot>.cfg
- ~/.mock/user.cfg
- ~/.config/mock.cfg (since mock-1.2.15)
- /etc/mock/<buildroot>.cfg中自定義紅變數[可以重新定義rpm的巨集]
- 如:
2 config_opts['target_arch'] = 'x86_64'
3 config_opts['legal_host_arches'] = ('x86_64',)
4 config_opts['chroot_setup_cmd'] = 'install @buildsys-build'
5 config_opts['dist'] = 'ems' # only useful for --resultdir variable subst
6 config_opts['releasever'] = '7'
7 config_opts['macros']['%_vendor'] = "redhat"
8 config_opts['macros']['%vendor'] = "EmindServer"
9 config_opts['macros']['%packager'] = "EmindServer BuildSystem <http://www.emindsoft.com.cn/>"
10 config_opts['environment']['HOSTNAME'] = 'builder.emindsofta.com.cn'
桌面版是基於debian
所以用的是build-live
伺服器是基於centos
所以用的是lorax。lorax只是做出ISO之前的目錄結構。生成最後的iso還需要mkisofs命令
lorax:
1、做一個rpm倉庫
cd Package;createrepo .
lorax -p PRODUCT -v VERSION -r RELEASE -s REPOSITORY(倉庫絕對路徑${PWD/Packages}) OUTPUTDIR
生成OUTPUTDIR目錄,
mkisofs -r -J -T -V "EmindServer" -o emindServer-1.0.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table OUTPUTDIR/