RPM 构建失败 - 找不到任何有效的魔法文件

问题描述

我正在为我的一个项目生成 RPM,但是在处理 RPM 时它显示如下错误

file: Could not find any valid magic files! 
file: Could not find any valid magic files!
file: Could not find any valid magic files! 
file: Could not find any valid magic files!
file: Could not find any valid magic files!
+ /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1
+ /usr/lib/rpm/redhat/brp-python-hardlink
+ /usr/lib/rpm/redhat/brp-java-repack-jars 
Processing files: DEV_SAMPLE-1.0-1.el7.x86_64 unkNown,0: Warning: using regular magic file `/bin/share/misc/magic' error: magic_load Failed: Could not find any valid magic files!

RPM build errors:
    magic_load Failed: Could not find any valid magic files!

操作系统:CentOS Linux 7.4,我的系统中已经有魔法文件。 我该如何解决这个问题?

解决方法

要执行某些操作,例如在可执行文件上运行 striprpmbuild 使用标准 Linux 命令 file。听起来您的安装以某种方式损坏了;它使用所谓的“魔术文件”,该文件提示如何根据内容识别不同的文件。你可以用 file $(which file) 试试,它应该会说 x86_64 ELF Executable 之类的。

您可以使用 sudo rpm -V file 明确检查其安装。 (我现在不在 CentOS 机器上,所以无法确认那是包名称 - rpm -q --whatprovides $(which file) 可以告诉你我是否错了。)该命令应该返回 nothing;如果显示任何文件,则它们可能已损坏或丢失。

要重新安装/修复您安装的 filesudo yum reinstall file(或者如果我错了,则不管是什么软件包)。