Вновь возникла нужда провести морфологический анализ больших объёмов текста на русском языке. Домашний компьютер загружать обработкой данных нехотелось, поэтому было решено всё это дело прогнать на сервере. Набросал скрипт, скачал mystem для FreeBSD и начал тестировать. Сразу же получил пустую строку. Перепроверил всё, вставил костыли, но всёравно результатом выдавалась пустая строка. Много времени провёл в переписывании скрипта в разных вариациях, но всё безуспешно. Тогда было решено посмотреть что выдаёт mystem напрямую, то есть в консоли. И тут-то ошибка и объявила себя.
/usr/libexec/ld-elf.so.1: Shared object «libz.so.2″ not found, required by «mystem»
Начал поиски пострадавших от подобных заявлений. Нашлись только похожие и нерешённые проблемы и намёки без плана действия. Все примеры комманд не давали никакого результата. Тогда решил разбираться сам.
Для начала решил выяснить версию своей FreeBSD. В SSH ввёл команду uname -sr и получил FreeBSD 6.3-STABLE. Отлично, круг поиска сужается! Далее набрёл на совет, и посмотрел каких же библиотек mystem не хватает. Перешёл в папку с программой и ввёл ldd ./mystem, и был отшокирован результатом:
./mystem:
libz.so.2 => not found (0×0)
libstdc++.so.3 => not found (0×0)
libm.so.2 => not found (0×0)
libc.so.4 => not found (0×0)
Другими словами, ниодной из необходимых для работы библиотек сервер не имел. Тут я мысленно передал привет хостеру и отправился на дальнейшие поиски. И тут первая же ссылка дала мне такие команды:
cd /usr/ports/misc/compat4x && make install;
cd /usr/ports/misc/compat5x && make install;
Через несколько минут библиотеки установились и ldd ./mystem гордо выдала мне:
./mystem:
libz.so.2 => /usr/local/lib/compat/libz.so.2 (0×28527000)
libstdc++.so.3 => /usr/local/lib/compat/libstdc++.so.3 (0×28537000)
libm.so.2 => /usr/local/lib/compat/libm.so.2 (0×2857c000)
libc.so.4 => /usr/local/lib/compat/libc.so.4 (0×28597000)
Ни секунды не медля, запустил свой скрипт, и, о чудо, уведел нужный мне результат. Далее решил написать эту пошаговую инструкцию, наверняка пригодится. Надеюсь сэкономлю читателям нервы и несколько часов времени.
P.S. Так же необходимо выставить для mystem права на исполнение! Иначе работать не будет.
Ага, пригодилось, сенк!
Спасибо большое, мне тоже пригодилось!
А где я могу взять библиотеки?
Спасибо, помогло