Centos6.3官方的DVD包過(guò)于龐大,里面集成了大量軟件,但其中有許多軟件在生產(chǎn)環(huán)境中根本用不上,冗余安裝只會(huì)造成資源的浪費(fèi),本文檔主要介紹了一個(gè)系統(tǒng)定制的基本方法,并特別指出在系統(tǒng)定制中會(huì)出現(xiàn)的一些嚴(yán)重問(wèn)題,如果這些問(wèn)題不注意,很有可能在很多情況下前功盡棄。
基于centos6.3的定制,可以集成了lnmp環(huán)境,和一些系統(tǒng)監(jiān)控軟件,以前安裝系統(tǒng)加lnmp環(huán)境都是用安裝腳本安裝,源碼安裝需要太久時(shí)間,特別是php的編譯時(shí)間太久,所以在定制系統(tǒng)的時(shí)候,需要把一些源碼軟件包打包制作成rpm包,所以在文檔開始部分將介紹rpm包的制作流程。
1、RPM的概述及用途
1)RPM包管理工具(簡(jiǎn)稱RPM,全稱為The RPM Package Manager)是在Linux下廣泛使用的軟件包管理器。最早由Red Hat研制,現(xiàn)在也由開源社區(qū)開發(fā)。RPM通常隨附于Linux發(fā)行版,但也有單獨(dú)將RPM作為應(yīng)用軟件發(fā)行的發(fā)行版。RPM僅適用于安裝用RPM來(lái)打包的軟件,目前是GNU/Linux下軟件包資源最豐富的軟件包類型
xxx-version.rpm --redhat suse....
xxx-veriosn.deb --debian/ubuntu
2)RPM包管理具體的用途;
1、快速安裝、刪除、升級(jí)和管理軟件,也支持在線安裝和升級(jí)軟件;
2、通過(guò)RPM包管理能知道軟件包包含哪些文件,也能知道系統(tǒng)中的某個(gè)文件屬于哪個(gè)軟件包;
3、可以在查詢系統(tǒng)中的軟件包是否安裝以及其版本;
4、作為開發(fā)者可以把自己的程序打包為RPM包發(fā)布,減少軟件安裝前的配置及編譯所花耗的時(shí)間;
5、軟件包簽名GPG和MD5的導(dǎo)入、驗(yàn)證和簽名發(fā)布,防止軟件被篡改。
6、依賴性的檢查,查看是否有軟件包由于不兼容而擾亂了系統(tǒng);
3 ) RPM打包需要注意的地方
為了自己打的rpm包能在其他系統(tǒng)正常使用,系統(tǒng)環(huán)境一致是必須的,當(dāng)然你在centos6.3 上打包的軟件在某些情況也能正常在centos6.4上面安裝使用,但不推薦這么做,包裝宿主系統(tǒng)一致性,是rpm安裝的基本條件,另外,rpm包最難解決的是依賴問(wèn)題,沒錯(cuò)。rpm包能通過(guò)yum安裝,并自動(dòng)檢查依賴關(guān)系,但有個(gè)問(wèn)題,比如你打包nginx的時(shí)候依賴于gd庫(kù),打包的時(shí)候通過(guò)網(wǎng)絡(luò)yum源安裝了一個(gè)gd包,但在宿主系統(tǒng)安裝的時(shí)候,也許沒有網(wǎng)絡(luò),但光盤里面有g(shù)d包,也許你可以通過(guò)關(guān)盤安裝gd庫(kù)。但你不能保證gd庫(kù)的版本和之前打包nginx的時(shí)候是一樣的。一般來(lái)說(shuō)光盤里面的gd庫(kù)大部分都比網(wǎng)絡(luò)yum源的版本要低,所以并不能保證nginx的正常使用,因?yàn)槲覀兌疾恢纆d庫(kù)的升級(jí)到底升級(jí)了些什么東西。我們的解決辦法是在打包的時(shí)候,記下來(lái)打包的時(shí)候他的打包需要依賴一些什么包,在并把這些包download下來(lái)。在宿主系統(tǒng)安裝這些包,當(dāng)然這些包本身也有依賴關(guān)系。所以你得一層層找出所有依賴關(guān)系,并依此安裝。
2 、rpm包制作過(guò)程
1. 安裝工具
yum –y install rpm-build
2. 創(chuàng)建目錄
3. 打包目錄介紹
BUILD--源碼解壓目錄
RPMS--RPM包(成品)
SOURCES--源碼的目錄(tar.gz)
SPECS--xx.spec(makefile)
SRPMS--src.rpm=xx.spec+tar.gz(我們并不使用)
BUILDROOT -- rpm打包安裝臨時(shí)目錄,rpm打包過(guò)程相當(dāng)于安裝,只是安裝路徑會(huì)在本目錄,而不會(huì)去系統(tǒng)目錄。
4. spec文件實(shí)例
mkdir -p $HOME/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS,BUILDROOT}
雖然很多文檔不推薦使用root用戶打包rpm包,但為了方便我們還是使用了root賬號(hào),只要打包的時(shí)候注意哈,還是不會(huì)出問(wèn)題的。
5 . 開始打包
在SPECS目錄執(zhí)行 rpmbuild –bb nginx.spec ,同時(shí)記下來(lái)安裝過(guò)程所提示需要安裝的包。這個(gè)命令會(huì)按照我們的spec 指定的方式編譯軟件并且會(huì)在/root/rpmbuild/RPMS/x86_64/ 目錄生成對(duì)應(yīng)的rpm包,這個(gè)rpm包默認(rèn)會(huì)記錄在這個(gè)軟件編譯過(guò)程中會(huì)依賴于哪些其他軟件,再次強(qiáng)調(diào),如果你打包的時(shí)候和你安裝的時(shí)候環(huán)境不一樣,一定要注意在安裝rpm之前手動(dòng)安裝好依賴,解決可能會(huì)出現(xiàn)的版本過(guò)低的問(wèn)題。
6. 開始定制iso
1)、 上centos 網(wǎng)站下載一個(gè)完整的centos光盤,并在虛擬機(jī)上掛載到/mnt 目錄
Mount –o loop /dev/cdrom /mnt
2)、 copy 光盤文件到定制iso目錄,這個(gè)拷貝主要是光盤掛載目錄不可寫問(wèn)題,所以必須拷貝出來(lái)
mkdir /iso
cp /mnt/* /iso
上面的拷貝默認(rèn)是不拷貝隱藏文件的,所以關(guān)盤的根目錄有兩個(gè)隱藏文件,所以必須手動(dòng)拷貝過(guò)來(lái),具體這里就不說(shuō)了。
3) 創(chuàng)建自己軟件的目錄
mkdir /iso/lnmp
cp /root/rpmbuild/RPMS/x86_64/* /iso/lnmp
4) 修改/iso/isolinux/ 目錄下的文件
注意我們引用了一個(gè)*.cfg 的文件,這個(gè)文件則是我們定制系統(tǒng)的關(guān)鍵所在,
這個(gè)文件將以附件的形式存在!
5)第一次打包
cd /iso
mkisofs -o gzyouai_centos_6.4.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T ./
6) 安裝第一次打包系統(tǒng)
7) 記錄安裝好的系統(tǒng)的install.log 文件
里面有這次安裝裝了哪些軟件,里面的內(nèi)容需要手動(dòng)添加.rpm 后綴,而且還有一些特殊的行需要?jiǎng)h除,拷貝這個(gè)文件到打包系統(tǒng),想辦法踢出/iso/Packages/ 中無(wú)用的軟件包!把無(wú)用的軟件包刪除。
cd /iso/Packages/
createrepo ./
按照第五步 重新打包并安裝。這樣系統(tǒng)才會(huì)不那么臃腫。
標(biāo)簽:麗水 廣安 商丘 河源 雅安 六盤水 公主嶺 青島
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《DIY制作自己的CentOS ISO過(guò)程詳解》,本文關(guān)鍵詞 DIY,制作,自己的,CentOS,ISO,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。