LINUX.ORG.RU

Пару вопросов по rpm


0

1

Привет.
1. Я заметил, что если секция %files пустая, а в %install используется утилита install, то все установленные файлы автоматом добавляются в список файлов пакета. Как правильнее собирать пакет? Моё имхо, что лучше таки прописать секцию %files ручками. Кто как делает?
2. Я так понял, что %dir в секции %files удалит директорию даже если там есть какие-нибудь файлы, которые не входят в пакет. Допустим приложение создаёт в своей директории в /var файл настроек. Лучше полностью подчистить за собой или оставить настройки?
3. Один и тот же пакет можно без проблем использовать в suse и centos?

★★★★★

Последнее исправление: UVV (всего исправлений: 1)
Ответ на: комментарий от anonymous

Я за годы в Debian уже забыл детали RPM, но мнение имею:

Моё имхо, что лучше таки прописать секцию %files ручками. Кто как делает?

Если тебя не устраивает автоматически сгенерированный список, выбора нет :) Ты, конечно, знаешь это?

Допустим приложение создаёт в своей директории в /var файл настроек. Лучше полностью подчистить за собой или оставить настройки?

ЕМНИП, можно пометить файл как конфигурационный, и пусть RPM сам думает.

3. Один и тот же пакет можно без проблем использовать в suse и centos?

Зависит. Если это просто приложение, такой пакет можно сделать, но придется прикладывать усилия. Если это что-то вроде системной слжбы - сомневаюсь.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Если тебя не устраивает автоматически сгенерированный список, выбора нет :) Ты, конечно, знаешь это?

Сомнение в чём, в автоматическом списке присутствуют /usr, /usr/sbin. Они, конечно, не удаляются при удалении пакета, но не совсем комфортно как бы.

UVV ★★★★★
() автор топика

Я заметил, что если секция %files пустая, а в %install используется утилита install, то все установленные файлы автоматом добавляются в список файлов пакета.

Нет такого. Это какие-то особенности вашей системы сборки.

В OBS просто выдает список файлов, который можно скопипастить в %files.

Я так понял, что %dir в секции %files удалит директорию даже если там есть какие-нибудь файлы, которые не входят в пакет.

Нет. В %dir надо прописывать все каталоги, где есть хоть один файл пакета. Есть ли там кроме него файлы других системных пакетов - не важно. Каталог не удалится, если там есть файлы.

Один и тот же пакет можно без проблем использовать в suse и centos?

.src.rpm - как правило, нельзя. Бинарные .rpm - как правило, можно.

Но для этого надо, чтобы в обоих дистрибутивах были нужные версии зависимостей/библиотек. Кроме того, дополнительные траблы могут возникнуть если речь идет не о программе на Си, а о каком-нибудь питоне, wxgtk и т.д.

Если программа написана на Си и не дистроспецифична (например, игра), то надо только проследить, чтобы зависимости были удовлетворены. Как правило, пакеты, собранные на более старой системе, работают и на более новых. Пакеты, собранные на дистрибутивах примерно одного и того же времени выхода, имеют больше шансов быть переносимыми. Пакет, собранный на Centos имеет больше шансов запуститься на последней сусе, чем наоборот (потому что там софт древнее).

Nxx ★★★★★
()
Последнее исправление: Nxx (всего исправлений: 3)
Ответ на: комментарий от UVV

Пакеты можно собирать в OBS https://build.opensuse.org/ сразу для нескольких дистрибутивов. При этом в spec-файл просто добавить проверку, какой дистрибутив и соответствующие зависимости сборки и выбрать нужные дистры как цели сборки. В результвте будут созданы бинарные репозитории для всех нужных дистрибутивов и .src.rpm также будет совместим со всеми дистрами.

В частности, там поддерживается сборка для openSUSE 11.4-12.2, CentOS 5 и 6, Fedora 16, 17, RHEL 4-6, Mandriva 2009.1-2011

Nxx ★★★★★
()
Последнее исправление: Nxx (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.