【问题标题】:compiling kernel to create debian package using distcc使用 distcc 编译内核以创建 debian 包
【发布时间】:2014-12-31 05:24:55
【问题描述】:

我已经使用 distcc 使用 "make -j8 CC=distcc" 命令对几个包进行分布式编译。 它工作正常。但是对于通过编译内核源来创建debian包,我们使用“make-kpkg”命令来构建.deb文件。使用make-kpkg,我不能使用“CC=distcc”(它将调用分布式编译)。 要构建我使用以下命令:

fakeroot make-kpkg --initrd --append-to-version=.<Unique Identifier> kernel-image

所以建议我并纠正我,我怎样才能在上面的命令中使用 distcc。

【问题讨论】:

    标签: linux compilation kernel distributed distcc


    【解决方案1】:

    在你运行 make-kpkg 之前

    export CC=distcc
    

    假设您正在运行 bash、dash 或 ksh,它将设置环境变量。

    【讨论】:

    • 我试过这个,它没有将编译过程分发到其他计算机。使用'make -j8 CC=distcc',我能够分发编译过程
    • @user7234 那么你运气不好,或者你需要修改 make-kpkg 以遵守 CC 环境变量。或者,您可以尝试 alias gcc=distcc
    • @user7234 欢迎来到 stackoverflow,如果答案解决了您的问题或我帮助解决了问题,可以接受答案或/和投票,也许也应该阅读此stackoverflow.com/tour 谢谢
    【解决方案2】:

    在运行make-kpkg 之前,使用伪装目录并将其添加到PATHdistcc 手册页解释了设置:

    mkdir /usr/lib/distcc/bin
    cd /usr/lib/distcc/bin
    ln -s ../../../bin/distcc gcc
    ln -s ../../../bin/distcc cc
    ln -s ../../../bin/distcc g++
    ln -s ../../../bin/distcc c++
    

    确保在构建之前将 masquerade 目录添加到您的 PATH,以便在系统编译器之前找到 distcc 符号链接:

    export PATH="/usr/lib/distcc/bin:$PATH"
    fakeroot make-kpkg --initrd --append-to-version=.<Unique Identifier> kernel-image
    

    这应该可以解决您遇到的问题。以普通用户身份通过​​ SSH 使用 distccfakeroot 会带来很多问题,但这是一个单独的对话。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多