LINUX.ORG.RU
ФорумAdmin

расскажите как в Debian собрать пакет


0

0

Народ, подскажите как для старого дебиана (sarge) собрать свежий пакет как можно меньше вмешиваясь в систему. Есть старый сервер который нет возможности обновить, но пару приложений хотелось бы проапдейтить до последних версий (в первую очередь BIND).

В идеале нужно получить пакет и скопировав его на машину поставить, ничего более не трогая.

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

Желательно пошагово :) Т.е. какие пакеты нужны для компиляции и как их поставить, как взять свежий пакет с сорцами, чего в нём поправить чтобы собрался в старой системе ничего за собой не потянув, как собственно сделать из этого пакет и как воткнуть на сервер с возможностью отката на старую версию если что-то пойдёт не так.

P.S. в дебиане я профан

Ответ на: комментарий от cyberax

checkinstall делает deb пакеты при выполнении обычного make install

jam44
()

Думаю, натолкнётесь на кучу несовместимостей. Всё-таки sarge уже старенький. Попробуйте собрать bind на целевой системе из сорцов и установить отдельно, куда-нибудь в /opt. Посмотрите, как заработает.

markevichus ★★★
()
Ответ на: комментарий от elipse

Хорошие ссылки. А то я упёрся в необходимость наличия debhelper-5, когда даже с понижением зависимости пакет не собирается.

Ещё столкнулся с отсутствием команды log_daemon_msg в стартовых скриптах бинда. В этом случае наверное лучше будет взять их от старой версии нежели обновлять lsb-base где есть эта функция?

cyberax
() автор топика
Ответ на: комментарий от cyberax

В общем собрал, буду пробовать накатывать на сервер... Вот почти пошаговая инструкция:

* выкачал отсюда http://cdimage.debian.org/cdimage/archive/3.1_r8/i386/iso-cd/ первый инсталляционный диск и воткнул его в VirtualBox, не давая ломиться в интернет и качать security обновления (т.к. он пытается брать их из oldstable, который сейчас уже не sarge)

* в /etc/apt/sources.list убрал всё что есть и прописал следующие репозитории:

deb http://archive.debian.org/debian/ sarge main contrib
deb-src http://ftp.debian.org/debian/ stable main contrib
deb http://archive.debian.org/backports.org/ sarge-backports main contrib

* опционально поставил mc и less:

# apt-get update
# apt-get install mc less

* поставил злополучный debhelper-5 (хотя можно понизить версию в зависимостях и файле debian/compat):

# apt-get install debhelper=5.0.40~bpo.1

* выкачал сорцы свежего бинда из stable а также бинарные пакеты для sarge с целью выдернуть из них init-скрипты:

# apt-get source bind9
# apt-get -d install bind9 lwresd

* поставил кучу всякого хлама для компиляции:

# apt-get install build-essential fakeroot devscripts libkrb5-dev libssl-dev libtool bison libdb4.2-dev libldap2-dev libxml2-dev libcap2-dev

* затем перешёл в директорию bind9-9.5.1.dfsg.P1 (в неё автоматом распаковались сорцы после apt-get source bind9, возможно для распаковки нужен был пакет dpkg-dev) и поправил файл debian/control:

- убрал hardening-wrapper из Build-Depends а также строку "Build-Conflicts: libdb4.2-dev" из секции "Source: bind9"
- для секции "Package: libbind-dev" дважды заменил макрос ${binary:Version} на ${Source-Version}

* скопировал стартовые скрипты bind9 и lwresd от старого бинда при помощи mc (пакеты лежат в /var/cache/apt/archives) в debian/ под именами bind9.init и lwresd.init соответственно

* поправил changelog, добавив ~bpo1 к номеру версии, так что в debian/changelog у меня получилось первой строкой "bind9 (1:9.5.1.dfsg.P1-3~bpo1) stable; urgency=low":

# dch -i

* собрал пакет:

fakeroot ./debian/rules

* в результате получил кучу пакетов, из которых поставил всё кроме doc и lwresd - запустилось успешно но работу пока не проверял, если вылезут косяки отпишусь...

Для поисковиков: debian sarge bind backport howto

P.S. это моя первая инсталляция Debian и честно говоря после Gentoo я просто в шоке - не думал что всё так усложнено и нужно столько усилий чтобы поставить что-то свежее чего нет в репозиториях... В Gentoo у меня есть оверлей в который я тупо копирую нужные мне ebuild'ы из самых разных источников или пишу сам, а затем просто их ставлю.

cyberax
() автор топика
Ответ на: комментарий от cyberax

>я тупо копирую нужные мне ebuild'ы из самых разных источников
и кто вам тогда гарантирует работоспособность вашей системы?

markevichus ★★★
()
Ответ на: комментарий от markevichus

1. Я не копирую какие попало ebuild'ы которые могут сломать мне систему... Всё что мне нужно - дефолтная система в которой порядка 10-20 программ имеют необходимые мне версии а не те которые предлагает дистрибутив. Некоторые из этих программ вообще собираются прямо из trunk'ов систем контроля версий.

2. Это ничуть не опаснее чем такой вот "бэкпортинг" или сторонние репозитории пакетов.

Всё что я хочу сказать - в Gentoo шаг влево/вправо от официального дистрибутива делается значительно легче и на мой поверхностный взгляд ebuild'ы гораздо читабельней и проще в написании по сравнению со спецификациями пакетов rpm/deb.

И вообще, работоспособность системы никто нигде не гарантирует, даже Майкрософт :)

cyberax
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.