Wednesday, March 18, 2015

как собрать rpm пакет в centos

Для начала необходимо установить необходимые утилиты

yum install -y rpmdevtools



Затем создаем пользователя, под которым будем собирать пакет, под пользователем root пакеты собирать нельзя


/usr/sbin/useradd rpmbuild
или
useradd rpmbuild

логинимся новым пользователем и переходим в домашнюю папку


su - rpmbuildcd

создадим группу каталогов


rpmdev-setuptree

теперь нам нужен src rpm интересующего нас пакета, можно его скачать с репозитория или с сайта разработчика интересующего нас пакета.
Для загрузки с репо :

Ставим
yum -y install yum-utils 
Подключаем репозиторий epel

yum install epel 
И загружаем интересующий нас пакет, например nginx
yumdownloader --enablerepo=epel-source --source nginx
 Но бывает такое, что интересующего нас пакета в репо может и не быть, поэтому пробуем второй способ, на примере dovecot

переходим на сайт разработчика http://packages.atrpms.net/dist/el6/dovecot/

ищем dovecot-2.2.10-1_14.src.rpm
копируем ссылку и в терминале пишем 
wget http://dl.atrpms.net/all/dovecot-2.2.10-1_14.src.rpm
Далее переходим в систему под именем rpmbuild
su - rpmbuil
и распаковываем пакет

rpm -ivh dovecot-2.2.10-1_14.src.rpm

затем возвращаемся под рута и ставим зависимости пакета

yum-builddep dovecot-2.2.10-1_14.src.rpm

теперь у нас есть исходники пакета и и spec  файл, описывающий как его собирать в rpm
переходим в папку со spec файлом и запускаем  сборку пакета
cd /rpmbuild/SPECS/rpmbuild dovecot.spec

после чего у нас появится rpm пакет в папке rpmbuil/RPMS/

мой файл dovecot.spec

No comments:

Post a Comment

grub2-install: error: disk `mduuid/e54081d398c6d57b4d67436f6d032162' not found

After raid 1 disk replacement faced with this issue # grub2-install /dev/sdb Installing for i386-pc platform. grub2-install: error: disk `md...