我正在尝试打包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 --define "_topdir/home/medi/work/rpmbuild" -v -ba utp.spec 或仅适用于源文件夹 rpmbuild --define "_sourcedir/home/medi/work/rpmbuild/SOURCE/" -v -ba utp.spec
您可以使用这些命令来控制它可以查找内容的位置。