資料來源:Ubuntu 環境下安裝 LXR
由於項目需求,需要搭建一套代碼索引環境,經過網上查找,瞭解可以使用LXR (the Linux Cross Referencer)來做,同時網上有很多搭建方法,我嘗試學習,一步一步搭建環境,在這個過程中,遇到一些問題,記錄下來,分享給大家,方便大家順利完成LXR 搭建。
環境:Ubuntu 10.10,新安裝的系統,具體搭建步驟如下(整個過程中基本都需要root權限):
1.安裝apache2
sudo apt-get install apache2
2.安裝Glimplse
. Glimplse
# wget http://webglimpse.net/trial/glimpse-latest.tar.gz
# tar xvzf glimpse-latest.tar.gz
# cd glimpse-4.18.6
# ./configure
# make
我在make 的時候報下面的錯
make[1]: flex: Command not found
make[1]: *** [lex.yy.c] Error 127
make[1]: Leaving directory `/usr/local/src/glimpse-4.18.6/dynfilters'
make: *** [build-sub] Error 2
在編譯之前,首先看看你的機器上是否已經安裝了flex,因為編譯glimpse的時候需要這個軟件。如果沒有的話,那麼進行安裝:
sudo apt-get install flex
執行
# make
# sudo make install
3.安裝lxr
sudo apt-get install lxr
4. 對文件做映射
在/etc/apache2/httpd.conf 在裡面添加以下內容:
Alias /lxr /usr/share/lxr
<Directory /usr/share/lxr>
Options All
AllowOverride All
</Directory>
這樣可以達到http://localhost/lxr/ =>/usr/share/lxr
5. 在/usr/share/lxr/http下創建文件 .htaccess, 並寫入一下內容:
<Files ~ (search|source|ident|diff|find)$>
SetHandler cgi-script
</Files>
6.啟動apache2
sudo /etc/init.d/apache2 restart
7. 下載linux 源代碼
linux內核源碼下載地址http://www.kernel.org/,我下載了2.6.39.4版本的linux 源碼,默認下載到/home/beaver(beaver是我的用戶名,根據大家的機器而定)/Downloads,解壓後為linux-2.6.39.4
創建/usr/share/lxr/source/XX 目錄 (XX為版本號)
mkdir /usr/share/lxr/source/2.6.39.4
然後在/usr/share/lxr/source/2.6.39.4下創建linux符號連接
ln -s /home/beaver/Downloads/linux-2.6.39.4 /usr/share/lxr/source/2.6.39.4/linux
(源碼地址)
8. 創建/usr/share/lxr/source/versions 文件,這裡記錄所有要看的版本,內容是
2.6.39.4
2.6.22(可有可無)
要保證2.6.39.4 =>/usr/share/lxr/source/2.6.39.4
創建/usr/share/lxr/source/defversion 文件,這裡記錄缺省要看的版本,內容是
2.6.39.4
之所以是這兩個文件,見/usr/share/lxr/http/lxr.conf裡的相關設置
9. 建立索引
cd /usr/share/lxr/source/2.6.39.4/
生成關鍵字交叉索引數據庫
sudo genxref linux
接下來要等待一段比較長的時間,因為它要掃瞄文件。這樣會在當前目錄生成fileidx和xref
接下來,生成freetext交叉索引數據庫:
sudo glimpseindex -H /usr/share/lxr/source/2.6.39.4/ /usr/share/lxr/source/2.6.39.4/linux
(需要等待一段時間)
之所以是這個目錄(/usr/share/lxr/source/2.6.39.4/),見/usr/share/lxr/http/lxr.conf裡的相關設置(database項)
10.修改屬性,使任何人都可以讀取改文件
sudo chmod +r -R /usr/share/lxr/source/2.6.39.4/*
sudo chmod +r /usr/share/lxr/source/2.6.39.4/.glimpse* (注意:這句命令必須執行,否則在 file search 的時候會出現警告:Warning: Could not open .glimpse_filenames)
11.啟動apache,查看源碼
sudo /etc/init.d/apache2 restart
http://localhost/lxr/http/blurb.html //成功查看源碼
閱讀的時候可以看到頁面頂部有
~ [ source navigation ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~
source navigation是用戶查看頁面的界面
identifier search是查找某個變量名、結構名、函數名的界面
freetext search是查找任何字符串的界面
file search查找某個文件
參考文件:
http://blog.sina.com.cn/s/blog_6c6d405f0100oq6l.html
http://www.linuxsir.org/bbs/showthread.php?t=246594
http://linux.chinaunix.net/techdoc/system/2006/12/21/946450.shtml
http://yp.oss.org.cn/software/show_resource.php?resource_id=1044
http://wenku.baidu.com/view/7d3c0471f242336c1eb95e13.html
收藏:
http://blog.csdn.net/fengyanhui/article/details/6320117
No comments:
Post a Comment