OpenGrok: браузер исходников
OpenGrok — это свободное программное обеспечение, предназначенное для индексации исходного программного кода и веб-приложение для поиска и навигации по проиндексированному исходному коду (wikipedia). В некоторых отделах компании, где я работаю, этот инструмент используется разработчиками для быстрого доступа к исходникам (нарядку с Hudson для удаленной компиляции, но о нем в следующий раз).
- Для многих языков программирования поддерживается подсветка синтаксиса и распознавание мест объявления и использования идентификаторов (переменных, имён классов, методов, и так далее).
- Интегрируется с распространёнными системами контроля версий, среди которых CVS, SVN, Git, Mercurial и другие.
- Возможность просмотра исторических версий и аннотированного историей кода, поиск по истории.
- Инкрементальное обновление индекса — позволяет встраивать индексатор в пост-коммитные хуки в системах контроля версий.
- Проект написан на языке программирования Java и, как следствие, платформо-независим — работает под Windows и многими вариантами Unix.
Примеры публично-доступных репозиториев кода, с установленным OpenGrok
- Поиск OpenGrok по исходным кодам операционной системы OpenSolaris
- Поиск OpenGrok по исходным кодам офисного пакета Open Office
- Поиск OpenGrok по исходным кодам операционной системы FreeBSD
- Поиск OpenGrok по исходным кодам операционной системы NetBSD
Скачав бинарники Tomcat 6.0.26 нужно лишь распаковать .gz-файл и запустить startup-скрипт:
tar zvxf apache_tomcat_6.0.26.tar.gz
/apache_tomcat_6.0.26/bin/startup.sh

Возможно вам нужно будет указать путь к java в переменной JRE_HOME:
setenv JRE_HOME /ваш/путь/к/java
Остальные переменные заполняются значениями автоматически, маловероятно, но возможно вам придется поправить и их – аналогично.
Намного удобнее запускать Tomcat как демон. Для этого после распаковки gz-файла перейдите в директорию bin, в ней распакуйте файл jsvc.tar.gz, скомпилируйте утилиту jsvc и скопируйте ее обратно в bin:
cd $CATALINA_HOME/bin
tar xvfz jsvc.tar.gz
cd jsvc-src
autoconf
./configure
make
cp jsvc ..
cd ..
Находясь в директории bin нужно запустить Tomcat:
./bin/jsvc -cp ./bin/bootstrap.jar \
-outfile ./logs/catalina.out -errfile ./logs/catalina.err \
org.apache.catalina.startup.Bootstrap
Как вы видите, параметрами -outfile и -errfile можно указать лог-файл и файл, куда будут сыпаться ошибки.
Файл $CATALINA_HOME/bin/jsvc/native/tomcat.sh можно использовать как пример для внесения правок в /etc/init.d, чтобы сервер запускался при старте системы.
По умолчанию используется порт 8080, файл настройки серверов $CATALINA_HOME/conf/server.xml.
В браузере по адресу localhost:8080 (или данные, указанные вами в server.xml) можно увидеть следующее.

Так или иначе, следует проверить лог и файл ошибок.
Теперь нужно скачать OpenGrok. Я скачал бинарники и распаковал в соседнюю директорию. Этой системе требуется Exuberant Ctags, их я тоже скачал в соседнюю директорию, скомпилировал и, задав несколько переменных окружения, запустил OpenGrok:
tar zvxf ctags_5.8.tar.gz
cd ctags_5.8
mkdir /opt/tools/servers/exctags/5.8
./configure --prefix=/opt/tools/servers/exctags/5.8
make
make install
Теперь осталось лишь задать несколько переменных:
setenv OPENGROK_INSTANCE_BASE /ваш/путь/к/opengrok
setenv EXUBERANT_CTAGS /ваш/путь/к/exuberant_ctags (путь к бинарному файлу)
setenv JAVA_HOME /ваш/путь/к/java
setenv OPENGROK_TOMCAT_BASE /ваш/путь/к/tomcat
cd opengrok/bin
./OpenGrok deploy
Последняя команда развернет директорию source в корне вашего tomcat-сервера, так что если вы все сделали верно, то по адресу localhost:8080/source можно будет увидеть радостное приветствие OpenGrok’а.

Теперь можно проверить его в действии:
./OpenGrok index /ваш/путь/к/исходным/файлам
После чего по тому же адресу можно будет увидеть страницу поиска и ссылку на полное дерево проиндексированных файлов.

Для нашей команды я сделал простенький bash-скрипт, который задает все необходимые переменные, индексирует указанный путь и выводить время, потраченное на индексацию и размер проиндексированной директории.
#!/bin/bash
OPENGROK_INSTANCE_BASE="/opt/tools/servers/opengrok/0.9"
EXUBERANT_CTAGS="/opt/tools/servers/exctags/5.8/bin/ctags"
JAVA_HOME="/app/jdk/1.6.0"
OPENGROK_TOMCAT_BASE="/opt/tools/servers/tomcat6"
SRC="/opt/tools/servers/exctags/distro"
echo "Path to OpenGrok is set to $OPENGROK_INSTANCE_BASE"
echo "Path to Exiberant Ctags is set to $EXUBERANT_CTAGS"
echo "Path to java is set to $JAVA_HOME"
echo "Path to Tomcat is set to $OPENGROK_TOMCAT_BASE"
echo "Path to source-code directory to index is set to $SRC"
export OPENGROK_INSTANCE_BASE=$OPENGROK_INSTANCE_BASE
export EXUBERANT_CTAGS=$EXUBERANT_CTAGS
export JAVA_HOME=$JAVA_HOME
export OPENGROK_TOMCAT_BASE=$OPENGROK_TOMCAT_BASE
start_time=$(date +%s)
./OpenGrok index $SRC
end_time=$(date +%s)
echo "Elapsed time: $(($end_time-$start_time)) seconds."
echo "The size of indexed directory is: "
du -sh $SRC
В этой заметке описан самый простой и быстрый способ поднять OpenGrok за несколько минут, при этом не вдаваясь в особенности системы. Я советую ознакомиться с документацией на официальных сайтах.

freetonik
Комментарии
Это рабочий sun-терминал, GUI-софт вообще почти не используется