Я хочу сделать RPM, используя определенного пользователя, из указанного местоположения каталога сборки. RPM содержит несколько файлов или один gzip и должен копировать эти файлы в заранее заданное место (поэтому его следует перемещать).

Я был на сайте Fedora и других учебных пособиях (включая переполнение стека), но, похоже, ничего не работает. Все, что я мог получить (в лучшем случае), это просто src.rpm, который выдает ошибку при попытке записи в% sourcedir /usr /src /redhat /SOURCES по некоторым причинам.

Все, что мне нужно, - это один файл спецификации, который может создать RPM, который может обрабатывать один gzip или несколько текстовых файлов, распаковать его / скопировать их в заданное место. Сборка rpm должна генерировать файл rpm в каталоге RPM.

Меня не интересуют другие инструменты, которые создают RPM, но как их создать, используя rpm build.

Использование RPM версии 4.4.2.3

1 ответ1

1

Будет чуть больше информации, чем вы просили. Я предполагаю, что оригинальный плакат с вопросом знает, как работает rpmbuild, но, возможно, кто-то еще не знает.

Простая процедура для создания RPM с установкой двух файлов.

Создайте иерархию каталогов для rpmbuild: mkdir -p ~/rpmbuild/{SPEC,SOURCES} .

Скопируйте пример содержимого в свои фиктивные RPM-файлы (это необходимо при использовании файла SPEC в этом примере позже): cp /etc/profile ~/rpmbuild/SOURCES/dummy.file && cp /etc/shells ~/rpmbuild/dummy.another.file .

Вставьте следующее в ~/rpmbuild/SPEC/dummyrpmfile.spec:

Summary:        A dummy RPM. Creates file /etc/dummy/file.
Name:           dummyrpmfile
Version:        0.1
Release:        1
Vendor:         Super User
Packager:       Super User
License:        GPL
Group:          System Environment/Base
BuildArch:      noarch
Source0:        dummy.file
Source1:        dummy.another.file
Prefix:         /etc/dummy    

%description
A dummy RPM. Creates file /etc/dummy/file. And also directory /etc/dummy.
Very cool package. You should install this. Oh, yes, and it also makes
/etc/dummy/another.file too.

%install
# create directory /etc/dummy
%{__install} -d -m0755 %{buildroot}/etc/dummy
# and copy the file from SOURCES/file to <buildroot>/etc/dummy
%{__install} -m 0644 %{SOURCE0} %{buildroot}/etc/dummy/file
%{__install} -m 0644 %{SOURCE1} %{buildroot}/etc/dummy/another.file

%files
/etc/dummy/file
/etc/dummy/another.file

Затем запустите cd ~/rpmbuild && rpmbuild -ba SPEC/dummyrpmfile.spec .

Это должно создать RPM "noarch" в случае, если это просто данные и такие, которые не имеют различия между 32-битной и 64-битной архитектурами, например. Результаты должны быть в ~/rpmbuild/RPMS/noarch/dummyrpmfile.rpm .

Ссылки на справку: как работает префикс.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .