davylin 2025-04-22 12:49 采纳率: 42.9%
浏览 18

CentOS Stream 9下,手工编译grub2-2.06-94.el9.src.rpm软件包报错

编译平台:CentOS Stream 9
源码包:grub2-2.06-94.el9.src.rpm

我将源码包rpm -ivh grub2-2.06-94.el9.src.rpm,通过rpmbuild -bp grub2_2.06.spec命令,打补丁后。
进入BUILD/grub-2.06目录,进行手工编译时报错,错误信息为找不到系统的头文件。

我的编译配置如下:

cd grub-2.06

./configure \
  --prefix=/usr \
  --sysconfdir=/etc \
  --with-platform=efi \
  --with-gnu-efi \
  --disable-efiemu \
  --disable-multilib \
  --disable-werror \
  --enable-uefi-secure-boot \
  --enable-largefile \
  --enable-grub-mount \
  --datarootdir=/usr/share \
  --with-bootdir=/boot

make
make install
报错信息:
compilation terminated.
In file included from ./include/grub/misc.h:27,
                 from ./include/grub/disk.h:31,
                 from grub-core/fs/proc.c:20:
./include/grub/i18n.h:32:12: fatal error: locale.h: No such file or directory
   32 |# include <locale.h>
      |            ^~~~~~~~~~
compilation terminated.
In file included from ./include/grub/misc.h:27,
                 from ./include/grub/dl.h:29,
                 from ./include/grub/partition.h:22,
                 from ./include/grub/fs.h:30,
                 from ./include/grub/archelp.h:23,
                 from grub-core/fs/archelp.c:19:
./include/grub/i18n.h:32:12: fatal error: locale.h: No such file or directory
   32 | #  include <locale.h>
      |            ^~~~~~~~~~
compilation terminated.
In file included from ./include/grub/misc.h:27,
                 from grub-core/kern/backtrace.c:19:
./include/grub/i18n.h:32:12: fatal error: locale.h: No such file or directory
   32 | #  include <locale.h>
      |            ^~~~~~~~~~
compilation terminated.
make: *** [Makefile:17275: libgrub.pp] Error 1
  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-04-22 12:50
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    CentOS Stream 9下,手工编译grub2-2.06-94.el9.src.rpm软件包报错

    你遇到了手工编译grub2-2.06-94.el9.src.rpm软件包的错误问题。下面是可能的解决方案:

    1. 检查编译环境:确保你的编译环境正确,包括gcc、make、rpm-build等工具是否安装正确。
    2. 检查依赖关系:grub2软件包可能需要其他依赖关系,例如libuuid、libblkid等。确保这些依赖关系已经安装。
    3. 检查源码包:可能是源码包本身有问题,可以尝试下载最新的源码包或重新编译。
    4. 检查编译参数:rpmbuild命令的参数可能不正确,例如build-root、build-arch等。可以尝试使用默认参数或指定正确的参数。

    如果你遇到了具体的错误信息,可以提供错误信息,我可以帮助你解决问题。

    例如,如果你遇到了以下错误信息:

    error: Failed build dependencies:
        libuuid-devel is needed by grub2-2.06-94.el9.src.rpm
    

    那么你需要安装libuuid-devel包:

    sudo dnf install libuuid-devel
    

    然后重新编译grub2软件包。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月22日