构建自定义RPM但包是空的?

时间:2014-01-31 16:26:42

标签: apache fedora rpmbuild specfiles

我正在尝试为apache的编译版本构建rpm。 我希望rpm在/ opt / apache中构建它.... 我能够自己创建RPM文件但是当我在文件上执行rpm -qpl时它会显示为空。

这是我的spec文件:

Name:           custom-http
Version:        2.2.25
Release:        1%{?dist}
Summary:        A custom build of Apache

License:        NA
URL:            http://x.x.x.x:/repo2
Source0:        http://x.x.x.x:/repo2/httpd-2.2.25.tar.gz

BuildRequires:  xfce4-dev-tools apr-util openssl-devel

%description
Custom compiled version of Apache version 2.2.25

%prep
%setup -n httpd-2.2.25

%build
./configure --disable-rpaths --with-included-apr --enable-mods-shared=all --with-mpm=prefork --enable-ssl --prefix=/opt/apache --enable-so

make %{?_smp_mflags}

%install
make install

%clean

%files

%doc

%changelog
* Thu Jan 30 2014 name <email address>
- First attempt

2 个答案:

答案 0 :(得分:2)

如果您继续使用它来学习如何创建RPM,那么它将讨论填充%files。阅读那部分。

答案 1 :(得分:1)

首先,您需要在执行make install时将文件安装到buildroot,因为您不希望在构建程序包时将文件安装在实际的文件系统根目录中。 这意味着您必须将make install替换为make install DESTDIR=%{buildroot},您也可以将其简写为%make_install(要查看宏扩展到的内容,您可以执行rpm -E <macro>,即

$ rpm -E %make_install
/usr/bin/make install DESTDIR=$HOME/rpmbuild/BUILDROOT/%{name}-%{version}-%{release}.x86_64

)。

然后,正如Ignacio Vazquez-Abrams所说,你需要填充%files部分。要找出你必须在那里写的内容,只需从tarball进行构建,将其安装在一些临时目录中(在调用DESTDIR时使用make install),然后列出已安装的文件。阅读[1]了解更多信息。

其他说明:

  • %doc实际上属于%files部分(根据您在%doc附近添加的额外间距判断,目前尚不清楚您是否知道这一点。)
  • 如果您的目标是最近的rpm发行版(即Fedora&gt; F13,RHEL&gt; = 6),则不再需要
  • %clean

[1] http://fedoraproject.org/wiki/How_to_create_an_RPM_package#.25files_section