CentOS安裝相應版本的內核源碼


昨天接到同事給安排的新任務,測試系統性能;網上查了些資料,目測perf功能很強大,而且是內核源碼自帶的,編譯安裝即可使用;看了下自己的虛擬機,沒有內核源碼,好吧,裝一個;

查看一下系統版本:

1 #cat /etc/redhat-release 
2 CentOS Linux release 7.5.1804 (Core)
3 
4 #uname -r
5 3.10.0-862.el7.x86_64

 

去CentOS官網找對應的內核源碼包,下面地址,進去找到與版本信息對應的源碼目錄,找到內核源碼包,下載即可:

#http://vault.centos.org/
#wget http://vault.centos.org/7.5.1804/os/Source/SPackages/kernel-3.10.0-862.el7.src.rpm

 

直接使用rpm安裝的話,會提示一個錯誤:

#rpm -i kernel-3.10.0-862.el7.src.rpm
Warning: user mockbuild does not exist. using root
...

這時需要安裝一個mock,並新建一個mockbuild用戶:

#yum install mock
#useradd -s /sbin/nologin mockbuild

 

好了,繼續安裝:

#rpm -i kernel-3.10.0-862.el7.src.rpm

 

這時回到root根目錄,會有一個rpmbuild目錄,進去該目錄下的SPEC

#cd ~/rpmbuild/SPECS

 

開始執行rpmbuild:

#rpmbuild -bp --target=$(uname -m) kernel.spec

這時應該會提示一堆錯誤信息,因為需要很多依賴包,安裝之:

#yum install rpm-build redhat-rpm-config asciidoc hmaccalc perl-ExtUtils-Embed pesign xmlto
#yum install audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel java-devel
#yum install ncurses-devel newt-devel numactl-devel pciutils-devel python-devel zlib-devel

再次執行rpmbuild命令,如果還提示有缺少,則對應安裝即可;

 

接下來的過程很愉快:

#rpmbuild -bp --target=$(uname -m) kernel.spec
Building target platforms: x86_64
Building for target x86_64
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.eM2FKD
+ umask 022
+ cd /root/rpmbuild/BUILD
+ patch_command='patch -p1 -F1 -s'
+ cd /root/rpmbuild/BUILD
+ rm -rf kernel-3.10.0-862.el7
+ /usr/bin/mkdir -p kernel-3.10.0-862.el7
+ cd kernel-3.10.0-862.el7
+ /usr/bin/xz -dc /root/rpmbuild/SOURCES/linux-3.10.0-862.el7.tar.xz
+ /usr/bin/tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ mv linux-3.10.0-862.el7 linux-3.10.0-862.el7.centos.x86_64
+ cd linux-3.10.0-862.el7.centos.x86_64
...
...

 

這時,就可以找到源碼包了,在~/rpmbuild/BUILD目錄下:

#cd ~/rpmbuild/BUILD/kernel-3.10.0-862.el7/linux-3.10.0-862.el7.centos.x86_64

 

參考:CentOS官方說明:

https://wiki.centos.org/zh/HowTos/I_need_the_Kernel_Source

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM