/*****************************************************************************/ Как инсталлировать программу "Правда". /*****************************************************************************/ Я, конечно понимаю, что лучше когда программа "сама ставится". Но для этого надо компьютеру как-то обьяснить что и как ставить, и что делать если возникла непредвиденная ситуация. Ну, "как ставить", я еще могу написать, на каком-нибудь скриптовом языке. А вот с непредвиденными ситуациями, пока еще лучше справляется люди с их "ественным интеллектом". По этому - читайте маны, и делайте все руками. Я пишу этот файл в июле 2004 года. Сейчас основным сайтом, с которого я раздаю программу "Правда" является: http://www.prawda.newmail.ru/ Оттуда можно взять: prawda-0.3.0-dev.i386.rpm - rpm для Red Hat prawda-0.3.0-dev.src.rpm - rpm с исходникам prawda-0.3.0-dev.tar.bz2 - архив с исходникам prawda-0.3.0-cpp.tar.bz2 - архив только с сишниками prawda-0.3.0-doc.tar.bz2 - архив только с документацией // ------------------------------------------------------------------- Что должно быть на Вашей машине для работы "Правды". // ------------------------------------------------------------------- 0) Какой-нибудь Юникс (у меня Red Hat 7.1, но были орлы, которые водружали "Правду", например, на Альфу и Digital UNIX) 1) компилятор языка С++ (желательно gcc, но пойдет любой другой) 2) архиватор bzip2 и bunzip2 3) (девелоперская) библиотека ncurces (вроде версия неважна) 4) (девелоперская) библиотека X11 (вроде версия неважна) 5) русские шрифты (хотя бы один) в кодировке koi8 // ------------------------------------------------------------------- Как установить // ------------------------------------------------------------------- Сейчас будет как у Задорнова - "Что и это не помогает?!!!". 0) Если у Вас стояла предыдущая версия "Правды" - удалите ее. (Умные люди не удаляют, а "прячут".) Удалить надо следующее: 0.1) ~/.prawdarc - файл настоек 0.2) ~/prawda (или куда Вы его там ставили) - каталог словарей и других данных. 0.3) деинсталировать rpm 1) Если у Вас не Red Hat, то переходите к пункту 3. Если у Вас Red Hat, или что-то ему подобное, скачиваете rpm и ставите его командой: rpm -i prawda-0.3.0-dev.i386.rpm 2) Программа, конечно, поставится, но на некоторых машинах при запуске сразу же получается SegFault. Это происходит из-за несоответствия версий libc. Грамотно исправить эту ситуацию я не могу, а неграмотно - можно пересобрать exe-шники на Вашей машине. Для этого случая я держу отдельный архив только с cишниками. Делается это так: 2.1) Скачиваете prawda-0.3.0-src.tar.bz2 2.2) Разворачиваете bunzip2 prawda-0.3.0.src.tar.bz2 tar xvf prawda-0.3.0.src.tar 2.3) делаете make -f makefile.exe. Получите массу исполняемых файлов. 2.4) Получившиеся файлы prawda и prawda_x кладите в каталог /usr/bin (остальные Вам не нужны) Должно заработать. 3) Если у Вас не Red Hat, скачиваете prawda-0.3.0.tar.bz2 3.1) разворачиваете: bunzip2 prawda-0.3.0.tar.bz2 tar xvf prawda-0.3.0.tar 3.2) собираете: make Если не собралось, читаете следующую секцию. 3.3) ставите: make install Должно заработать. // ------------------------------------------------------------------- Как скомпилировать // ------------------------------------------------------------------- В принципе достаточно дать команду make в каталоге bin. По этой команде должно произойти следующее: 1) сделаться все исполняемые модули 2) разархивироваться все словари 3) оттранслироваться файл описания грамматики 4) сформироваться документация на С++ исходники, и описание грамматики Если у Вас не получились экзешники, то это может быть по одной из следующих причин: 1) Я не делаю automake и autoconf (не умею). По этому мой makefile настроен исключительно на Red Hat 7.1. Если у Вас другая верия Юникса, другой компилятор, или библиотеки ncurces и X11 лежат в другом месте, Вам придется залезть в файл makefile.exe и поправить там переменные COMP, LINK и LDFLAGS. 2) У меня довольно древний gcc - 2.96. Новые версии компилятора значительно строже, многие шалости, которые раньше были Warning-ами стали Error-ами. Если у Вас возникла ошибка на этапе компиляции, пишите мне, больше тут ничего не придумаешь. // ------------------------------------------------------------------- Параметры конфигурационного файла // ------------------------------------------------------------------- При первом запуске "Правда" пишет в Ваш домашний каталог настроечный файл .prawdarc (обратите внимание на точку перед именем). Там хранятся настроечные параметры программы: path - каталог, в котором находятся все данные (грамматика и словари) size_x,size_y - размеры окна программы в буквах (действительны только для Х-версии) font - шрифт, который использует иксовая версия "Правды" RTFM - если этот параметр равен Yes, то программа при старте дает полезный совет Figna - если этот параметр равен Yes, то при неполном переводе фразы пишется слово #фигня. Этот режим нужен для отладки. rus - включить внутренний руссификатор. На некоторых машинах моя программа почему-то отказывается понимать русскую клавиатуру. // ------------------------------------------------------------------- Что еще надо настроить // ------------------------------------------------------------------- Поскольку "Правда" работает с русским языком, надо присвоить переменной окружения LANG значение, соответсвующее русскому языку. У меня LANG = ru_RU.koi8r. Кроме того на вашей машине должен бять хотя бы один русский шрифт в кодировке koi8r. Если Вы работаете с терминальной версией, надо задать русский шрифт для терминала. Я это делаю вот так: xterm -fn -cronyx-fixed-medium-r-semicondensed--13-120-75-75-c-60-koi8-r Это мой любимый шрифт. Вы можете использовать любой другой. Если Вы работаете с иксовой версией, задайте значение переменной font в файле ~/.prawdarc. Ну и это... когда будете шрифт выбирать, выбирайте моноширинный (фиксированный) шрифт, иначе выглядеть оно будет как... бред пьяного сисадмина. // ------------------------------------------------------------------- Какие файлы для чего // ------------------------------------------------------------------- Настроечные файлы version - версия данных (должна соответствовать версии программы) language.rc - языки, с которых возможен перевод z_preproc.rc - перечисление имеющихся препроцессоров (можно удалить, толку от них никакого) z_man.rc - настройки препроцессора для UNIX-манов Исходники src - всякие С++ исходники src/face - исходники отвечающие за интерфейс src/trans - исходники отвечающие за ядро перевода src/utils - исходники различных утилит, нужных для работы над переводчиком Грамматика grammar - исходники грамматики grammar/english_russian - алгоритм англо-русского перевода grammar/esperanto_russkij - алгоритм Эсперанто-русского перевода В каждом этом каталоге файлы *.cpp *.h являются исходными. lang.txt - описание алгоритма перевода с английского (Эсперанто) на русский. Этот файл получается из исходников грамматики командой mklang (лежит в каталоге grammar). Словари dicts - словари grammar/english_russian - словари для англо-русского перевода base_enru - основной словарь переводов base_enru1 - словарь служебных слов base_fverb - словарь фразовых глаголов base_pre - словарь препроцессора base_post - словарь постпроцессора muller - словарь "для человека" grammar/esperanto_russkij - словари для эсперанто-русского перевода base_enru - основной словарь переводов base_enru1 - словарь служебных слов bokarev - словарь "для человека" zform - словари, описывающие склонения и спряжения english - английские словари словоизменений esperanto - Эсперантские словари словоизменений russkij - русские словари словоизменений Прочее doc - документация html_grammar - исходнки грамматики, в виде html-файлов с гиперссылками. Эти замечательные и удобные файлы делаются программий zmkdoc. Если Вы будете редактировать описание граматики, то командой zgrammardoc можно будет получить такой удобный гипертекст, в котором относительно хорошо видно, что Вы там накуролесили. html_src - мои "гениальные" С-шники, в виде html-файлов с гиперссылками. Кхм... предупреждаю, что эти html-ки соответствуют "Правде" v. 0.2.0 То есть несколько устарели. help - онлайн-подсказка. Содержимое этих файлов показывается, когда вы нажимаете кнопку F1. Тонкий юмор заключается в том, это настоящий html и Вы его можете еще и браузером смотреть, если вам это удобно. latex - Сумма всех моих мыслей, относительно машинного перевода, описание того, как это делалось, как это работает и как это можно улучшать и развивать. idea.ps - основная идея алгоритма машинного перевода, которую использует "Правда". lang.ps - язык описания грамматики. "Правда" - предельно гибкая система, и ее можно "программировать" не будучи программистом. Вплоть до того, что можно научить понимать ее другой язык (например немецкий). grammar.ps - описание грамматики (по сути, алгоритма перевода с английского на русский). esperanto.ps - описание алгоритма перевода с Эсперанто на русский. source.ps - описание описание моих замечательных исходников (вдруг кому-то захочется баги править). interface.ps - мои взгляды, на то, каким должен быть интерфейс программы-переводчика. Своего рода ЧаВо на вопросы, которые мне задают желающие присоединиться к проекту. other(readme) - вся остальная документация, которая не влезла в остальные разделы. src/bin - make-файлы и исполняемые программы makefile - общий маке-файл makefile.exe - маке-файл, делающий исполняемые модули (вызывается из общего маке-файла) makefile.doc - маке-файл, делающий документацию (вызывается из общего маке-файла) Исполняемые модули (делаются при компиляции): prawda - терминальная версия переводчика prawda_x - X-овая версия переводчика Эти программы могут быть, а могут не быть (они нужны только разработчикам): zcompress2 - мой доморощенный сжиматель словарей zerolink - программа, тестирующая описание грамматики, которая обнаруживает неиспользуемые конструкции zfrasa_verb - программа, разжимающая словарь фразовых глаголов zgrammardoc - программа, делающая гипертекстовое описание грамматики zkod - кодировка win->koi->dos zmkdoc - программа, делающая гипертекстовое описание сишников ztest - программа, тестирующая описание грамматики на корректность синтаксиса zword_absend - программа, обнаруживающая в главном словаре слова, которым не заданы способы склонения и спряжения. obj - обьектные файлы (в первоначальный момет этот каталог пуст) // ------------------------------------------------------------------- Как удалить // ------------------------------------------------------------------- Если Вы ставили программу из rpm, то просто удалите rpm. Если Вы ставили программу из makefile, то я поленился написать соответсвующий скрипт. Поминаете меня недобрым словом, потом удаляете следующие файлы и каталоги: /usr/bin/prawda /usr/bin/prawda_x /usr/share/prawda /usr/doc/prawda ~/prawdarc (для каждого пользователя) ~/prawda (для каждого пользователя)