Как создать RPM для Suse

Мне нужно установить версию 1.4 Subversion на коробку Suse 10.1 (64 бит). Я не могу изменить ни одну из этих двух версий, и для этого дистрибутива нет RPM. Посмотрев вокруг, я предполагаю, что мне придется создать RPM самому. Есть ли лучший способ, чем этот? Если нет, у кого-нибудь есть какие-либо советы по процессу?

Мне не нужен пошаговый учебник, просто базовая схема процесса.

8 ответов

Решение

Восстановление существующего src.rpm, вероятно, является самым простым. Я бы определенно не пошел по пути конфигурирования, сборки, установки, потому что (а) не масштабируется, (б) не обеспечивает легкого удаления / обновления пакета и (в) не является атомарным.

Создание RPM не так сложно. Раньше на Linux.com было довольно хорошее руководство для начинающих, прежде чем они уничтожили сайт. Вы можете попробовать это, но это много текста, не легко переварить. Тем не менее, это лучше, чем ничего.

Я дам вам несколько советов из затылка:

  1. установить файл.rpmmacros в ~
  2. создать ~/rpmbuild/{RPMS,SRPMS,SPECS,BUILD,BUILDROOT,SOURCES}
  3. удалите исходный архив в ~/rpmbuild/SOURCES
  4. удалите файлы спецификаций в ~/rpmbuild/SPECS
  5. запустите rpmbuild -bp YOURSPEC в ~/rpmbuild/SPECS (запускает подготовительную фазу)
  6. запустите rpmbuild -bc YOURSPEC в ~/rpmbuild/SPECS (выше и запускает фазу компиляции)
  7. запустите rpmbuild -bb YOURSPEC в ~/rpmbuild/SPECS (выше и собирает актуальный пакет)

Если все получилось, ваш RPM появится в ~/rpmbuild/RPMS/${arch}.

Я имею тенденцию использовать 5, 6 и 7 отдельно при создании новых RPM, потому что мне нравится детально проверять результат. Возможно, вы захотите сразу перейти к 7, если у вас есть указанный поставщиком файл.

У меня обычно есть что-то подобное в моем.rpmmacros.

%_topdir /home/YOURNAME/rpmbuild
%packager YOUR NAME <YOUR@EMA.IL>
%_tmppath /tmp

Что касается синтаксиса specfile: это не так сложно. Существует очень подробная, будь то очень старая, справочная работа под названием " Максимальные обороты в минуту ". Все, что вы хотите знать, там.


Проект OpenSuse предоставляет сервис сборки, который поможет вам легко упаковать RPM не только для OpenSuse/SLES, но и для Fedora/RHEL/CentOS, Debian, Ubuntu и Mandriva. Все одним махом.

Как говорит wzzrd, попробуйте перестроить существующую SRPM.

Поиск RPS для OpenSUSE 10.3 дает 2 интересных результата:

Я знаю, что 10,3 далеко от 10,1, но это хороший выстрел.

Если вам действительно нужны rpm для упрощения управления пакетами, я постараюсь получить этот исходный код rpm svn 1.4.0 для SuSE 10.2, установить его, cd в /usr/src//SPECS, затем rpm -bb subversion-1.4.0-31.spec.

Лично я предпочел бы просто получить исходный код с http://subversion.tigris.org/ и выполнить обычный танец "configure && make && make check && sudo make install".

Я использовал checkinstall раньше, и это, казалось, работало довольно хорошо. YMMV.

Если вам не нужно распространять это среди других, я бы просто использовал configure, make, make install. Я обычно устанавливаю префикс в что-то вроде / opt или / usr / local, и храню все исходные файлы в каталоге, например / root / packages /, поэтому у меня есть разумный контрольный журнал, и я знаю, что я установил и, следовательно, что удалить.

Самый простой способ - найти исходные обороты для аналогичного дистрибутива. После этого вы сможете восстановить свой дистрибутив. Я считаю, что есть скрипт под названием rpmbuild, который сделает большую часть работы за вас.

Создание RPM с нуля - это, вероятно, больше работы, чем вы захотите, и более сложное, чем можно описать здесь.

Tar-файл subversion 1.4.0 также содержит файлы спецификации для сборки RPM под RHEL3/4. Вы должны быть в состоянии использовать их для создания RPM.

Но я согласен с предыдущим ответом: если в RPM действительно нет необходимости, просто выполните стандартную настройку && make && make install.

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