Собираем Asterisk для macOS Sierra


i-sat аватар

i-sat - Posted on 04 Июль 2017

Это обновление, точнее продолжение опубликованного ранее, совета, но уже и для macOS Sierra.

Началось с того, что после посещения официального сайта решил обновить Asterisk (про его установку как раз предыдущая статья), ибо, на всё том же Apple Mac-mini 2010 с OS X Yosemite, всё так же работал Asterisk PBX версии 13.6.0, однако, если обновить ОС руки пока не доходили, тем более что апдейты на OS X Yosemite всё ещё регулярно выходили, то на обновление Asterisk PBX созрел.

Кому интересно, читайте далее...

Как ни странно, но обновление самого Asterisk с 13.6.0 до 13.16.0 на OS X Yosemite прошли без особых шаманских танцев описанных в предыдущей статье.

То есть мне просто было достаточно загрузить с официального сайта исходники и контрольную сумму архива исходников

Проверяем целостность архива (должна совпадать с рассчитанной в asterisk-13.16.0.sha256)

$ shasum -a 256 asterisk-13.16.0.tar.gz

Разворачиваем архив:

$ tar -zxf asterisk-13.16.0.tar.gz

Переходим в исходники. ВНИМАНИЕ далее все команды выполняются от этой локации!

$ cd /usr/local/src/asterisk-13.16.0

Аналогично предыдущей статье конфигурируем Makefile (правда, каюсь, добавил PostgreSQL в нём варится realtime)

$ ./configure --without-netsnmp --with-postgres=/Library/PostgreSQL/9.4/

Добавлять в заготовочные файлы инфо о типах HAVE_HTONLL и HAVE_NTOHLL не пришлось

Подгрузим поддержку mp3 с помощью

$ ./contrib/scripts/get_mp3_source.sh

Сконфигурил в menuselect добавление дополнительных звуковых файлов и добавил поддержку mp3

$ make menuselect

собираем нормально, то есть не потребовалось как ранее NOISY_BUILD=1

$ make

устанавливаем

$ make install

Примеры конфигов я не пересоздавал, этот шаг пропустил, так как у меня была настроенная и рабочая PBX, но кто ставит первый раз, то можно создать

$ make sample

Всё бы вроде ничего, всё завертелось, закрутилось, но тут через какое-то время всё же решился обновить ОС, то есть перейти на macOS Sierra (само обновление ОС ничего особенного за собой не несёт, поэтому выношу это за скобки данного описания).

Как ни странно, после обновления macOS, Asterisk PBX продолжал работать без проблем, но тут я решил пересобрать PBX и началось...
В процессе конфигурации сыпались ошибки и строка уже разрослась до умопомрачительной:

$ LDFLAGS="-L/usr/local/lib -L/usr/lib" CFLAGS="-I/usr/local/include -I/usr/include" CPPFLAGS="-I/usr/local/include -I/usr/include" ./configure --without-netsnmp --with-postgres=/Library/PostgreSQL/9.4/ --prefix=/usr/local/ --includedir=/usr/local/include/ --libdir=/usr/local/lib/ --with-jansson=/usr/local/

Начало конфигуриться нормально, но после menuselect и на запуске make вываливало следующую ошибку:

...
кусок лога
...
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: libdb1.a(bt_debug.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: libdb1.a(bt_debug.o) has no symbols
   [LD] astdb2sqlite3.o db1-ast/libdb1.a -> astdb2sqlite3
   [CC] astdb2bdb.c -> astdb2bdb.o
   [LD] astdb2bdb.o db1-ast/libdb1.a -> astdb2bdb
   [CC] chan_bridge_media.c -> chan_bridge_media.o
   [LD] chan_bridge_media.o -> chan_bridge_media.so
clang: [red]error:[/red] no such file or directory: '/usr/lib/bundle1.o'
make[1]: *** [chan_bridge_media.so] Error 1
make: *** [channels] Error 2

Тут я упёрся и очень долго искал решение, но спустя пару дней случайно наткнулся на простой совет! Как я сам-то не додумался, что кроме обновления ОС и Xcode, надо нормально обновить и CLT!!!

Цитата:

Common problems

Compilation fails with error: /usr/lib/bundle1.o: No such file or directory

This happens when you try to build Asterisk without the XCode CLT installed. This also affects how GCC is built, so you will also want to reinstall GCC. The good news is that with the CLT installed, GCC should install via bottle, which is tons faster than building it from source.

$ xcode-select --install
xcode-select: note: install requested for command line developer tools

В общем после обновления command line tools для Xcode всё начало конфигурироваться и собираться без танцев с бубном

Подготовим к сборке результат

$ ./configure --without-netsnmp --with-postgres=/Library/PostgreSQL/9.4/

Подгрузим поддержку mp3 с помощью

$ ./contrib/scripts/get_mp3_source.sh

Сконфигурил menuselect

$ make menuselect

Наконец таки собираем и лог результата сборки

$ make

Завершаем процесс установкой

$ make install

Всем удачи! И сборок без заморочек!

0
Ваша оценка: Ничего

Отправить комментарий

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.