Уже который раз сталкиваюсь при установке UniMRCP с проблемами при наличии установленных в системе пакетов библиотеки libapr. Проблема заключается в том, что UniMRCP для своей работы использует чётко определенные версии библиотек, а в системе часто используются старые версии, в которых не содержатся необходимые функции. При этом если даже unimrcp собран с прямым указанием места расположения нужных версий библиотек, то при запуске возникнет проблема:
./unimrcpserver: symbol lookup error: /usr/local/unimrcp/lib/libunimrcpserver.so.0: undefined symbol: apr_pool_mutex_set
Для того чтобы таких проблем не возникло, прийдётся приложить некоторые усилия:
1. Скачиваем библиотеки нужных версий, файл с именем вроде unimrcp-deps-x.x.x.tar.gz, где иксы — версия библиотеки unimrcp. Все библиотеки собираются и устанавливаются простым запуском ./install.sh
2. При запуске ./configure указываем точное местоположение библиотек
./configure --with-sofia-sip=/usr/src/asr-tts/unimrcp-deps-1.0.0/libs/sofia-sip --with-apr=/usr/src/asr-tts/unimrcp-deps-1.0.0/libs/apr --with-apr-util=/usr/src/asr-tts/unimrcp-deps-1.0.0/libs/apr-util
3. После установки библиотеки, приложению использующие библиотеки libunimrcpserver.so или libunimrcpclient.so нужно явно указать где в первую очередь производить поиск библиотек. Для этого нужно установить переменную LD_LIBRARY_PATH. Скрипт для запуска в консоли mrcp сервера выглядит следующим образом:
#!/bin/sh
CLIARGS="$*"
export LD_LIBRARY_PATH=/usr/local/apr/lib/
/usr/local/unimrcp/bin/unimrcpserver ${CLIARGS}
4. Для запуска приложения в качестве демона можно использовать штатный скрипт, нужно изменить переменную APP_NAME на название shell-скрипта, приведенного выше и расположить этот скрипт в /usr/local/unimrcp/bin
Hope this helps someone. Удачи и до скорых встреч.