Воскресенье, 29 Март 2009

Про RPM

Пытаюсь собрать rpm. Получается. Не нравится разница spec для разных дистрибутивов (в debian ты можешь писать rules на чем захочешь и оно будет работать везде) и не возможность собрать пакет без tar.gz.

С первым я смириться еще могу, а вот со вторым уже никак.

Или я не прав?

Написано в: 14:29 | 11 комментариев | | теги: , | постоянная ссылка |
Добавить пост в:   Delicious Reddit Slashdot Digg Technorati Google


Последние комментарии

Комментарии

chip 30.03.2009 11:17

Конечно, не прав. Укажи в .spec файле

Source: %{name}-%{version}.tar.bz2

ответить
Kirill A. Korinskiy 1.04.2009 3:30

Я не хочу указывать tar.bz2, ибо его у меня нет.

Я хочу положить rpm.sh и file.spec в дерево исходных кодов и получить кучу rpm’ок (ну или одну) на выходе. Научите меня писать такие spec файлы, а?

ответить

Форма комментирования для «Про RPM»

Обязательное поле. Не больше 30 символов.

Обязательное поле

chip 1.04.2009 14:37

Что такое rpm.sh и file.spec? Основная цель — исключить внесение тарбола с исходными текстами в систему версионного контроля?

ответить
Kirill A. Korinskiy 1.04.2009 14:40

У меня есть дерево с исходными кодами моей программы. В них есть файл deb.sh который создает пакет для debian. Я хочу создать возможность создавать так же пакет для centos.

ответить
chip 1.04.2009 17:34

Опять не вижу проблемы.

Что мешает в секции %prep не использовать макрос %setup? Скопировать необходимое дерево исходных текстов в %{_builddir} для дальнейшей сборки.

ответить
Kirill A. Korinskiy 1.04.2009 18:15

Спасибо.

Можешь стукнуть мне в jabber (катап-катап.ру), я лучше там буду вопросы задавать?

ответить
Alrond 6.04.2009 4:26

Можешь свой deb.sh показать?

ответить
Kirill A. Korinskiy 6.04.2009 4:44

Надо понимать что это для приватной сборки

#!/bin/sh

./version.sh
date=`LC_ALL=C date "+%a, %d %b %Y %H:%M:%S %z"`
ver=`grep NGINX_VERSION src/core/nginx.h | head -n 1 | sed -e 's:^.*"\(.*\)".*$:\1:g'`

rm -f debian/changelog
cat debian/changelog.in | sed -e "s|@@DATE@@|$date|g" | sed -e "s|@@VER@@|$ver|g" > debian/changelog
dpkg-buildpackage -rfakeroot -us -uc -i\.git -I.git

как-то так. Для публичных репозиториев я использую git-buildpackages. Да, оно мерзкое, но лучше нет и сам делать не хочу.

ответить
Alrond 6.04.2009 15:27

Я просто хотел сравнить, у меня для моих приватных deb-ов что-то типа такого:

sudo checkinstall --fstrans=no --pkgname=packname --pkgversion "2:0.svn`date +%Y%m%d`-12ubuntu3"
ответить
Kirill A. Korinskiy 6.04.2009 15:31

Вообще это плохо. Это очень плохо.

Лучше использовать fakeroot и честную сборку deb пакета.

ответить
Alrond 6.04.2009 15:43

Вот подкорректирую скрипт от тебя, и будет честная сборка ;)

ответить