Apache 正在生成自定义RPM,但包为空?

Apache 正在生成自定义RPM,但包为空?,apache,fedora,rpmbuild,rpm-spec,Apache,Fedora,Rpmbuild,Rpm Spec,我正在尝试为apache的编译版本构建rpm。 我希望rpm在/opt/apache中构建它。。。。 我能够创建RPM文件本身,但当我对该文件执行RPM-qpl时,它显示为空 这是我的规范文件: Name: custom-http Version: 2.2.25 Release: 1%{?dist} Summary: A custom build of Apache License: NA URL:

我正在尝试为apache的编译版本构建rpm。 我希望rpm在/opt/apache中构建它。。。。 我能够创建RPM文件本身,但当我对该文件执行RPM-qpl时,它显示为空

这是我的规范文件:

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
Name:自定义http
版本:2.2.25
发布:1%{?dist}
概要:Apache的自定义构建
执照:NA
网址:http://x.x.x.x:/repo2
资料来源0:http://x.x.x.x:/repo2/httpd-2.2.25.tar.gz
BuildRequires:xfce4开发工具apr util openssl-devel
%描述
Apache 2.2.25版的自定义编译版本
%准备
%设置-n httpd-2.2.25
%建造
./configure--disable rpath--includeapr--enable mods shared=all--mpm=prefork--enable ssl--prefix=/opt/apache--enable so
生成%{?\u smp\u mflags}
%安装
安装
%干净的
%档案
%医生
%变更日志
*2014年1月30日星期四姓名
-第一次尝试

~

如果你继续往下看你正在使用的任何东西来学习如何创建RPM,它将讨论如何填充
%文件
。阅读该部分。

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

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

然后,正如Ignacio Vazquez Abrams所说,您需要填充
%文件
部分。要了解您必须在那里写些什么,只需从tarball中进行构建,将其安装到某个临时目录中(调用
makeinstall
时使用
DESTDIR
),然后列出已安装的文件。阅读i.e.[1]了解更多关于此的信息

其他说明:

  • %doc
    实际上属于
    %files
    部分(从您在
    %doc
    周围添加的额外间距判断,不清楚您是否意识到这一点)
  • 如果您的目标是最新的rpm发行版(即Fedora>F13,RHEL>=6),则不再需要清洁

[1]

刚找到一本不错的教程。但是,由于我正在将其解包到/opt/apache,我不确定spec文件中应该包含什么:%files/httpd-2.2.25//httpd-2.2.25/我需要这个RPM从tar.gz文件编译并相应地安装。找到现有的
httpd
源RPM,取出
.spec
文件,并调整安装路径可能更容易。那你就不用再发明轮子了。谢谢,我来试试。