Linux Kernel版本号后面的加号如何去除?
在编译linux kernel时,生成的rpm包中的版本号常常会莫名其妙地带有一个加号,这通常是因为对linux.git中的文件进行了修改。那么,如何去除linux kernel版本号后面的加号呢?请参考以下方法。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

内核版本号是根据Makefile中提供的数字生成的。打开Makefile,文件开头可以看到:
1 VERSION = 3
2 PATCHLEVEL = 10
3 SUBLEVEL = 28
4 EXTRAVERSION =
5 NAME = TOSSUG Baby Fish
与内核版本号生成相关的文件是scripts/setlocalversion,其中包含以下部分脚本:
scm version string if not at a tagged commitif test "$CONFIG_LOCALVERSION_AUTO" = "y"; then
full scm version stringres="$res$(scm_version)"
else
append a plus sign if the repository is not in a cleanannotated or signed tagged state (as git describe onlylooks at signed or annotated tags - git tag -a/-s) andLOCALVERSION= is not specifiedif test "${LOCALVERSION+set}" != "set"; then
scm=$(scm_version --short)
res="$res${scm:+$}"
fi
fi
如果CONFIG_LOCALVERSION_AUTO没有被配置,且LOCALVERSION没有数值,那么根据上面的脚本,加号就不会被添加。
在实际编译代码时,可以执行以下命令:
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:-word} 如果variable被设置为非空值,则表达式的值为variable的值;否则,为word的值(variable的值不变)
${variable:=word} 如果variable被设置或值非空,则表达式的值为variable的值;否则,为word的值(variable的值被更新)
${variable:+word} 如果variable被设置为非空值,则表达式的值为variable的值;否则,为NULL
${variable:offset} 获取字符串的一个子串(从variable字符串的索引offset开始,offset值从0开始计算)
${variable:?word} 如果variable被设置为非空值,则表达式的值为variable的值;否则,打印word的值并退出
${variable:offset:length} 获取variable的子串(从offset开始,长度为length)
相关攻略
参考指南与学习资料 若您希望在本地快速搭建并部署一个个人智能助手,OpenClaw 框架是一个理想的入门选择。为了帮助开发者更高效地上手,社区中已有丰富的学习资源与讨论可供参考,主要包括:OpenClaw 新手入门教程、核心命令行工具使用指南(openclaw -h 查看帮助)、配置文件的参数详解,
1 openclaw 工具权限报错解决方案:无法使用 exec read write webfetch 等工具的修复方法 当您在配置 openclaw 时遇到工具权限报错,提示缺少 exec、read、write、webfetch 等关键工具的使用权限,通常无需深入排查复杂的系统环境。此问题在多数
本次部署指南的核心目标非常明确:在 Linux 环境中,无论是云服务器还是本地物理机,我们都需要完整地完成 OpenClaw 智能体框架的安装与部署,并通过基础的健康检查与功能验证,确保整个系统能够成功启动并稳定运行。 一、环境要求 在开始动手安装之前,我们首先需要确认系统满足所有的基础运行环境要求
场景一:npm install 安装失败问题详解与解决方案 在进行前端开发或是安装Node js工具时,你是否经常遇到令人困扰的“npm install failed”报错?这个问题通常表现为命令行输出一串红色错误信息,最终停止在安装失败的提示上。深入分析这些报错日志,你会发现一个关键提示:缺少C+
Framework笔记本携手KDE社区:共同推进Linux桌面深度优化方案 近期,模块化笔记本领域的领导者Framework公司宣布与全球知名的开源社区KDE达成战略合作,正式成为KDE的重要赞助伙伴。这一举措不仅象征着Framework在推动开源生态发展上迈出关键一步,也标志着硬件创新厂商与顶级L
热门专题
热门推荐
在包子漫画App精准定位心仪漫画:从入门到精通的搜索指南 面对海量的漫画资源,你是否苦恼于如何快速找到自己想看的那一部?包子漫画App内置的智能搜索系统,正是你高效解锁全站精彩内容的利器。掌握以下搜索方法与技巧,你将能轻松驾驭这座漫画宝库,大幅提升找书效率。 第一步:快速找到搜索入口 启动包子漫画A
明日方舟终末地洛茜最强配队攻略:三大体系阵容搭配详解 在《明日方舟:终末地》的策略攻防世界中,角色组合与队伍构建是决定战局胜负的关键。作为当前版本的热门输出手,洛茜的配队方案备受玩家关注。本文将全面解析洛茜的核心配队思路,包括法术爆发、物理攻坚、五色极致及稳定进阶四大流派,帮助您根据自身box与资源
魔兽世界城市大门钥匙:功能详解与核心作用 开启核心区域通道 城市大门钥匙最基础的用途,便是解锁主城的主要入口,让玩家能够深入城市的中央区域。以经典例子铁炉堡大门钥匙来说,缺少这把钥匙,玩家便无法进入这座矮人王城的核心地带,只能在外围区域活动。 成功进入主城后,完整的游戏体验才正式开启。主城是玩家活动
奥兹玛攻坚战小队模式攻略:机制详解与高效通关指南 对于DNF玩家而言,奥兹玛攻坚战无疑是版本实力的重要试炼场。其中,小队模式以其独特的挑战性备受关注——它的难度究竟如何定义?实际上,攻克奥兹玛小队模式虽有章法可循,却也需要系统性的策略与准备,绝非仅凭蛮力就能轻易通关。 职业配置是基石,团队协同定胜负
七大罪起源红色魔神Boss攻略:三阶段机制详解与实战打法 在《七大罪:起源》中,世界等级3的最终守关首领“红色魔神”,以其极具挑战性的多阶段机制与极低的容错率,成为了当前版本团队副本的核心难点。许多队伍在此反复受挫,究其根本,往往是对Boss各阶段的技能逻辑、环境互动与团队配置策略缺乏系统性理解。本





