首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不要在linux内核版本中添加"+“

不要在linux内核版本中添加"+“
EN

Stack Overflow用户
提问于 2013-10-12 19:57:33
回答 4查看 22.4K关注 0票数 42

我正在构建linux内核,如果我的内核是git下的,那么内核版本每次都是:

代码语言:javascript
运行
复制
Image Name:   Linux-2.6.39+

如果我没有使用git,那么在最后没有任何加号就可以了。

我知道这是通过scripts/setlocalversion脚本完成的:

代码语言:javascript
运行
复制
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

那么,有没有可能在不修改代码的情况下构建系统,而不需要在版本行的末尾添加"+“?

EN

回答 4

Stack Overflow用户

发布于 2014-01-13 02:37:55

版本字符串末尾的加号表示内核是从修改过的源代码构建的(即,存在未提交的更改)。scripts/setlocalversion中的注释也表明了这一点。

为了避免附加'+‘,尽管有一个脏的工作目录,只需在运行make时明确地设置LOCALVERSION

代码语言:javascript
运行
复制
make LOCALVERSION=

在构建之前,您可能还必须在内核配置(.config)中将配置选项CONFIG_LOCALVERSION_AUTO更改为n

代码语言:javascript
运行
复制
sed -i "s|CONFIG_LOCALVERSION_AUTO=.*|CONFIG_LOCALVERSION_AUTO=n|" .config
票数 38
EN

Stack Overflow用户

发布于 2015-09-22 00:17:21

为了防止脚本scripts/setlocalversion+附加到内核本地版本的末尾,请在内核源代码的根目录下创建一个空的.scmversion文件。

代码语言:javascript
运行
复制
touch .scmversion

这样,您将能够在内核配置文件中保留LOCALVERSION,以防您想要将本地签名附加到内核名称。

票数 27
EN

Stack Overflow用户

发布于 2018-01-09 14:09:36

对我来说,操纵脚本/setlocalversion似乎是唯一的方法。在scm_version()中强制返回

代码语言:javascript
运行
复制
scm_version()
{
        local short
        short=false
        **return**
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19333918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档