rpmbuild 失败并显示“文件必须以 / 开头”消息

问题描述 投票:0回答:2

我必须使用 rpm 包安装二进制文件。我创建了以下规范文件来使用 RPM 包安装我的二进制文件。

-bash-4.1# cat nxtqos.spec
Summary: test Management Utility
Name: test
License: GPL
Vendor: test Limited
Version: 212.0.1.0
Release: 1
%description
%install
cp -rf /home/ahmed/nxtqos/nxtqos /usr/local/bin
%files
nxtqos
-bash-4.1# 

当我尝试使用以下命令创建 RPM 包时,出现以下错误提示。

-bash-4.1# rpmbuild --buildroot bnxtqos-tmp/ -bi bnxtqos.spec
error: failed to stat /home/ahmed/nxtqos/bnxtqos.spec: No such file or directory
-bash-4.1# rpmbuild --buildroot bnxtqos-tmp/ -bi nxtqos.spec
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.iuhGJm
+ umask 022
+ cd /root/rpmbuild/BUILD
+ '[' /bnxtqos-tmp '!=' / ']'
+ rm -rf /bnxtqos-tmp
++ dirname /bnxtqos-tmp
+ mkdir -p /
+ mkdir /bnxtqos-tmp
+ LANG=C
+ export LANG
+ unset DISPLAY
+ cp -rf /home/ahmed/nxtqos/nxtqos /usr/local/bin
+ /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/redhat/brp-compress
+ /usr/lib/rpm/redhat/brp-strip /usr/bin/strip
+ /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/redhat/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump
+ /usr/lib/rpm/brp-python-bytecompile
+ /usr/lib/rpm/redhat/brp-python-hardlink
+ /usr/lib/rpm/redhat/brp-java-repack-jars
Processing files: test-212.0.1.0-1.x86_64
error: File must begin with "/": nxtqos


RPM build errors:
    File must begin with "/": nxtqos
-bash-4.1#

如果我在规范文件中遗漏了某些内容,有人可以告诉我吗?

linux rpm rpmbuild rpm-spec
2个回答
2
投票

%files
部分,您应该提供安装时可找到文件的完整路径:

%files
/usr/local/bin/nxtqos

0
投票

我遇到了类似的问题,但就我而言,文件名之前有一个空格,这导致在构建 RPM 时出现问题,因此请确保在您的任何提交中都有任何带有非法文件名。罪魁祸首的文件路径是这样的。

“我的/文件/路径/ message_en_properties”

所以我从文件名中删除了空格,它起作用了。

© www.soinside.com 2019 - 2024. All rights reserved.