http://www.linux.org.ru/forum/general/5401371 - часть 1
Во второй части попытаюсь упорядочить ту инфу, что получил о сборке пакетов на этом форуме, а также на unixforum.org. Debian - дистрибутив на котором полгода назад я решил остановиться, он более стабилен чем многие другие дистрибутивы, и хорошо документирован. Использую репозитории «stable („lenny“), а также некоторые проприетарные: opera, google, qutim. Другие использовать не хочу, так как не хочу нарушать стабильнось своей системы. К сожалению в репозиториях есть не всё, приходится собирать программы из исходников. Меня интересует как создать пакет программы, поставляемой в виде исходников и как создать пакет проприетарной программы, чтобы этот пакет не нанёс урона стабильности системы как при его установке, так и при удалении.
Убедительно прошу не отсылать меня к руководствам. У меня и так некоторые руководства по сбрке deb-пакетов имеются и даже распечатаны. Вот эти:
http://www.debian.org/doc/maint-guide/
http://wiki.debian.org/DebianRussian/DebinstPackages
http://wiki.debian.org/DebianRussian/deb-inside
http://www.opennet.ru/base/sys/debian_backport.txt.html
Многое я из этих руководств не понимаю. Например во всех них сказано, что нужно использовать инструмент dh_make. А вот make для компиляции я так понимаю использовать не нужно, dh_make сама вызовет make и создаст скелет будущего пакета (каталог debian с файлами control и rules). Затем нужно подредактировать файлы в каталоге debian: control, changelog, сценарии preinst, postinst и другие. После окончательная сборке пакета и его упаковка осуществляется dpkg-buildpackade. Вот тут начинается и первое разногласие. Разные статьи говорят о разных инструментах: dpkg-buildpackade, dpkg --build, dpkg-deb. В первой части мне сказали, что лучше использовать dpkg --build.
Второй вопрос. Может я чётко не понимаю как действует dh_make, но вот что непонятно из её синтаксиса:
dh_make -e ваш@электронный.адрес -f а../архив.orig.tar.gz
Could not find libtorrent_0.12.orig.tar.gz
Either specify an alternate file to use with -f,
or add --createorig to create one.
Зачем мне нужен архив исходников, если этот архив уже распакован и в каталоге, куда распаковано его содержимое я сейчас нахожусь? А если исходники я получал вообще не из архива, а с помощью svn как в случае с libtorrent.
Дальше. А конфигурировать программу перед компиляцией надо или это тоже сделает dh_make. Просто некоторые программы конфигурируются с помощью configure, некоторые с помощью autoconf.sh+configure, некоторые с помощью cmake. В первой статье сказано что нужно редактировать Makefile.am или Makefile.in. Означает ли это, что ./configure запускать не нужно, а все параметры передаваемые этому скрипту вручную прописать в Makefile.am или Makefile.in? А как быть в случае с cmake? А как быть если программа компилируется не при помощи make, а при помощи scons?
И наконец, как делать пакеты проприетарных программ. Например такая программа как vmware устанавливается при помощи запуска бинарного файла VMware-Workstation-Full-7.1.0-261024.x86_64.bundle, а удаляется вообще неизвестно как. Возможно ли сдалать из неё пакет чтобы она могла корректно удаляться при помощи aptitude?