Как правильно собрать пакет rpm?

0

Я пытаюсь установить новую версию от ganglia , которая предоставляет tar.gz. Моя процедура была распаковать tar.gzфайл, войти в папку и затем сделать rpmbuild -ba ganglia.spec, выдается предупреждение о отсутствующих библиотеках зависимостей, затем я устанавливаю их через yum, затем rpmbuildснова выдаю , что генерирует некоторые .rpmфайлы при том, что /usr/src/RPM/я сделал это в centOS 5 и CentOS 6. Затем установите его на некоторых серверах.

Интересно, правильно ли то, что я делаю? (Я читал некоторые учебные пособия только через Интернет) Мой друг сказал, что это неправильно, что то, .rpmчто я генерирую, похоже compileи будет работать только для серверов только с аппаратным обеспечением, верно?

Как правильно собрать .rpmпакет из .tar.gzфайла?

Вальтер Сильва
источник

Ответы:

5

Это правильный путь. Ответственность за правильную спецификацию rpm лежит на лицах, выпускающих файл .tar.gz, если он предназначен для сборки rpm. И вот как вы строите RPM из файла спецификации.

Созданные таким образом rpm-файлы могут быть установлены на всех соответствующих серверах, при условии, что вы специально не сделали вещи, которые мешают им работать (например, установили странные версии «зависимостей», но если вы установили пакеты только из базовых репозиториев centos , пакеты будут хорошими). Но «соответствие» здесь означает и версию centos / rhel, и архитектуру. Архитектура обычно подразумевает только 32-разрядную или 64-разрядную архитектуру x86, но есть также архитектуры arm, powerpc и другие. Например, проект Fedora поддерживает следующие архитектуры: https://fedoraproject.org/wiki/Architectures .

В любом случае некоторые rpms (специфичные для архитектуры) могут быть установлены на определенной архитектуре, поскольку они содержат скомпилированный код. Другие rpms могут быть «noarch», что означает, что сгенерированные rpm могут быть установлены на любой архитектуре. Этот тип rpms не имеет скомпилированных двоичных файлов, только программы с данными или интерпретируемыми языками (shell, perl, python и т. Д.).

Вильо Виитанен
источник