Сборка пользовательских 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
, Прочитайте эту часть.