- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF70:Beagle
Материал из Linuxformat.
Эта ищейка найдет документы и письма, которые, как вам казалось, уже навсегда потеряны: но сможет ли beagle стать новым лучшим другом человека? Давайте посмотрим вместе с Грэхемом Моррисоном.
Содержание |
Beagle, наряду с другими настольными поисковыми инструментами, рассматривается как нечто из разряда компьютерных революций. В ее основе лежит простая идея: введите несколько слов или фраз в окне поиска, и Beagle раскроет их в список ссылок, содержащих указанные термины. иногда эти ссылки указывают на простые файлы, но интеллект системы проявляется в том, что здесь с тем же успехом может оказаться переписка, сообщения электронной почты, изображения, музыкальные файлы, каждый из которых размещается где-то в вашей домашней директори
Это похоже на то, как работает сервис Google Gmail. Он предлагает гигабайты дискового пространства, и приучает вас никогда не удалять отдельные письма. а как, по-вашему, организованы все эти данные? Ну, Google предпочитает просто оставлять все как есть. Сила Gmail заключается в использовании устрашающих поисковых алгоритмов Google, чтобы моментально предоставить вам список электронных сообщений, соответствующих вашим критериям поиска. Например, вы можете захотеть проверить некоторый онлайновый заказ: просто введите «компакт-диск» и «Бритни Спирс» в форме поиска, и все письма, соответствующие этому запросу, будут сразу же отображены в списке. Это и есть тот тип интеграции, который Beagle стремится принести на ваш рабочий стол.
Но Beagle имеет одно преимущество перед Gmail: он обрабатывает не просто вашу почту, а целый набор Gnome-приложений, включая документы OpenOffice.org, файлы в формате PDF, HTML, наиболее распространенные графические и звуковые форматы, мгновенные сообщения Gaim и многое, многое другое. Когда вы привыкнете пользоваться Beagle, просмотр обширных иерархий папок в поисках одного-единственного файла начнет казаться вам слишком трудоемким и устаревшим методом. Чтобы подробнее ознакомиться с технологией и историей разработки, посетите домашнюю страницу проекта Beagle: http://beaglewiki.org/main_page.
Как уже упоминалось в 67-ом выпуске LinuxFormat, в обзоре Mandriva Linux Limited Edition 2005, мы были встревожены тем, что не обнаружили Beagle в обширном списке пакетов. Очевидно, разработчики Mandriva слишком заняты, чтобы включать в дистрибутив такие своенравные пакеты, как Beagle, так что мы решили описать каждый шаг установки Beagle в системе Mandriva. Если вы используете другой дистрибутив, многие стадии будут сходными — просто замените менеджер пакетов Mandriva на тот, который имеется в вашем дистрибутиве, и все должно заработать.
Основная трудность настройки Beagle заключается в несколько причудливом способе именования, принятом в Mandriva и в проблемах зависимостей. инсталляция Beagle — не для слабых сердцем: она может оказаться достаточно стрессовой. Требуется удовлетворить дюжину зависимостей, требований совместимости со стороны ядра и вручную установить некоторые большие приложения. Сказав все это, мы постараемся исключить большинство трудных моментов и проведем вас за руку по всем шагам, так что от вас не потребуется каких-либо специальных знаний. Только держитесь подальше от пустошей и остерегайтесь луны!
Этап 1 — низкоуровневая конфигурация
Beagle активно следит за изменениями в вашей файловой системе. Можно было бы ожидать, что он поглотит значительную часть ресурсов, но этого не происходит, потому что Beagle использует систему мониторинга событий уровня ядра, называемую Inotify. Она включена в большинство современных ядер, но проблема заключается в том, что Beagle требует для своей работы специальную версию Inotify. Поскольку мы будем ставить Beagle версии 0.0.11.1, выпущенную 15 июня, нам понадобится ядро, содержащее Inotify версии 0.23. Более ранние версии Beagle требуют более ранних версий Inotify. Сборка своего собственного ядра — сложная операция, так что намного проще загрузить уже скомпилированное и любезно подготовленное для Mandriva ядро как пакет. Ядро, которое нас интересует, называется kernel-multimedia-2.6.11-9.mm, и вы можете найти него в Сети, введя имя в форме поиска на http://rpm.pbone.net. Как только вы получите файл, установите его, набрав в консоли следующую команду от имени суперпользователя root:
urpmi kernel-multimedia-2.6.11-9.mm.4mdk-1-1mdk.i586.rpm
Urpmi внесет изменения в ваше загрузочное меню, что позволит вам выбрать вновь установленное ядро во время следующей загрузки. Также должна добавиться необходимая для активации Inotify опция, что можно проверить, поискав inotify=o в соответствующей строке «append» файла /etc/lilo.conf. Простая перезагрузка с этим ядром обеспечит работу системы Inotify, которая создаст файл устройства, размещенный в /dev/inotify.
Секретные файлы
Следующий кирпичик низкоуровневой конфигурации, на который опирается Beagle — поддержка расширенных атрибутов в вашей локальной файловой системе. Расширенные атрибуты — это хороший способ присоединить некоторую информацию к файлу внутри самой файловой системы, а не хранить ее во внешней базе данных или ином файле. Информацией может быть что-то обычное, например, тип файла или время последнего доступа к нему. Beagle использует расширенные атрибуты для отслеживания файлов и их содержимого. Большинство современных файловых систем, за исключением Reiser4 и NFS, поддерживают расширенные атрибуты. В Reiser4 применяется собственный интерфейс к расширенным атрибутам, в то время как NFS их вообще не имеет, так что пока обе они пока не подходят для пользователей Beagle.
Чтобы включить расширенные атрибуты, вам нужно просто добавить ключ user_xattr для дисковых разделов в вашем файле /etc/fstab. Поскольку Beagle предполагает запуск от имени непривилегированного пользователя, то в действительности вам нужно установить этот ключ только для раздела, где размещен ваш домашний каталог. В другой стороны, если вы используете один раздел, то просто установите этот ключ для корневого раздела /. Соответствующая строка для вашего раздела в /etc/fstab может выглядеть таким образом:
/dev/hda7 /home ext3 noatime,user_xattr 1 2
Вы можете быстро перемонтировать соответствующий раздел без перезагрузки вашей машины с помощью следующей команды:
mount -o remount /home
Ад зависимостей
Преимущества установки вручную очевидны: вы работаете с последней версией и получаете больший контроль над тем, как Beagle работает на вашей системе. Обратная сторона медали состоит в том, что пройдет много времени, прежде чем все заработает. Mandriva предлагает компромисс за счет использования ее Contribution repository – это позволяет вам устанавливать все сразу одной командой.
‘Contribs’, как его ласково называют - это хранилище пакетов, которые не вошли в последний релиз. Они обычно не так стабильны, как их собратья на диске, и установка программ из этого репозитария может подорвать надежность вашей системы. Зато вы можете поиграть с некоторыми авангардными приложениями из мира Linux, и Beagle – одно из них.
Простейший путь установить Contribs – это использование сайта easyuRPMI (http://easyurpmi.zarb.org), который настраивает различные хранилища, доступные пользователям Mandriva.
Чтобы добавить репозитарий Contributions, сперва убедитесь, что ваша система была выбрана автоматически (она будет обозначена как «2005» для «2005 LE»). Затем вам необходимо выбрать локальный сервер для Contribs в секции Core Distribution, после чего вы просто щелкаете на кнопку Process to Step 3, и соответствующая команда urpmi будет сгенерирована автоматически. Ее нужно вставить в командную строку и исполнить от имени root.
После того как urpmi завершит загрузку списка пакетов с сервера, установка Beagle будет очень простой:
urpmi beagle
Следующий шаг — инсталляция пакетов Mandriva, от которых зависит Beagle. Вы можете установить их с помощью утилиты rpmdrake или используя urpmi в командной оболочке, войдя в систему как root. Прежде чем углубляться в отдельные пакеты, сначала убедитесь, что у вас установлены все пакеты из набора Gnome Workstation. Вы можете сделать это в Control Center системы Mandriva, загрузив компонент Software Management, перейдя к Look At Installable Software Packages и выбрав Gnome Workstation. Щелчок по кнопке Install начнет длительный процесс установки десятков файлов, которые вам нужны. Ниже приведен список специфических зависимостей. Каждый из этих пакетов должен быть установлен, и автоматически потянет за собой множество других связанных с ним пакетов, в зависимости от конфигурации вашей системы. установите их из Control Center, или из командной строки с помощью urpmi.
- bison
- libglib2.0_0-devel
- gcc-c++
- libxml2-devel
- libexif12-devel
- libwv-1.0_2-devel
- gnome-vfs-devel
- mozilla-firefox-devel
- libxorg-x11-devel
- libpango1.0_0-devel
- libgtk+2.0_0-devel
- libsqlite0-devel
- libgnome-vfs2_0-devel
- libgnomecanvas2_0-devel
- libgnomeui2_0-devel
- libgnomeprintui2-2_0-devel
- gtkhtml-devel
Этап 2 — крутимся сами
Мы использовали готовые пакеты Mandriva, какие только могли, но остались еще пять, которые нужно скачать, скомпилировать и установить:
- mono 1.0.6 или более новая реализация Microsoft .Net Framework от Novell. http://mono-project.com
- gtk-sharp 1.0.x набор привязок GTK GUI .NET. http://mono-project.com/Downloads
- gecko-sharp 0.6 «Обертка», делающая «движок» Mozilla доступным для приложений GTK#. http://www.go-mono.com/packagers/gecko-sharp/gecko-sharp-0.6.tar.gz
- gmime-2.1.13 синтаксический анализатор mime-сообщений, необходимый для чтения вашей почты. http://spruce.sourceforge.net/gmime
- beagle-0.0.11.1 звезда нашего шоу. http://ftp.gnome.org/pub/GNOMe/sources/beagle/0.0/
Самое крупное приложение из этих пяти, – это Mono. Оно отнимает больше всего времени, так что хорошо бы с него и начать.
Файл объемом около 15Мб может быть легко загружен с сайта http://go-mono.com или получен с помощью следующей команды:
wget http://go-mono.com/sources/mono-1.1/mono-1.1.8.tar.gz
Компиляция Mono обычно проходит легко, разве что требует некоторого времени. Прежде всего, нам нужно распаковать скачанный архив, запустить сценарий конфигурации, чтобы сборка была оптимизирована под вашу систему, и, наконец, дать команду make, которая должна собрать приложение. Компиляция займет примерно 30 минут на современной машине – этого времени как раз достаточно, чтобы профильтровать воду, перемолоть немного кофе и сделать освежающий напиток.
В наших примерах мы всегда передаем префикс /usr сценарию конфигурации, поскольку Mandriva использует именно это местоположение. Вам может потребоваться изменить его, чтобы соответствовать файловой системе вашего дистрибутива.
tar xvzf mono-1.1.8.tar.gz cd mono-1.1.8 ./configure --prefix=/usr make sudo make install
Mono обеспечивает платформу разработки для Beagle. Другие компоненты, которые вам придется установить, обеспечивают расширение возможностей платформы .Net, которую предоставляет нам Mono. Первый пакет из тех, что нам потребуются – gtk-sharp-1.0, который используется в основном для графического интерфейса пользователя. Важно, чтобы это была именно версия 1.0, а не более свежая - 1.9. Как и в случае со всеми пакетами, которые нам нужно собрать, для установки необходимо выполнить четыре стандартных операции: распаковку архива, конфигурацию процесса сборки, собственно сборку приложения и, наконец,инсталляцию.
tar xvzf gtk-sharp-1.0.10.tar.gz cd gtk-sharp-1.0.10 ./configure --prefix=/usr
В случае с gtk-sharp есть одна особенность, которая заключается в выводе конфигурационного скрипта. Он показывает вам, какие компоненты gtk-sharp будут установлены. Если у вас есть все необходимые пакеты разработки, вы должны увидеть что-то подобное этому:
Optional assemblies included in the build: * art-sharp.dll: yes * gnome-sharp.dll: yes * glade-sharp.dll: yes * gda-sharp.dll: no * gnomedb-sharp.dll: no * rsvg-sharp.dll: no * gtkhtml-sharp.dll: no * vte-sharp.dll: no
Библиотеки, которые нам необходимы - это art-sharp.dll, gnome-sharp.dll и glade-sharp.dll, так что остальной вывод можно смело игнорировать. Если же один их этих трех обязательных пакетов окажется не включен (в приведенном выводе будет значиться ‘no’ вместо ‘yes’), вам нужно убедиться, что вы правильно установили все библиотеки разработки Gnome. Вы можете проверить это, просто набрав ‘-devel’ в качестве критерия поиска в менеджере пакетов Mandriva. Если же с выводом конфигурационного скрипта вам повезло, то вам осталось просто набрать make и make install, как и в случае с инсталляцией Mono.
Кроме самой Beagle, остаются еще два пакета, которые нужно скачать и установить: gecko-sharp и gmime-2.1.13. Они не должны вызвать особых проблем. Просто загрузите файлы, распакуйте их, запустите ./configure --prefix=/usr в каталоге пакета, а затем выполните с правами root команды make и make install для установки каждого из них. Если все пройдет как надо, нам останется установить только один пакет, а именно – Beagle.
Установка beagle
Этот этап на самом деле достаточно прост, поскольку все необходимое уже установлено. После того, как вы скачали tar-файл, распаковали его, перешли во вновь созданный каталог, у вас может возникнуть желание сразу же двинуться вперед и выполнить команду ./configure --prefix=/usr. Если вы так сделаете, то будете «обрадованы» примерно такой ошибкой:
‘configure: error: unable to find grkmozembed; this can be found in the mozilla/firefox/thunderbird development packages’.
Конфигурационный сценарий жалуется, что не может найти grkmoztmbed, обычно устанавливаемый как часть пакета разработчика Firefox. Проблема заключается в том, что в Mandriva требуемый пакет уже был установлен, когда мы инсталлировали mozilla-firefox-devel, но имена файлов в нем отличаются от тех, которые ищет сценарий конфигурации. На самом деле, для работы сценария необходимы два файла, и наименее разрушительный путь – создать на имеющиеся в Mandriva файлы символические ссылки с именами, которые ожидает видеть конфигурационный сценарий:
$ ln -s /usr/lib/pkgconfig/mozilla-firefox-gtkmozembed.pc \ /usr/lib/pkgconfig/firefox-gtkmozembed.pc $ ln -s /usr/lib/pkgconfig/mozilla-firefox-xpcom.pc \ /usr/lib/pkgconfig/firefox-xpcom.pc
Нам также нужно добавить одну опцию в сценарий конфигурации Beagle, чтобы включить новый web-сервис. Он позволит вам отправлять запросы к базе данных Beagle из любого web-браузера. Чтобы конфигурационный скрипт добавил этот сервис, наберите следующее:
$ ./configure --prefix=/usr --enable-webservices=yes
Теперь запуск сценария должен пройти без каких-либо ошибок. Когда работа скрипта завершится, последний блок текста проинформирует вас о том, какие совместимые расширения были найдены:
target OS: linux extended Attributes: libc Prefix: /usr GNOMe Prefix: /usr KDe Prefix: /usr evolution-Sharp? no (missing dependencies) gsf-sharp? no gst-sharp? no epiphany extension? no (epiphany not installed) Mozilla extension? yes wv1? yes libchm? no Local SqliteClient? yes enable WebServices yes
Любые дальнейшие расширения, какие вы пожелаете добавить, например, Evolution-sharp (которое позволит Beagle индексировать адресные книги Evolution), могут быть скачаны и установлены со страницы дополнительных пакетов Beagle http://beaglewiki.org/Optional_Prerequisites.
Наконец, наберите make и make install (от имени root), чтобы собрать и установить Beagle в вашу систему.
Этап 3 — запускаем Beagle
Beagle запускается как демон от имени текущего пользователи при помощи команды beagled. Если у вас возникают проблемы, добавьте параметр -debug, который поможет определить, что же идет неправильно.
Наиболее часто встречающаяся при запуске Beagle проблема выглядит следующим образом:
[graham@stinky ~]$ beagled ioctl: Bad address unhandled exception: System.IO. IOexception: Attempt to watch /usr/share/ applications failed! in <0x0026c> Beagle.util.Inotify:Subscribe...
Это как раз тот случай, когда версия Inotify в ядре несовместима с Beagle, и вам нужно найти новое ядро (такое как multimedia-ядро из описания первого этапа). Если же запуск beagled проходит нормально, вы можете проверить его статус командой beagled-info:
Scheduler: Count: 114 Status: Working 1 Generator 0 File System Crawler last=/home/graham/beagle/beagle-0.0.11.1, uncrawled=964, dirty=964)
Теперь Beagle запущен и будет автоматически индексировать ваш домашний каталог в фоновом режиме. Если по каким-либо причинам вы желаете, чтобы некоторая часть каталога не индексировалась, вы можете поступить двумя способами. Первый – создать скрытый файл с именем .noindex в каждой директории, которую вы хотите исключить из обработки. Это запретит Beagle индексировать данный каталог и все его подкаталоги. Вы можете перечислить имена конкретных файлов в файле .noindex, что разрешит нормально обрабатывать все остальные файлы в данном каталоге.
Второй способ – добавить список файлов и директорий в центральный файл с именем .neverindex, размещаемый в вашем домашнем каталоге. Он работает так же, как и список файлов и директорий, добавленных в файл .noindex, и они оба понимают шаблоны и регулярные выражения. Процесс фоновой индексации вряд ли будет заметен при работе, поскольку Beagle управляет использованием CPU. загрузка процессора минимальна, когда вы работаете за компьютером, зато Beagle будет потреблять циклы ожидания процессора, когдавы не используете вашу машину.
Консоль или GUI
- [1] Это Bleeding edge Search tool, или Best – графическая утилита для формирования запросов к базе данных Beagle и отображения результатов в виде списка.
- [2] Когда сообщение попадает в Gaim Instant Messenger, ваш диалог будет доступен для запросов.
- [3] Firefox нуждается в расширении beagle.xpi, после чего история вашего браузера также может быть доступна для запросов, позволяя вам переходить непосредственно к ссылкам.
- [4] Содержание документов Word, как созданных в почтенном приложении Microsoft, так и в OpenOffice.org, также может быть проиндексировано.
- [5] Вместо того, чтобы тратить время на сортировку ваших входящих сообщений, почему бы не доверить Beagle извлекать для вас любые важные письма?
Теперь, пройдя столь длинный путь, чтобы заставить его работать, мы можем принять «новелловского пса» на службу. Оставшись ненадолго в командной строке, вы можете отправить Beagle запрос, используя команду с говорящим названием beagle-query:
beagle-query sausage
Эта команда найдет в вашей домашней директории все поддерживаемые Beagle файлы, содержащие слово ‘sausage’ (колбаса) — документы Word, сообщения Gaim, почта, текстовые и двоичные файлы. Если вы не коллекционируете рецепты изготовления колбасы, то, вероятно, не будет найдено ничего, но вы хотя бы узнаете, как это делается. Однако лучший способ отправить запрос Beagle — использование графической утилиты Bleeding Edge Search Tool или, коротко, Best.
Как только Best будет вызван, вы увидите иконку Beagle на панели инструментов. Щелчок по ней откроет простое окно поиска, где можно ввести запрос проверенным веками способом. Результат должен сразу появиться ниже в виде списка. Просмотр каждого результата запускается щелчком по ссылке. Если вы оставите окно результатов открытым, оно будет обновляться, по мере того как Beagle будет находить новое содержимое, например, дополнительные строки в IM-диалоге или новые сообщения электронной почты.
Вы даже можете работать с Beagle, через свой web-браузер. Для этого мы добавили соответствующую конфигурационную опцию, когда компилировали Beagle. Чтобы такой способ доступа заработал, надо запустить демон с дополнительным ключом:
beagled --web-start
Далее, нужно набрать в браузере следующий адрес: http://localhost:888/beagle/search.aspx. Ваш браузер отобразит страничку, очень похожую по интерфейсу на инструмент Best. Вам также ничего не стоит загрузить инструментальную панель Beagle для Firefox, которая предоставляет аналогичную функциональность.
Новый способ поиска
Почему же такая простая идея привлекает так много внимания? Ответ заключается в том, что вам больше не нужно беспокоиться об организации ваших данных, поскольку с этих пор они всегда доступны непосредственно из Beagle, и это меняет ваш подход к индексированию и хранению информации. Обращение к Beagle — гораздо более эффективный процесс поиска, чем самостоятельная охота за нужным файлом; и более того, Beagle предоставит вам в числе содержащих искомое слово такие файлы, о которых вы бы и не подумали.
Beagle все еще находится на ранней стадии разработки. В дальнейшем, по мере того как будут добавляться новые типы файлов и уделяться больше внимания вопросам стабильности, он должен становиться все мощнее и мощнее. Не за горами то время, когда Beagle станет неотъемлемой частью вашего рабочего стола, как web-браузер или проигрыватель мультимедиа, и, хочется надеяться, что к тому моменту он будет иметь более простую процедуру инсталляции. В любом случае, вы уже сейчас в состоянии получить работающую копию Beagle на вашей системе, в чем только что могли убедиться.