Создание deb пакеты из исходников

Автор xbsd, 14 августа 2012, 16:03:00

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

xbsd

Всем привет!
Задался целью собрать deb пакет из исходных кодов, скаченных с сайта разработчик, на примере zabbix 2.0.2 .
Все манипуляции производятся на тестовой машине с debian sqeeze, запущенной под VirtualBox.
user@ftp-debian:~/src/debian/zabbix-2.0.2$ uname -a
Linux ftp-debian 2.6.32-5-686 #1 SMP Sun May 6 04:01:19 UTC 2012 i686 GNU/Linux

За основу было взято следующее руководство: IntroDebianPackaging.
Итак.
1. Скачал архив с исходными кодами zabbix-2.0.2.tar.gz в каталог ~/src/debian и распаковал его.
2. В каталоге zabbix-2.0.2 создал подкаталог debian. И в нем разместил файлы changelog, созданный командой dch --create -v 1.0.1 --package zabbix; compat, содержайщий только цифру 8; с файлом control возникли трудности, а именно не понятно чем его создавать (текстовым редактором? а содержимое писать ручками? или есть некий "генератор" шаблона?) ну да ладно, создал руками, вписал содержимое из мануала.. Получилось вот что
Source: zabbix
Maintainer: xbsd <xbsd@gmail.com>
Section: misc
Priority: optional
Standards-Version: 2.0.2
Build-Depends:

Package: zabbix
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: greet user
hithere greets the user, or the world.

Не понятно что писать в разделе Build-Depends. В мануале zabbix ничего не сказано о зависимостях в процессе сборки. Зато хорошо описаны требования к софту для корректной работы zabbix сервера: apache, php5, mysql-server-5.1, mysql-client-5.1, php-gd, php-bcmath, php-ctype, php-xml, php-xmlreader, php-xmlwriter, php-session, php-net-socket, php-mbstring, php-gettext, php5-mysql. Как на основании этого списка корректно заполнить строку Depends в файле conrtol ?
Так же для работы zabbix сервера необходимо создать пользователя и группу zabbix, как автоматизировать этот процесс, чтобы при установке полуенного deb пакета пользователь и группа создались автоматически? Кстати и база данных тоже должна как-то создаться...

Вот.
Благодарю за внимание. Надеюсь мои вопросы не остануться без ответов :)

lameritos


xbsd

и как, у вас получилось?
на днях вернусь к вопросу. был в командировке, некогда было заниматься. Тем более раньше занимался этим по собственной инициативе, а теперь назрела практическая необходимость.

Lum

Можно просто взять дебианизацию из  официального репозитория и адаптировать версии сборочных зависимостей и debian/rules для squeeze

ferum

Не даёт мне покоя отставание Debian в области мультимедия. Вчера поставил Wheezy и пытаюсь собрать XBMC с функциями PVR & timeshift из git clone https://github.com/AndreyPavlenko/xbmc-build.git с помощью скрипта. Скрипт не для самых ленивых но как пишут на Ubuntu 12.10 удаётся собрать работоспособную программу. Уже доустановил кучу зависимостей но упёрся в проблему, понять которую не могу, если кто специалист, прошу помощи
Открыть содержимое (спойлер)
make -C xbmc/visualizations/XBMCProjectM
make[1]: Entering directory `/home/alex/x/xbmc-build/sources/xbmc/xbmc/visualizations/XBMCProjectM'
make -C libprojectM
make[2]: Entering directory `/home/alex/x/xbmc-build/sources/xbmc/xbmc/visualizations/XBMCProjectM/libprojectM'
make[3]: Entering directory `/home/alex/x/xbmc-build/sources/xbmc/xbmc/visualizations/XBMCProjectM/libprojectM'
make[4]: Entering directory `/home/alex/x/xbmc-build/sources/xbmc/xbmc/visualizations/XBMCProjectM/libprojectM'
make[4]: Leaving directory `/home/alex/x/xbmc-build/sources/xbmc/xbmc/visualizations/XBMCProjectM/libprojectM'
make[4]: Entering directory `/home/alex/x/xbmc-build/sources/xbmc/xbmc/visualizations/XBMCProjectM/libprojectM'
make[4]: *** Нет правила для сборки цели `/usr/lib/i386-linux-gnu/libGL.so', требуемой для `libprojectM.so.2.00'.  Останов.
make[4]: Leaving directory `/home/alex/x/xbmc-build/sources/xbmc/xbmc/visualizations/XBMCProjectM/libprojectM'
make[3]: *** [CMakeFiles/projectM.dir/all] Ошибка 2
make[3]: Leaving directory `/home/alex/x/xbmc-build/sources/xbmc/xbmc/visualizations/XBMCProjectM/libprojectM'
make[2]: *** [all] Ошибка 2
make[2]: Leaving directory `/home/alex/x/xbmc-build/sources/xbmc/xbmc/visualizations/XBMCProjectM/libprojectM'
make[1]: *** [libprojectM/libprojectM.so] Ошибка 2
make[1]: Leaving directory `/home/alex/x/xbmc-build/sources/xbmc/xbmc/visualizations/XBMCProjectM'
make: *** [xbmc/visualizations/XBMCProjectM] Ошибка 2
[свернуть]
Русские дебианщики против цифрового слабоумия !

Alexey_F

Цитата: ferum от 16 ноября 2012, 08:41:02make[4]: *** Нет правила для сборки цели `/usr/lib/i386-linux-gnu/libGL.so', требуемой для `libprojectM.so.2.00'.  Останов.

Что выдаёт греп по мейкфайлу?

ferum

#6
Цитата: Alexey_F от 16 ноября 2012, 23:21:59Что выдаёт греп по мейкфайлу?
Стыдно признаться, но такой фишки я не знаю, пользуюсь только apt-file search Буду благодарен, если научите. Эту проблему я решил (уже не помню название библиотеки) но есть и другие.

Сообщение объединено: 17 ноября 2012, 22:51:38

Открыть содержимое (спойлер)
LD      xbmc.bin
-----------------------
XBMC built successfully
-----------------------
make[1]: Leaving directory `/home/alex/a/vdr/xbmc-build/sources/xbmc'
make -C lib/addons/script.module.pil
make[1]: Entering directory `/home/alex/a/vdr/xbmc-build/sources/xbmc/lib/addons/script.module.pil'
make[1]: Leaving directory `/home/alex/a/vdr/xbmc-build/sources/xbmc/lib/addons/script.module.pil'
   dh_auto_test
Google Test Framework not configured, skipping testsuite check.
   dh_testroot
   dh_prep
   dh_installdirs
   dh_auto_install
Copying XBMC binary to /home/alex/a/vdr/xbmc-build/sources/xbmc/debian/xbmc/usr/lib/xbmc/
You can run XBMC with the command 'xbmc'
Copying support and legal files...                                             
Done!
Copying system files to /home/alex/a/vdr/xbmc-build/sources/xbmc/debian/xbmc/usr/share/xbmc
   dh_installml                                                               
   dh_installdocs
   dh_installchangelogs
   dh_installexamples
   dh_installman
   dh_installcatalogs
   dh_installcron
   dh_installdebconf
   dh_installemacsen
   dh_installifupdown
   dh_installinfo
   dh_pysupport
dh_pysupport: This program is deprecated, you should use dh_python2 instead. Migration guide: http://deb.li/dhs2p
   dh_installinit
   dh_installmenu
   dh_installmime
   dh_installmodules
   dh_installlogcheck
   dh_installlogrotate
   dh_installpam
   dh_installppp
   dh_installudev
   dh_installwm
   dh_installxfonts
   dh_installgsettings
   dh_bugfiles
   dh_ucf
   dh_lintian
   dh_gconf
   dh_icons
   dh_perl
   dh_usrlocal
   dh_link
   dh_compress
   dh_fixperms
   dh_strip
   dh_makeshlibs
   debian/rules override_dh_shlibdeps
dh_shlibdeps -a -Xdvdplayer
dpkg-shlibdeps: ошибка: информация о зависимостях не найдена для /usr/lib/libGL.so.1 (используется debian/xbmc/usr/lib/xbmc/addons/visualization.glspectrum/opengl_spectrum.vis)
dh_shlibdeps: dpkg-shlibdeps -Tdebian/xbmc.substvars debian/xbmc/usr/lib/xbmc/system/ImageLib-i486-linux.so debian/xbmc/usr/lib/xbmc/system/libcpluff-i486-linux.so debian/xbmc/usr/lib/xbmc/system/libexif-i486-linux.so debian/xbmc/usr/lib/xbmc/system/players/paplayer/libsidplay2-i486-linux.so debian/xbmc/usr/lib/xbmc/system/players/paplayer/timidity-i486-linux.so debian/xbmc/usr/lib/xbmc/system/players/paplayer/SNESAPU-i486-linux.so debian/xbmc/usr/lib/xbmc/system/players/paplayer/nosefart-i486-linux.so debian/xbmc/usr/lib/xbmc/system/players/paplayer/stsoundlibrary-i486-linux.so debian/xbmc/usr/lib/xbmc/system/players/paplayer/vgmstream-i486-linux.so debian/xbmc/usr/lib/xbmc/system/players/paplayer/adpcm-i486-linux.so debian/xbmc/usr/lib/xbmc/system/libcmyth-i486-linux.so debian/xbmc/usr/lib/xbmc/system/hdhomerun-i486-linux.so debian/xbmc/usr/lib/xbmc/xbmc.bin debian/xbmc/usr/lib/xbmc/addons/library.xbmc.pvr/libXBMC_pvr-i486-linux.so debian/xbmc/usr/lib/xbmc/addons/visualization.projectm/projectM.vis debian/xbmc/usr/lib/xbmc/addons/library.xbmc.addon/libXBMC_addon-i486-linux.so debian/xbmc/usr/lib/xbmc/addons/screensaver.rsxs.plasma/Plasma.xbs debian/xbmc/usr/lib/xbmc/addons/visualization.glspectrum/opengl_spectrum.vis debian/xbmc/usr/lib/xbmc/addons/library.xbmc.gui/libXBMC_gui-i486-linux.so debian/xbmc/usr/lib/xbmc/addons/visualization.waveform/Waveform.vis debian/xbmc/usr/lib/xbmc/addons/screensaver.rsxs.euphoria/Euphoria.xbs debian/xbmc/usr/lib/xbmc/addons/screensaver.rsxs.solarwinds/Solarwinds.xbs debian/xbmc/usr/lib/xbmc/xbmc-xrandr returned exit code 2
make: *** [override_dh_shlibdeps] Ошибка 2
root@debian:/home/alex/a/vdr/xbmc-build#
[свернуть]
такое впечатление что сырцы заточены явно не под дебиан.
Русские дебианщики против цифрового слабоумия !

Malaheenee

ferum, как собираете? В идеале, нужно собирать на чистой системе без всяких проприетарных драйверов.
Во-вторых, прочтите ридми и посмотрите опцию для отключения поддержки визуализации при сборке.
Все мы где-то, когда-то и в чем-то были новичками.

ferum

Веду диалог с разработчиком скрипта, который заточил его под Ubuntu 12.10 но по знаниям между нами пропасть. Он мне написал:
Ну так у вас все собралось. Упало на dh_shlibdeps - вычисление зависимостей для deb пакета. Попробуйте подредактировать скрипт и пропишите все нерезолвленные через -X.
Легко сказать...
В принципе мне достаточно выполнить make install но мне нужны deb пакеты, так как та система поставлена конкретно для компиляции и в проекте я хочу строить чистенькую систему под себя с удобным для меня окружением и надеюсь уже на другой машине.
Русские дебианщики против цифрового слабоумия !