On 2007.03.26 at 11:26:23 +0300, Alexander Vlasov wrote: > > > А вот любую сборку в живой системе делать нельзя. > > > > Почему нельзя? Система от этого не пострадает (fakeroot позаботиться). > > Пакет будет работоспособен на всех системах, куда подключены те же > > репозитории. У pbuilder-а есть то преимущество, что он проверит, не > > забыл ли ты чего в Build-Depends, но это не очень существенно. Куда > > существенней, не забыл ли ты чего в Depends. > > Собственно поэтому. > 1) не на всех машинах набор репозиториев одинаков. То есть стандартные > везде есть, но пакет собирается как раз ради нестандартных
Если ты собираешь пакет для себя, то у тебя, на всех машинах, которые ты администрируешь, набор репозиториев одинаков. Если ты собираешься нестандартный репозиторий публиковать, то это не твои проблемы. Напиши на соответствующей страничке что "пакеты в данном репозитории могут зависеть от пакетов из таких-то и таких-то репозиториев" Разве что ты собираешься эти пакеты продавать. Тогда ты чем-то кому-то обязан, но см. ответ на следующий пункт. > 2) depends тоже можно потерять. К сожалению, не все зависимости > определяются shlib:depends, иногда что-то специфическое надо > шелл-скриптам обвязки. Сборка пакета в чистой системе тут не поможет никак. Отловить подобного рода глюки можно только УСТАНОВКОЙ пакета на чистую систему. И желательно, ещё и полным функциональным тестированием оного пакета (а с этим сложности. В Debian, в отличие от например CPAN, инфраструктуры для автоматизированного тестирования пакетов пока нет). Мне попадались вообще экзотические ситуации. Например, авторы upstream софта открывают некую библиотеку посредством dlopen("something.so"). А в Debian something.so есть только в пакете libsomething-dev. А в пакете libsomething1 (от которого по хорошему счету и должен зависеть собранный пакет) имеется libsomething.so.1. И чем тебе pbuilder в этом случае поможет? Он-то libsomething-dev поставит. > 3) и кстати sybase openclient у меня вполне мило игнорировался -- > жаловался на can't parse library format (пишу по памяти), хотя file на > библиотеки говорит ELF 32-bit LSB shared object, Intel 80386, version 1 > (SYSV), not stripped Так это, objdump-ом туда надо смотреть или хотя бы nm. > > А вот при отладке софтины куда удобнее сборку делать на живой системе. > > Получается намного быстрее, можно поменять один-два файла и пересобрать > > только их и бинарник и так далее. > > Перед помещением пакета в репозиторий, конечно, надо будет пересобрать > > начиная с debian/rules clean. > > Да, я пожалуй жестковато сформулировал. > Стоило сказать "сборку _пакета_ в живой системе не надо делать". Не согласен категорически. Нужно стремиться, чтобы живая система ничем не отличалась (в смылсе вещей, могущих повлиять на сборку) от поставленной с нуля с тем же списком пакетов из тех же репозиториев (что, кстати, хорошо не только для сборки. Упорощается клонирование системы, для восстановления в случае аварии не надо /usr бэкапить etc). А вот ТЕСТИРОВАТЬ пакет на эталонной системе надо обязательно. Нарисовать что-ли аналогичный pdebuild-у скриптик ptester... > -- > Alexander Vlasov > ZULU-UANIC > JID: zulu <at> jabber.kiev.ua -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]