rpmbuild正在寻找错误的SOURCES目录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rpmbuild正在寻找错误的SOURCES目录相关的知识,希望对你有一定的参考价值。

我正在尝试打包python和png文件的集合。不涉及编译。我通过以下命令执行此操作

mkdir -p $(WORKDIR)/rpmbuild/BUILD,RPMS,RPMS/noarch,SOURCES,SPECS
cp utp.spec $(WORKDIR)/rpmbuild/SPECS
tar  -zcf $(WORKDIR)/rpmbuild/SOURCES/utp-1.0.tgz --exclude=*.swp,.git,.gitignore,utp.spec,makefile -C .. ./utp
rpmbuild -ba utp.spec

并且出现以下错误:

medi@medi:~/work/utp> rpmbuild -v -ba utp.spec
error: Bad source: /home/medi/rpmbuild/SOURCES/utp-1.0.tgz: No such file or directory

[第一个提示是rpmbuild应该进入'/home/medi/work/rpmbuild/SOURCE/*.tgz'。请注意缺少“工作/”。因此,rpmbuild无法理解我的意图。逻辑建议它应该在utp.spec文件中。这是我的规格文件

medi@medi:~/work/utp> cat utp.spec
Name:       utp
Version:    1.0
Release:    1%?dist
Summary:    Universal Test Platform

Group:      Applications/Engineering
License:    Proprietary
URL:        http://www.example.com
Source0:    %name-%version.tgz

# BuildRequires:    
# Requires: 

%description
some description


%prep
%setup -q


%build
%configure
make %?_smp_mflags


%install
%make_install


%files
%doc



%changelog

而且,很可能我不需要所有规范指令。请让我知道我应该放哪一个。

答案
%setup -q

希望您 tgz包含一个名为%name-%version的目录,因此包含utp-1.0。如果tgz中的目录名称不同,则可以使用:

%setup -q -n <subdir-name>

以上是关于rpmbuild正在寻找错误的SOURCES目录的主要内容,如果未能解决你的问题,请参考以下文章

制作RPM包

spec文件写作规范

nginx-1.8.0 rpm包制作

CentOS 上的 rpmbuild 问题 - /home/me/rpmbuild/tmp/rpm-tmp.58942 的退出状态错误

Centos Kernel编译rpm包

rpm打包