Centos中怎樣快速定制二進(jìn)制的內(nèi)核RPM包,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
為米脂等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及米脂網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站建設(shè)、成都網(wǎng)站制作、米脂網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
隨著Linux服務(wù)器越來(lái)越多了,底層系統(tǒng)內(nèi)核想要保持版本統(tǒng)一就需要定制專門的二進(jìn)制安裝包來(lái)便捷的升級(jí)和管理。RedHat系那當(dāng)然就是使用rpmbuild來(lái)做定制化管理了。
今天我們分兩個(gè)部分(root和普通用戶)來(lái)講解如何制作內(nèi)核的二進(jìn)制rpm包。
Building主機(jī)系統(tǒng)環(huán)境約定:
OS : CentOS release 6.6
Arch : i686
注意: 這里我們首先要預(yù)留至少20GB的臨時(shí)文件空間。
yum -y groupinstall "Development Tools"yum -y install ncurses-devel qt-develyum -y install rpm-build redhat-rpm-config asciidoc hmaccalc perl-ExtUtils-Embed xmltoyum -y install audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-develyum -y install newt-devel python-devel zlib-devel bc
cd /usr/srcwget -c https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.19.1.tar.xztar -Jxvf linux-3.19.1.tar.xzln -s linux-3.19.1 linuxcd linuxmake oldconfig # 驗(yàn)證和更新配置.config配置文件(如果只想在原來(lái)內(nèi)核配置的基礎(chǔ)上修改一些小地方)make menuconfig # 簡(jiǎn)單圖形化的內(nèi)核配置管理
make rpm # 自動(dòng)生成rpmtree,kernel.spec文件,自動(dòng)編譯, 會(huì)生成debug包在內(nèi)的所有rpm包組件。
這個(gè)時(shí)候我們就等著吧,或者喝杯下午茶什么的。
好了,我們找一下已經(jīng)編譯好的內(nèi)核 rpm 包。
cd /root/rpmbuild/RPMS/`uname -m`/ tree RPMS/RPMS/└── i386 ├── kernel-3.19.1-2.i386.rpm ├── kernel-devel-3.19.1-2.i386.rpm └── kernel-headers-3.19.1-2.i386.rpm 1 directory, 3 files
rpm -Uvh kernel-*-.rpm
uname -a
yum install rpmdevtools # rpm 制作車間快速創(chuàng)建工具useradd -m builder # 新建一個(gè)臨時(shí)用戶以便創(chuàng)建 RPM 包,如果有錯(cuò)誤發(fā)生,構(gòu)建程序不會(huì)破壞現(xiàn)有的系統(tǒng)環(huán)境。su - builderrpmdev-setuptree # 創(chuàng)建”制作車間“
將會(huì)在builder用戶的家目錄下生成如下目錄結(jié)構(gòu):
tree -L 1 ~/rpmbuild/rpmbuild/├── BUILD├── RPMS├── SOURCES├── SPECS└── SRPMS
此時(shí)我們需要包收集來(lái)的新版內(nèi)核源碼包放到 /home/builder/rpmbuild/SOURCES 目錄下。
su - buildercd ~/rpmbuild/SOURCES wget -c https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.19.1.tar.xz # 注意: rpmbuild 是通過(guò)gzip來(lái)做building前源碼包解壓工作的,所以需要把這個(gè)壓縮包轉(zhuǎn)換成.tar.gz格式。# 這里就不做記錄了cp /boot/config-`uname -r` . # 將現(xiàn)有的內(nèi)核配置文件 config-`uname -r` 拷貝到 SOURCES 目錄下
切換到SPECS目錄下, 生成 kernel.spec:
tar Jxvf ../SOURCES/linux-3.19.1.tar.xz -C .bash ../linux-3.19.1/scripts/package/mkspec >./kernel.specrm -rf linux-3.19.1 # 這里需要我們手動(dòng)利用源碼包中提供的腳本生成 kernel.spec 文件# 記得生成kernel.spec完之后,清理掉 linux-3.19.1 文件夾vim kernel.spec # 可以根據(jù)個(gè)人情況做深度定制化
到此,我們的準(zhǔn)備工作基本完成,目錄結(jié)構(gòu)及內(nèi)容如下:
tree rpmbuild/ -arpmbuild/├── BUILD├── RPMS├── SOURCES│ ├── config-`uname -r`│ └── linux-3.19.1.tar.gz├── SPECS│ └── kernel.spec└── SRPMS 5 directories, 3 files
rpmbuild -bb --with baseonly --without debug --without debuginfo --target=`uname -m` kernel.spec
rpmbuild 參數(shù)說(shuō)明:
(1) --with
(2) --without
完成以后,請(qǐng)到 ~/rpmbuild/RPMS/`uname -m`/ 目錄中獲取 rpm 安裝包。
看完上述內(nèi)容,你們掌握Centos中怎樣快速定制二進(jìn)制的內(nèi)核RPM包的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!