去除Linux Kernel版本號(hào)后面的加號(hào)的方法

不少人在編譯Linux Kernel的時(shí)候,生成的RPM包中的版本號(hào)都莫名其妙地帶著一個(gè)加號(hào),這可能是因?yàn)樾薷牧薒inux.git中的文件。那么如何去除Linux Kernel版本號(hào)后面的加號(hào)?下面小編就為大家?guī)?lái)去除Linux Kernel版本號(hào)后面的加號(hào)的方法。一起去看看吧!
內(nèi)核版本號(hào)是根據(jù)Makefile里提供的數(shù)字生成的。打開Makefile,文件開始可以看到:
1 VERSION = 3
2 PATCHLEVEL = 10
3 SUBLEVEL = 28
4 EXTRAVERSION =
5 NAME = TOSSUG Baby Fish
和內(nèi)核版本號(hào)生成相關(guān)的文件是 scripts/setlocalversion, 其中有如下的部分腳本:
# scm version string if not at a tagged commit
if test “$CONFIG_LOCALVERSION_AUTO” = “y”; then
# full scm version string
res=“$res$(scm_version)”
else
# append a plus sign if the repository is not in a clean
# annotated or signed tagged state (as git describe only
# looks at signed or annotated tags - git tag -a/-s) and
# LOCALVERSION= is not specified
if test “${LOCALVERSION+set}” != “set”; then
scm=$(scm_version --short)
res=“$res${scm:++}”
fi
fi
如果
CONFIG_LOCALVERSION_AUTO
沒有被配置, LOCALVERSION 也沒有數(shù)值, 那么,根據(jù)上面的腳本,+號(hào)就不會(huì)被添加了。
實(shí)際在編譯代碼的時(shí)候,可以執(zhí)行:
LOCALVERSION= make
另外,在文件scripts/setlocalversion里面,有一句:
if test -d .git && head=`git rev-parse --verify --short HEAD 2》/dev/null`;
git rev-parse 是為了取出最近的 commit的id:
$ git rev-parse --verify --short HEAD
e77fcc1
charles@taotao:~/code/linux-3.10.28$ git rev-parse --verify HEAD
e77fcc1e9be7a0ab373f96d5b9d58e1136c8c4b0
或者用:
$ git log --pretty=format:‘%h’ -n 1
e77fcc1
${LOCALVERSION+set} 是variable expansion modfier.
它有一下幾種形式:
${variable:–word}如果 variable被設(shè)置了一個(gè)不為空的值,那么這個(gè)表達(dá)式的值就是 variable的值;反之,則是 word的值(variable的值不變)
${variable:=word} 如果 variale被set或者值非空,那么這個(gè)表達(dá)式的值就是 variable的值; 反之,則是 word的值(variable的值被更新)
${variable:+word} 如果 variable被設(shè)置了一個(gè)不為空的值,那么這個(gè)表達(dá)式的值就是 variable的值;反之, 為NULL。
${variable:offset} 獲得字符串的一個(gè)子串(從variable字符串 索引為 offset開始, offset值從0開始計(jì)算)
${variable:?word}如果 variable被設(shè)置了一個(gè)不為空的值,那么這個(gè)表達(dá)式的值就是 variable的值;否則,打印 word的值,退出。
${variable:offset:length} 獲得variable的字串(從 offset開始,長(zhǎng)度為length)
以上內(nèi)容就是今天小編為大家?guī)?lái)的關(guān)于Linux Kernel版本號(hào)后面有個(gè)加號(hào)的原因和去除的方法了,Linux Kernel版本號(hào)雖然好像對(duì)使用沒有什么影響,但是也是有著深層次的原因的,可以用文中的方法來(lái)清除加號(hào)。希望能夠幫助到大家!
相關(guān)文章
CentOS7用戶需更新:Linux Kernel補(bǔ)丁發(fā)布
今天,系統(tǒng)團(tuán)隊(duì)發(fā)布了一個(gè)非常重要的補(bǔ)丁,對(duì)近期發(fā)現(xiàn)的4個(gè)漏洞進(jìn)行了及時(shí)修復(fù),并推薦用戶盡快安裝補(bǔ)丁,升級(jí)至kernel-3.10.0-514.10.2.el7。今天小編要為大家?guī)?lái)的是Cen2017-03-08Linux Kernel 4.10第5個(gè)候選版本RTM版發(fā)布 2月12日發(fā)布正式版
據(jù)最新消息,Linux Kernel 4.10第五個(gè)版本發(fā)布,這個(gè)版本除了驅(qū)動(dòng)和架構(gòu)更新之外,還有工具、網(wǎng)絡(luò)及文件系統(tǒng)方面的更新,下面我們就來(lái)看看詳細(xì)的內(nèi)容,需要的朋友可以參考2017-01-23- 今天!小編就為大家?guī)?lái)Linux kernel模塊管理相關(guān)詳解;希望對(duì)大家Linux kernel模塊管理的學(xué)習(xí)會(huì)有幫助;有需要的朋友可以過來(lái)看看2016-12-05
Linux Kernel 4.5在3月15日發(fā)布最終版
今天Linus Torvalds和辛苦工作的內(nèi)核團(tuán)隊(duì)非常自豪的宣布了Linux Kernel 4.5版本,并已經(jīng)開放下載2016-03-15Linux系統(tǒng)開機(jī)黑屏提示kernel panic該怎么辦?
Linux系統(tǒng)開機(jī)黑屏提示kernel panic該怎么辦?linux系統(tǒng)開機(jī)出現(xiàn)一串英文:kernelpanic - not syncing: Attempted to kill init! 不知道哪里出問題了,該怎么辦呢?下面分2016-01-08Linux Kernel 4.2下載 更新內(nèi)容一覽
今天,Linux Kernel 4.2 發(fā)布下載,Linux Kernel 4.2是近期發(fā)布的最重量級(jí)的一個(gè)版本,單從代碼上看,4.2中增加了超過100萬(wàn)行代碼,移除了約25萬(wàn)行代碼,詳細(xì)內(nèi)容請(qǐng)看下文2015-08-31Linux如何禁止系統(tǒng)內(nèi)核Kernel自動(dòng)升級(jí)避免不必要的麻煩
Linux系統(tǒng)在進(jìn)行升級(jí)的時(shí)候內(nèi)核也會(huì)跟著更新,有時(shí)為了避免不必要的麻煩,如何禁止系統(tǒng)內(nèi)核Kernel自動(dòng)升級(jí),可以看看下面的文章2015-06-25- /* Linux Kernel DCCP Memory Disclosure Vulnerability Synopsis: The Linux kernel is susceptible to a locally exploitable flaw which may allow local2008-10-08
Linux內(nèi)核 Kernel 最新穩(wěn)定版2.6.26發(fā)布
Linus今早放出最新穩(wěn)定版內(nèi)核2.6.26,距離上一個(gè)版本2008-04-17的2.6.25過了將近3個(gè)月(基本3個(gè)月一個(gè)新版本),經(jīng)過9個(gè)RC版.2.6.25出到2.6.25.10,2.4系列還是2008-06-06的2.4.2008-09-08