Linux

Ubuntu18.04にOpenGrokをインストールしてみた

私の職場ではソースコードの管理にGitlabを使っているのですが、コードの閲覧や検索の面ではイマイチと感じることが多くあります。そんな中、ソースコードの閲覧・検索ツールとしてOpenGrokというものを知ったので、まずは手元で試してみることにしました。

ということで、今回はUbuntu18.04にOpenGrokをインストールして動かすまでの備忘録です。

OpenGrokとは?

OpenGrokとは、サーバーにインストールするタイプのソースコード閲覧・検索ツールです。対象のソースコードを解析し、関数の定義やその呼び出し箇所をブラウザ上で簡単に検索することができます。

サーバー型なので、開発内に1つサーバーを立てればみんなからアクセスできる点に加え、複数のプログラミング言語にも対応しているのが良さげです。

Ubuntu18.04で動かす

1.必要なパッケージをインストール

まずは、OpenGrokの動作に必要なパッケージをインストールします。OpenGrokはTomcatというWebコンテナ上で動かすアプリなので、それらに関連するパッケージを用意する必要があります。

2.OpenGrok本体のダウンロード

次にOpenGrok本体をダウンロードし、環境内の適当な場所に展開します(以下、OpenGrokフォルダとします)。とりあえず、今回はrelease版である1.0をダウンロードしました。

ライブラリへのリンク作成

最後に、OpenGrokフォルダのlib中にjflex.jarへのシンボリックリンクを作成してあげます。ちなみに、jflexは字句解析に必要なパッケージとのことです。

ひとまず起動してみる

ここまでで起動準備は完了です。OpenGrokフォルダ中のbin下に移動して、deployコマンドを実行します。その後、Tomcatを再起動すればOKです。

Tomcat起動後、「http://<サーバーのIP>:8080/source」にアクセスし、OpenGrokのトップページが見えていればインストールは成功です。

ただし、この時点では閲覧・検索対象となるソースコードがないため、エラーになってしまいます。そこで、以降はOpenGrokにソースコードを登録していきます。

ソースコードの登録

OpenGrokにソースコードを登録するには、以下3つのフォルダを作ります。

このうち、srcフォルダにソースコード本体を置いてあげます。ちなみに、OpenGrokではsrc中の1フォルダを1プロジェクトとして扱うので、複数のプロジェクトを登録したい場合は、プロジェクト毎にフォルダを切って格納しましょう。コードを置いたら、再びOpenGrokフォルダ中のbin下に移動して、indexコマンドを実行します。

これでコードの解析とインデックス作成が行われ、ブラウザ経由で閲覧・検索ができるようになりました。実際にアクセスしてみるとこんな感じにコードを見ることができます(・∀・)

関数定義やその呼び出し箇所をクリック1つでポチポチ辿るだけでなく、全文検索にも対応しているので、エディタ上であれこれ検索するよりもだいぶ楽な印象でした。

コードを追加・更新する場合は、その度にindexコマンドを実行する必要がありますが、cronに登録して定期実行するようにすれば、その手間も省けそうです。

ある程度規模の大きいソースコードの閲覧・検索にはとても便利だと思うので、興味のある方はぜひ試してみてはいかがでしょうか?

ではではノシ

関連記事

日記 自作物

2019/12/22

FlutterでiOS/Androidアプリを作ってみた

2019年の密かな目標の1つとして「スマホアプリを作ってリリースする」というのを掲げていたのですが、なんとか年内に達成することができました(・∀・) どうせ作るならiOS/Android両対応がいい!ということで、FlutterというGoogle製のフレームワークを使いました。開発したのは「SaltyStock」というアプリです。長期保有して塩漬け状態になっている株式銘柄を管理するというかなりニッチなアプリです笑。 「個人的にこういうのあったらいいな」というものを作ることができたので、概ね満足です。もし興 ...

この記事を読む

Linux

2019/10/6

Docker + Growiでイントラ向けWikiを立ち上げる

チーム開発をしていくうえで、課題の1つになるのが情報共有です。チームの歴史が長いと経験値は溜まっていきますが、それらが情報として整理されていないとメンバー交代時などに大きなコストが発生します。 そこで、イントラ向けのナレッジベース(Wiki)を探していたところ、Growiという良さげなOSSを見つけたので、お試し環境を立ち上げてみることにしました。手元の環境はUbuntu18.04ですが、Linuxであれば大体同じような手順になると思います。 目次1 Dockerのインストール2 Growiの準備2.1 ...

この記事を読む

Linux

2019/8/14

カゴヤVPSで自分専用の開発環境を立ち上げてみた

どこからでもアクセスできる自分専用の開発環境が欲しい…。 そんな願いを叶えるべく、VPSのことを調べていたのですが、いままで「なんか難しそう…」と尻込みしていました。しかし、最近は値段も安くて扱いやすいVPSも増えてきたので、この機会に試してみることにしました。 ということで、今回はVPSを契約して最低限の環境を立ち上げるまでの備忘録です。 目次1 VPSについて1.1 VPSって何?1.2 カゴヤのVPSを契約してみた2 手順1:インスタンスを立ち上げる3 手順2:インスタンスにSSH接続する4 手順3 ...

この記事を読む

Windows

2019/5/5

Windows10で不要なブートエントリを削除する

Windowsのブートまわりで少しハマったので覚え書きです。 私のメインPCはWindows10とUbuntuのデュアルブートだったのですが、とある事情でUbuntuを削除しWindowsのみの構成に戻すことにしました。ちなみに、デュアルブート時の環境はこんな感じ(だったはず)。 元に戻したくなったときのことを考え、別HDD(ドライブB)にUbuntuとGRUBを入れ、GRUB経由でWindowsとUbuntuを立ち上げる形にしていました。 そのため、起動ドライブをWindowsのドライブ(ドライブA)に ...

この記事を読む

C言語 プログラミング

2018/12/25

mmapの下処理にftruncate関数を利用する

以前このブログで公開した記事の中に、C言語のmmap関数の使い方についてまとめた記事がありました。 Corgi Lab. ~備忘録のための技術ブログ~  3 shares 3 users 4 pocketsファイルの読み書きにmmapを使ってみるプログラムのループ中でファイルに何かしらのデータを書き込むとき、そのたびにwriteをしていたのではディスクへのI/Oが頻発してしまい、パフォーマンスに影響することがあります。「C言語だとそんなときはmmapを使うと良い」と ...

この記事を読む

-Linux

Copyright© Corgi Lab. ~備忘録のための技術ブログ~ , 2020 All Rights Reserved.