RedHat Linux 2 6核心怎麼樣建立Rpm包

2022-08-17 02:42:03 字數 1987 閱讀 9191

redhat企業版自從as4開始,桌面版本自從fc3開始,不再單獨提供kernel-sourcecode的rpm安裝包,原因是redhat認為沒有必要維護單獨的kernel-sourcecode包,因為所有的源**包都應該包.在.中而不是rpm中。

所以在這些高版本的redhat linux上,我們如果需要定製核心的話,沒有直接的源**rpm可以安裝,只能通過**的的包手工安裝,或者通過 kernel-*.編譯出kernel-source包再來安裝。後面一種方法可以享受到redhat針對核心的某些引數和**的優化,因此對使用redhat發行版特別是企業版本的,是有一定好處的。

但是目前很多人至今分不清核心,核心開發,核心源**一些包之間的關係,因此在編譯核心的時候經常走彎路,同時redhat官方對於如果得到kernel-source也沒有明確的指示,導致很多人不得要領。

首先認清楚各rpm包的內容和用途。

kernel-*.rpm核心二進位製包,沒有的話系統都起不來。kernel-sourcecode-*.

rpm核心源**包,安裝到/usr/src/linux-*下面的,包含核心源**,編譯核心必須(當然是不考慮用編譯的情況),但高版本redhat linux不再提供此rpm,原因參見官方release note,這篇文章的最終目的就是要我們自己把這個包搞出來。

kernel-devel-*.rpm核心開發包,安裝到/usr/src/kernels,用於核心模組開發,組織形式跟核心源**包類似,包含了部分核心源**。注意很多人誤認為這個就是核心源**包,直接拿它來編譯核心,當然不可能成功。

這個包只是用於核心模組一級開發,例如驅動程式等,雖然也可以make menuconfig make dep等,但make bzimage是不可能成功的,因為缺失了核心源**。

kernel-*.提供的用於建立rpm的源**包,安裝到/usr/src/redhat中,使用rpmbuild可以從這個包中build出上面所說的所有包。

現在就來從編譯出上面的所有的包,除了sourcecode這個包其他的包都可以在不用修改任何地方的情況下直接rpmbuild出來,唯有sourcecode這個比較麻煩,一定要按照下面的步驟來做,我以redhat as4 所帶的版本為例,其他版本相同。

#首先安裝

rpm -ivh

#進入相應目錄,要修改spec檔案

cd /usr/src/redhat/specs

vi#主要修改如下地方:

1,define buildsource 0我的這個在第8行,改為1,這就是為什麼沒有源**包的原因,因為預設不生成源**包。

2, requires: qt-devel, gtk2-devel readline-devel ncurses-devel-------我的在572行,如果沒用用x的話,把這句注釋掉,這樣編譯出來的包就不依賴於x-window的某些包,因為核心配置是可以make xconfig的,所以預設依賴x-window,我沒裝x-window,因此這個就去掉了。

#儲存退出

touch /etc/beehive-root

#這句命令非必須,如果不做的話,最後編譯出來的包都會變成kernel-*.*多了個root,據說是為了標示包的編譯人的,如果touch了這個檔案,就沒有這個問題了,命名和官方rpm一樣。

rpmbuild -ba --target=i686 ./

#編譯i686平台的所有包,這樣上面介紹的所有包都會生成,或者換成rpmbuild -bb --target=i686 ./只編譯非

#所有包就會生成到/usr/src/redhat/rpms/i686下面

#如果只需要sourcecode而並非所有rpm包,那在修改spec檔案時還要修改如下行:

48 %ifarch noarch

49 %define builddoc 1

50 %define buildsource 0這裡0修改為1

在編譯的時候使用rpmbuild -ba --target=noarch ./這樣僅僅編譯soucecode和doc包,會節省很多時間。 以上文章內容均為網路**或者本站會員原創,"不對文章內容做任何保證。

RedHat linux網路配置檔案詳解

2006 2 27 12 19 06menling 中華伺服器網點選 5723次加入收藏夾 1.etc sysconfig network scripts ifcfg 檔案在redhat中,系統網路裝置的配置檔案儲存在 etc sysconfig network scripts目錄下,ifcfg e...

面試26問題

請你自我介紹一下自己好嗎?回答提示 一般人回答這個問題過於平常,只說姓名 年齡 愛好 工作經驗,這些在簡歷上都有。其實,企業最希望知道的是求職者能否勝任工作,包括 最強的技能 最深入研究的知識領域 個性中最積極的部分 做過的最成功的事,主要的成就等,這些都可以和學習無關,也可以和學習有關,但要突出積...

26保證合同

三 發生承包 租賃 股份制改造 聯營 合併 兼併 分立 合資 申請停業整頓 申請解散 申請破產或註冊資本金變更等情形,必須提前30日書面通知乙方 四 發生停產 歇業 被登出登記 被吊銷營業執照 法定代表人或主要負責人從事違法活動 涉及超過註冊資金20 的訴訟活動 生產經營出現嚴重困難 財務狀況惡化等...