LXR (Linux Cross Reference)是目前比較流行的linux源代碼檢視工具,lxr的下載下傳及安裝可參見:http://lxr.linux.no/。為了安裝 lxr,必須事先安裝Apach伺服器,這可以在安裝linux發行套件的時候選擇安裝。此外,系統安裝的Perl的版本需要在5.0以上。下面介紹在 Red Hat Fedora Core 4下lxr的安裝過程。
這裡假設Apache伺服器和Perl均已安裝,并能正常工作。lxr原碼包lxr-0.3.tar.gz和linux原碼包linux- 2.6.11.12.tar.gz均在/tmp目錄下。Apache伺服器配置的檔案根目錄(DocumentRoot)為/var/www/html (這是FC4的預設配置)。
1. 進入/tmp目錄
cd /tmp
2. 解壓包lxr-0.3.tar.gz:
tar xzf lxr-0.3.tar.gz
3. 進入解壓後的檔案夾:
cd lxr-0.3
4. 編輯Makefile檔案,需要視情況修改如下兩項:
PERFBIN=/usr/bin/perl
這是perl的路徑名,/usr/bin/perl是大多數情況下的預設配置
INSTALLPREFIX=/var/www/html/lxr
這是lxr腳本的安裝目錄,其中/var/www/html取自Apache配置檔案/etc/httpd/conf/httpd.conf中的DocumentRoot(檔案根目錄)的值。
5. 執行"make install"
make install
這會在上述INSTALLPREFIX目錄安裝相應的腳本和檔案
6. 傳回/tmp目錄
cd ..
7. 将linux源碼包轉移到$(INSTALLPREFIX)/source/目錄,此處是/var/www/html/lxr/source/
mv linux-2.6.11.12.tar.gz /var/www/html/lxr/source/
8. 進入上述目錄
cd /var/www/html/lxr/source/
9. 解壓linux源碼包
tar xzf linux-2.6.11.12.tar.gz
10. 編輯$(INSTALLPREFIX)/http/lxr.conf檔案,此處是/var/www/html/lxr/http/lxr.conf檔案。需要修改如下幾項:
baseurl: http://localhost/lxr/http/
此處baseurl的值需要結合lxr的安裝檔案夾位置和httpd.conf檔案中DocumentRoot一項的值确定。預設安裝中, DocumentRoot = /var/www/html,而lxr的安裝目錄是/var/www/html/lxr,是以得出了上述的baseurl。
與baseurl類似,還需要修改如下3項,下面列出的是根據上面的配置修改後的結果
htmlhead: /var/www/html/lxr/http/template-head
htmltail: /var/www/html/lxr/http/template-tail
htmldir: /var/www/html/lxr/http/template-dir
sourceroot是存放源代碼的子目錄,根據linux源代碼的位置,設定為如下的值
sourceroot: /var/www/html/lxr/source/linux-2.6.11.12/
dbdir是儲存生成的資料庫檔案的目錄,如下進行設定
dbdir: /var/www/html/lxr/source/
11. 建立$(INSTALLPREFIX)/http/.htaccess檔案,此處為/var/www/html/lxr/http/.htaccess,内容如下:
<Files ~ (search|source|ident|diff|find)$>
SetHandler cgi-script
</Files>
12. 修改/etc/httpd/conf/httpd.conf檔案,添加如下幾行
# Cross Reference Stuff
<Directory /var/www/html/lxr>
Options All
AllowOverride All
</Directory>
13. 進入在檔案lxr.conf中設定的dbdir檔案夾,此處是/var/www/html/lxr/source/
執行以下指令生成辨別符資料庫
/var/www/html/lxr/bin/genxref linux-2.6.11.12
此處/var/www/html/lxr為$(INSTALLPREFIX) linux-2.6.11.12是源代碼檔案夾
14. 在/var/www/html/lxr/source/檔案夾下将生成fileidx和xref檔案,執行一下指令修改檔案權限
chmod 555 fileidx
chmod 555 xref
15. 啟動Apache伺服器.
/etc/rc.d/init.d/httpd start
16. 完成,在浏覽器中輸入如下URL
http://localhost/lxr/http/source
就可以浏覽linux源代碼了.