Lxr是一個基於web的原始碼交叉索引工具,用來閱讀原始碼非常方便,現記錄一下配置過程,以pidgin-2.4.1為例。
1、安裝
gentoo下安裝lxr很簡單,直接emerge即可,不過要注意的是lxr是採用perl語言寫的,要求perl和libperl安裝的時候加上ithreads這個USE Flag,另外需要emerge apache mod_perl mysql,索引工具採用glimpse則emerge glimpse,如果要採用swish-e就USE=freetext emerge lxr即可。
2、準備源碼目錄
在我機器上,/data/codes/other是用來存放第三方我需要閱讀的項目,配置lxr先在/data/codes/other目錄下建立了pidgin並將pidgin解壓至pidgin目錄改名為2.4.1,在/data/codes/others/pidgin目錄下建立versions檔案,寫入2.4.1。
3、準備資料庫
執行mysql -u root < /usr/share/webapps/lxr/0.9.5/sqlscripts/mysql/0.9.5_create.sql建立一個lxr庫,然後將/var/lib/mysql/lxr庫名改為pidgin。如果要添加別的項目再做類似的工作即可。
4、配置lxr
首先配置你的apache,產生預設的web目錄,emerge --config =www-servers/apache-x.x.x,然後修改/etc/conf.d/apache,給APACHE2_OPTS加上"-D PERL"選項,重啟apache即可。然後執行cp -pr /usr/share/webapps/lxr/0.9.5/htdocs /var/www/localhost/htdocs/pidgin,如果要添加另一個項目重複此cp操作,重要的就是配置lxr.conf,上傳了一個pidgin的lxr.conf可以參考。
5、產生索引
進入/var/www/localhost/htdocs/pidgin,ln -snf /data/codes/other/pidgin/lxr.conf然後執行./genxref --url=http://localhost/pidgin即可產生索引,(對了,到這兒你會發現操作mysql資料庫時會報錯,是因為lxr建的lxr_releases表裡的release欄位與mysql的關鍵字衝突,需要修改一下/usr/lib/perl5/vendor_perl/5.8.8/LXR/Index/Mysql.pm檔案,將其中的sql語句中的release欄位都加上``變成`release`)現在基本上可以訪問了。