Ubuntu 8.10 下安裝 lxr 與 glimpse

前言

Lxr 對指定的源代碼文件建立索引數據庫,利用 perl 腳本 CGI 動態生成包含源碼的 web 頁面,可以用任一瀏覽器查閱。在此 web 頁中,所有的變量、常量、函數都以超連接的形式給出,十分方便查閱。

步驟 1 :安裝軟件

1)   安裝 apache2: sudo apt-get install apache2

2)   安裝 lxr, sudo apt-get install lxr

3)   安裝 glimpse, 下載最新版本:

tar -xvzf glimpse-latest.tar.gz

cd glimpse- 4.18.5

./configure

make

sudo make install

步驟 2 :設置 lxr

4)   編輯: /usr/share/lxr/http/lxr.conf

baseurl: http://localhost/lxr/http/

    其中 localhost 改爲您的電腦的 IP 地址。

    /lxr/http/ 對應後面在 apache 配置文件中的設置路徑。

修改 glimpse 路徑:

glimpsebin: /usr/local/bin/glimpse

5)   /usr/share/lxr/http/ 下添加文件 .htaccess, 內容爲:

<Files ~ (search|source|ident|diff|find)$>

SetHandler cgi-script

</Files>

步驟 3 :建立源碼倉庫

6)   /usr/share/lxr/source 下建立兩個文件:

/usr/share/lxr/source/versions,
/usr/share/lxr/source/defversion

很明顯, versions 表示所有內核版本的集合, 而 defversion 表示缺省使用的版本。 我們目前使用 2.6.21 , 所以這兩個文件裏都寫上 2.6.21

7)   將內核源代碼拷貝到 /usr/share/lxr/source/2.6.21/linux 下。

8)   /usr/share/lxr/source/2.6.21 下運行: ( 生成 freetext 交叉索引數據庫 )

glimpseindex -H . ./linux

9)   /usr/share/lxr/source/2.6.21 下運行:(生成關鍵字交叉索引數據庫)

genxref ./linux

10)            /usr/share/lxr/source/2.6.21 下運行:

chmod a+x *

chmod a+x .*

 

步驟 4 :設置瀏覽器

11)            編輯, /etc/apache2/sites-available/default , 添加:

    Alias /lxr /usr/share/lxr

    <Directory /usr/share/lxr>

    Options All

    AllowOverride All

    </Directory>

12)            重啓 apache2:

service apache2 restart

13)            現在可以瀏覽代碼了:

http://192.168.0.137/lxr/http/blurb.html

 

更進一步:

Lxr 支持多個內核版本, 您只需要在 /usr/share/source 下添加相應的目錄, 並將該版本添加到 /usr/share/lxr/source/versions, 然後按照以上目錄生成數據庫文件即可。

 

另外, http://lxr.linux.no/linux+v2.6.27/ 有現成做好的交叉索引。


====

http://blog.csdn.net/zjujoe/article/details/4199025


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

LXR安裝詳解-ubuntu環境下測試


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/cd ctags-5.8
# ./configure
# make
# 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.
sudo /etc/init.d/apache2 restart


7. 
linux內核源碼下載地址http://www.kernel.org/ 默認下載到/home/louis/下載解壓後爲linux-2.6.37.2
創建/usr/share/lxr/source/XX 目錄 (XX爲版本號)
mkdir /usr/share/lxr/source/2.6.37.2
然後在
/usr/share/lxr/source/2.6.37.2下創建linux符號連接
ln -s /home/louis/下載/linux-2.6.37.2/usr/share/lxr/source/2.6.22/linux
               (源碼地址)
8. 創建
/usr/share/lxr/source/versions,這裏記錄所有要看的版本,內容是
2.6.37.2
2.6.22(可有可無)
要保證2.6.37.2 =>/usr/share/lxr/source/2.6.37.2
創建/usr/share/lxr/source/defversion,這裏記錄缺省要看的版本,內容是
2.6.37.2
之所以是這兩個文件,見/usr/share/lxr/http/lxr.conf裏的相關設置

9. 建立索引
cd 
/usr/share/lxr/source/2.6.37.2/
sudogenxref 2.6.37.2 //這樣會在當前目錄生成fileidx和xref
sudo glimpseindex-H /usr/share/lxr/source/2.6.37.2/ /usr/share/lxr/source/2.6.37.2/linux
(需要等待一段時間)
之所以是這個目錄(
/usr/share/lxr/source/2.6.37.2/),/usr/share/lxr/http/lxr.conf裏的相關設置(database項)

10.修改屬性
sudo chmod +r -R /usr/share/lxr/source/2.6.37.2/*

11.
sudo /etc/init.d/apache2 restart
http://localhost/lxr/http/blurb.html //成功查看源碼

====

http://blog.sina.com.cn/s/blog_6c6d405f0100oq6l.html


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

關於LXR和glimpse配置實現方便閱讀Linux源代碼的過程
注:本文主要參考下面的資料                            時間:2010-1-15
參考資料1:
http://hi.baidu.com/fanzier/blog/item/3ad7d7546f58a55dd009066b.html
    資料2:
http://blog.csdn.net/zjujoe/archive/2009/05/18/4199025.aspx
其中的相同部分沒有做修改,在此聲明,有“注意:”的地方是結合自己的情況進行的修改。
(本人機器的OS---Ubuntu 9.10)
1.安裝apache2
$sudo apt-get install apache2
2.安裝lxr
$sudo apt-get install lxr
編輯修改lxr.conf文件
$sudo vi /usr/share/lxr/http/lxr.conf
修改glimpse的路徑
找到 glimpsebin這一行,修改成你機器上glimpse的位置(自己查看使用$whereis glimpse)
glimpsebin: /usr/local/bin/glimpse  
注:紅色部分是我機器上的glimpse的位置
3. 在/etc/apache2/httpd.conf 末尾加上以下內容:
Alias /lxr /usr/share/lxr
Options All
AllowOverride All
這樣可以達到http://localhost/lxr/ =>/usr/share/lxr
4. 在/usr/share/lxr/http下創建文件 .htaccess,
$sudo vi /usr/share/lxr/http/.htaccess
並添加下面的內容:
SetHandler cgi-script
5.
$sudo /etc/init.d/apache2 restart
6. 創建/usr/share/lxr/source/XX目錄 (XX爲版本號)
$mkdir /usr/share/lxr/source/2.6.30.10
然後在/usr/share/lxr/source/2.6.30.10 下創建linux符號連接
$ln -s   /home/my/linux-2.6.30.10  /usr/share/lxr/source/2.6.30.10/linux
注:這裏的黃色部分改成你目前的源代碼的所在目錄,比如 /home/you/linux-2.6.30.10
7. 創建/usr/share/lxr/source/versions,這裏記錄所有要看的版本
sudo vi /usr/share/lxr/source/versions
將下面的版本號(自己的源代碼版本號)添加到versions中
2.6.30.10
2.6.32.3
創建/usr/share/lxr/source/defversion,這裏記錄缺省要看的版本,
$sudo vi /usr/share/lxr/source/defversion
添加缺省查看的版本號:
2.6.30.10
這裏爲什麼是這兩個文件,見/usr/share/lxr/http/lxr.conf裏的相關設置
8. 建立索引
$cd /usr/share/lxr/source/2.6.30.10/

$sudo glimpseindex -H  ../  ./linux

(Should be $sudo glimpseindex -H  .  ./linux )

$sudo genxref  ./linux  

    上面的兩個命令運行時間稍微長一些,主要是生成freetext交叉索引數據庫(glimpseindex)和關鍵字交叉索引數據庫(genxref),上面兩個命令不可顛倒順序,見下面的注
注:
1. 資料1原文中的順序是:
$sudo glimpseindex -H /usr/share/lxr/source/2.6.22/ /usr/share/lxr/source/2.6.22/linux  
$sudo genxref 2.6.22
自己按照上面實驗順序後,發現最後的源碼不能很好的鏈接上,不可以實現符號跳轉,僅僅是顯示代碼

2. 這裏如果沒有安裝glimpse,運行sudo glimpseindex -H  ../  ./linux ,會提示沒有相關的命令glimpseindex
於是安裝glimpse,需要到http://webglimpse.net/download.php下載
glimpse-latest.tar.gz
然後在下載文件所在的目錄執行
$
tar
-zxvf  
glimpse-latest.tar.gz
$
./configure
$
make        //注意這裏會提示沒有flex命令,需要安裝flex ,直接sudo apt-get install
flex
$
sudo
make
install
8.修改屬性
$sudo chmod +r -R /usr/share/lxr/source/2.6.30.10/*
9.
$sudo /etc/init.d/apache restart
啓動瀏覽器輸入下面的URL即可查看,很方便呀!!
http://localhost/lxr/http/blurb.html
10.  如果還要添加其他的版本源代碼,只需要按照順序從第6步執行一直到第9步,這樣就可以查看多個版本的源代碼了,比較方便。
11. 附加心得:
最初在網上的找linux下的源代碼查看工具,介紹的好幾種,最初實驗的kscope,有個問題就是他需要依賴下面的軟件:
Qt4 version 4.4.0 and above
QScintilla2 (
http://www.riverbankcomputing.co.uk/software/qscintilla/download
)
Standard build tools
安裝上面的軟件之後,make還是出錯,發現提示一些cpp文件中未定義的符號,這個要一個個修改比較麻煩了。
    所以後來又試了一下 deb包,安裝提示需要libqscintilla2-3,好下載先安裝這個libqscintilla2-3,然後安裝kscope 的deb包,成功了!!後來發現根本啓動不了,提示segmentation fault,這個鬱悶壞了,網上有的說的是個bug,然後試着安裝低版本的kscope—1.6.2,還是出現同樣的segmentation fault,唉,暫時想不出解決反感,只好放棄kscope了。
    接着實驗global,發現好像是命令行的東西,要是命令行熟悉的話,就用vim+ctags了,只是想找稍微簡單一點,我只是想瀏覽源代碼,不想提前記好多命令,呵呵,有點懶啦,只好作罷
     最後選擇據說比較難安裝的LXR,網上這方面的資料很多,一步一步接着做,然後修改了其中的一些敘說不完善的地方,發現竟然成功了,很好,原來這個複雜的東西不是這麼誇張,比前面的要好點,還是幸虧這麼完備的網上共享的資料呀,感謝那麼多對這些資料做出過補充完善的作者!!
    最後的一點缺憾是不能像LXR主站上的服務器上的源代碼的那種鏈接跳轉,可能是哪裏沒有配置正確,不過還是邁出了一大步,下面在繼續研究吧!!!----已經解決,就是前面的glimpseindex和genxref運行順序問題,
12.將來問題
    目前發現查看源代碼跳轉有時還是比較慢,我感覺是數據庫查找效率問題,這是算法的問題吧,應該不牽涉瀏覽器的問題吧??

    歡迎大家提出自己的看法。

====

http://bbs.chinaunix.net/thread-1940161-1-1.html



發佈了6 篇原創文章 · 獲贊 13 · 訪問量 41萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章