Страница 1 из 1

Создание DEB-пакетов Asterisk

Добавлено: 22 июл 2021, 15:11
Kroteg
Для чего это - это уже отдельный разговор.
С выходом версии 16.19.0 решил пересобрать пакет и вспомнить старую тему с целью обмена опытом и разбором возможных ошибок.
Через сбор пакетов с помощью dh-make и debhelper у меня ничего не получилось, хотя попался очень интересный репозиторий на гитхабе https://github.com/ossobv/asterisk-deb - репозиторий старый, но рабочий (16.18.2 собирал) - создает несколько пакетов: базовый, модули, конфиги, без конфигов и тп (описание можно глянуть в файле).
Мне это показалось избыточным, но единым пакетом собирать через dh-make и debhelper не получалось. Потом подсказали через checkinstall.
Через него прекрасно собирается пакет, хотя встречал мнение что его возможности сильно урезаны по сравнению с настройками вышеуказанных утилит (пред и пост установочные и удаляемые скрипты и прочие скрипты).
Там всё просто:

Код: Выделить всё

cd /usr/src
tar https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16.19.0.tar.gz
tar xzf asterisk-16.19.0.tar.gz
cd asterisk-16.19.0
./configure
make menuselect
checkinstall
При этом утилита предложит задать свою информацию, я указывал (поправьте если что не так):
0 - Maintainer: [ Dmitriy Q <dmitry@.....> ]
1 - Summary: [ Open Source Private Branch Exchange (PBX)
Asterisk is an Open Source PBX and telephony toolkit. It is, in a
sense, middleware between Internet and telephony channels on the bottom,
and Internet and telephony applications at the top.
.
Asterisk can be used with Voice over IP (SIP, H.323, IAX and more) standards,
or the Public Switched Telephone Network (PSTN) through supported hardware.
2 - Name: [ asterisk ]
3 - Version: [ 16.19.0 ]
4 - Release: [ atsip18 ]
5 - License: [ GPL ]
6 - Group: [ comm ]
7 - Architecture: [ amd64 ]
8 - Source location: [ asterisk-16.19.0 ]
9 - Alternate source location: [ ]
10 - Requires: [ adduser, libc6, libcap2, libedit2, libgcc1, libjansson4, libpopt0, libsqlite3-0, libssl1.1, libsystemd0, liburiparser1, libuuid1, libxml2, libxslt1.1, lsb-base ]
11 - Provides: [ asterisk ]
12 - Conflicts: [ libspeex1 ]
13 - Replaces: [ ]
После этого по другой инструкции разбирал пакет

Код: Выделить всё

dpkg-deb -x asterisk_16.19.0-atsip18_amd64.deb asterisk_16.19.0/
добавлял свои конфиги и скрипты (выложил для удобства на GitHub), описание из пакета

Код: Выделить всё

dpkg-deb -e ../asterisk_16.19.0-atsip18_amd64.deb ./DEBIAN
малость правил файл DEBIAN/control (изменял версию). ПОтом по инструкции добавлял мд5 сумму для новых файлов (хотя так подозреваю не требуется) и собирал новый пакет:

Код: Выделить всё

dpkg-deb -b ../asterisk_16.19.0 ../asterisk_16.19.0-atsip19_amd64.deb 
Ну и остался вопрос по зависимостям - какие нужны именно при сборке, а какие для работы Asterisk?
Из скрипта install_prereq собрал список, но не уверен что все нужны для работы:
build-essential pkg-config libedit-dev libjansson-dev libsqlite3-dev uuid-dev libxml2-dev libspeex-dev libspeexdsp-dev libogg-dev libvorbis-dev libasound2-dev portaudio19-dev libcurl4-openssl-dev xmlstarlet bison flex libpq-dev unixodbc-dev libneon27-dev libgmime-2.6-dev libgmime-3.0-dev liblua5.2-dev liburiparser-dev libxslt1-dev libssl-dev libvpb-dev libmysqlclient-dev libbluetooth-dev libradcli-dev freetds-dev libosptk-dev libjack-jackd2-dev bash libcap-dev libsnmp-dev libiksemel-dev libcorosync-common-dev libcpg-dev libcfg-dev libnewt-dev libpopt-dev libical-dev libspandsp-dev libresample1-dev libc-client2007e-dev binutils-dev libsrtp0-dev libsrtp2-dev libgsm1-dev doxygen graphviz zlib1g-dev libldap2-dev libcodec2-dev libfftw3-dev libsndfile1-dev libunbound-dev wget subversion bzip2 patch
Ну, пиннайте, ругайте что и как было бы лучше сделать))

Re: Создание DEB-пакетов Asterisk

Добавлено: 30 авг 2021, 01:56
AndyBack
А есть у кого опыт создания бинарных deb пакетов со всеми зависимостями, необходимыми для работы? Чтобы не таскать на сервер инфраструктуру нужную для сборки.

Re: Создание DEB-пакетов Asterisk

Добавлено: 30 авг 2021, 11:32
ded

Re: Создание DEB-пакетов Asterisk

Добавлено: 08 авг 2023, 11:10
Kroteg
Зависимости для сборки:

Код: Выделить всё

autoconf automake binutils-dev dahdi-source debhelper-compat (= 13) default-libmysqlclient-dev freetds-dev libasound2-dev libavcodec-dev libavdevice-dev libbluetooth-dev [linux-any] libc-client2007e-dev libcap-dev [linux-any] libcodec2-dev libcurl4-openssl-dev libedit-dev libfftw3-dev libgmime-3.0-dev libgsm1-dev libical-dev libiksemel-dev libjack-dev libjansson-dev libldap-dev liblua5.2-dev libncurses-dev libneon27-dev libnewt-dev libogg-dev libopencore-amrnb-dev libopencore-amrwb-dev libopenr2-dev [linux-any] libopus-dev libopusfile-dev libpopt-dev libpq-dev libpri-dev libradcli-dev libreadline-dev libresample1-dev libsdl-image1.2-dev libsndfile1-dev libsnmp-dev libspandsp-dev libspeex-dev libspeexdsp-dev libsqlite3-dev libsrtp2-dev libss7-dev libssl-dev libswscale-dev libsystemd-dev [linux-any] libtonezone-dev [linux-any] libunbound-dev liburiparser-dev libvo-amrwbenc-dev libvorbis-dev libxml2-dev libxslt1-dev perl portaudio19-dev unixodbc-dev uuid-dev zlib1g-dev

Re: Создание DEB-пакетов Asterisk

Добавлено: 06 дек 2024, 23:22
AndyBack
Смысл не в том чтобы перечислять зависимости для сборки, а чтобы собрав на своем компе и получив deb-пакет, можно было его инсталлировать на другой комп и он сам доустановил все нужные бинарные пакеты. Короче, чтобы собрав бинарники, таскать только бинарники. Без всего окружения. И чтобы все необходимое доустанавливалось автоматически.

Re: Создание DEB-пакетов Asterisk

Добавлено: 13 дек 2024, 14:01
Kroteg
Зависимости для работы:

Код: Выделить всё

adduser init-system-helpers libc6 libcap2 libcrypt1 libedit2 libjansson4 libpopt0 libsqlite3-0 libssl3t64 libsystemd0 liburiparser1 libuuid1 libxml2 libxslt1.1