2013年8月29日木曜日

Gnu Globalを使ってブラウザでソースコードを快適に読む.


はじめに




最近よく使うGnu Globalの導入方法を書いておきます.

ブラウザでコードを読めるのはとても便利です.









動作確認環境





OS
Linux Mint 14


Gnu Global
バージョン5.7.1












導入方法




まず,Gnu Globalをインストール.

Ubuntuなら以下のコマンドでインストールできる.




$ sudo apt-get install global


次に,TAGSファイルというものを作る.

これは,以下のコマンドで作れる.




$ gtags -v


-v オプションは途中経過を表示するオプションなので,なくてもよい.




次は,ブラウザで表示するためのHTMLとCGIを作る.

これは,以下のコマンドで作れる.




$ htags -afFnvsx


大量に指定されているオプションの意味は以下のとおり.

-a アルファベット順に並べる

-f 検索フォームを作る

-F フレームを作る

-n 行番号をつける

-s シンボルにもリンクを貼る

-v 途中経過を表示

-x xml形式で出力




ここまでで,必要なファイルの作成は完了した.

最後に,CGIを動かすためにApacheの設定を行う.

今回は,とりあえず手元のマシンで動かすための設定を書く.




解析した結果のファイルは /home/hoge/source/HTML/ にあるものとします.

以下のブログを参考に(というよりそのまま)している.

Androidでソース検索(GNU GLOBAL) 電脳羊(Android Dream)




まずapache2をインストール.




$ sudo apt-get install apache2


次に, /etc/apache2/sites-available/default を変更する.

このファイルの変更は管理者権限が必要なので,ファイルを開くときにsudoを忘れずに.

変更箇所は2箇所.


  1. DocumentRootの変更.

    DocumentRoot /var/www をコメントアウト(行頭に#を追記)し, DocumentRoot /home/hoge/source/HTML を追加.


  2. CGIを有効にする.

    以下をコメントアウト.




    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
    </Directory>


    以下を追記.




    <Directory "/home/hoge/source/HTML/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
    </Directory>








この変更が終わったら,以下のコマンドでapache2を再起動.




$ sudo /etc/init.d/apache2 restart





その後,ブラウザで,http://localhost にアクセスすると,Globalのページが表示される.

また,左上で関数や変数の定義,参照などを検索できる.

この検索機能は,CGIでやっているので,これがうまく行かないときは,apacheの設定がうまくいってない可能性が高い.









おわりに




サーバにおいて,外から見れるようにしたいときなどは,もっとちゃんとapatchの設定をしないといけないと思います.

ですので,apacheの設定方法を調べてください.

僕もよくわからないので,誰か教えてほしい←



















--
My Emacs Files At GitHub