Сборка deb-пакетов
Apr. 15th, 2012 08:47 pmВсе предыдущие попытки спотыкались о дикие незнакомые гуглу ошибки. Несмотря на наличие вроде бы неплохой документации по созданию пакетов с нуля, с этим вообще не срослось. Поэтому я стал искать рабочие проекты и пытаться править их файлы. Сначала я скопировал отсюда, но закопался в ошибках. Недавно я нашёл этот проект, и наконец-то я осилил сборку deb-ов. Помимо радости поделюсь в посте разными побеждёнными мелочами:
- Имена пакета с исходными кодами в control- и changelog-файлах должны совпадать (как и остальные поля с одинаковым названием в том числе и в dsc-файле).
- control: В поле Depends после ${shlibs:Depends} ничего дописывать нельзя.
- control: В поле Description строки после первой должны начинаться с пробела.
- dsc: В поле Files размер можно получить по
ls -l
а контрольную сумму поmd5sum
- rules: Каждая строка обрабатывается в отдельном потоке, поэтому
cd
нужно записывать в ту же строку, где и команда, которая будет выполняться в нужной директории, разделять их можно с помощью&&
и каждая строка в секции build-stamp выполняется в корне папки с исходными кодами. - Дерево каталогов пакета нужно создавать в папке $(CURDIR)/debian/имя_пакета
- В случае "fatal error: zlib.h: No such file or directory" нужно добавить zlib1g-dev в зависимости для сборки.
- В случае "fatal error: X11/Xlib.h: No such file or directory" нужно добавить libx11-dev в зависимости для сборки.
- В случае "architecture of input file qrc_resources.o is incompatible" нужно очистить исходные коды от файлов *.o.
- Собирать локально под х32 нужно с указанием в качестве архитектуры i586:
osc build xUbuntu_11.10 i586