Сборка пользовательских RPM, но пакет пуст?

Я пытаюсь построить RPM для скомпилированной версии Apache. Я хочу, чтобы 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

~

2 ответа

Решение

Во-первых, вам нужно установить файлы в buildroot при выполнении make install, так как вы не хотите, чтобы файлы были установлены в фактическом корне файловой системы при сборке пакета. Это означает, что вы должны заменить 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

).

Тогда, как сказал Игнасио Васкес-Абрамс, вам нужно будет заполнить %files раздел. Чтобы выяснить, что вам нужно написать, просто сделайте сборку из tarball, установите ее во временный каталог (используя DESTDIR при звонке make install), а затем перечислите установленные файлы. Прочтите ie [1], чтобы узнать больше об этом.

Другие заметки:

  • %doc на самом деле принадлежит %files раздел (судя по дополнительному интервалу, который вы добавили вокруг %doc, неясно, знаете ли вы об этом).
  • %clean больше не требуется, если вы нацелены на недавний дистрибутив rpm (т.е. Fedora> F13, RHEL> = 6).

[1] http://fedoraproject.org/wiki/How_to_create_an_RPM_package

Если вы продолжите изучать то, что используете, чтобы узнать, как создавать RPM, это будет говорить о заполнении %files, Прочитайте эту часть.

Другие вопросы по тегам