我试图创建一个只更新系统上文件的软件包,但是在运行rpmbuild时我一直遇到错误。该错误表示文件丢失。
我已经在CentOS 5和6上尝试了相同的结果。
我使用rpmdev-setuptree
来设置文件系统,该文件系统也设置了~/.rpmmacros
文件。然后我使用rpmdev-newspec
初始化spec文件。
我是以非root用户身份运行的。
我在~/rpmbuild/SPECS/test.spec
中有spec文件,我的来源是:~/rpmbuild/SOURCES/test-1.tar.gz
。提取此文件会创建一个名为test-1
的目录,其中包含2个文件。我已经确认在我尝试构建软件包时它会被提取到~/rpmbuild/BUILD/test-1
。
我跑:rpmbuild -ba ~/rpmbuild/SPECS/test.spec
然后我收到此错误:
- ./ configure --build = x86_64-redhat-linux-gnu --host = x86_64-redhat-linux-gnu --target = x86_64-redhat-linux-gnu --program-prefix = --prefix = / usr --exec-prefix = / usr --bindir = / usr / bin --sbindir = / usr / sbin --sysconfdir = / etc --dadadir = / usr / share --includedir = / usr / include --libdir = / usr / lib64 --libexecdir = / usr / libexec --localstatedir = / var --sharedstatedir = / usr / com --mandir = / usr / share / man --infodir = / usr / share / info / home / me / rpmbuild / tmp / rpm-tmp.58942:第37行:./ configure:没有这样的文件或目录错误:退出状态不正确 /home/me/rpmbuild/tmp/rpm-tmp.58942(%build)
RPM构建错误: 来自/home/me/rpmbuild/tmp/rpm-tmp.58942(%build)的退出状态不佳
这是我的spec文件:
Name: test
Version: 1
Release: 1%{?dist}
Summary: Test
Group: Test
License: GPL
URL: http://example.com
Source0: test-1.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
#BuildRequires:
#Requires:
%description
This is a test to push files.
%prep
%setup -q
%build
#%configure
#make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
#make install DESTDIR=$RPM_BUILD_ROOT
install -m 0755 -d $RPM_BUILD_ROOT/opt/test
%clean
rm -rf $RPM_BUILD_ROOT
%files
%dir /opt/test
%defattr(-,root,root,-)
%doc
关于我可能做错的任何想法?
答案 0 :(得分:7)
看起来默认的GNU“./configure
”脚本不存在,因此您无法在规范文件中使用默认的%setup
宏,并且需要自定义%prep
部分...... (One source) (mirror)