1. 程式人生 > >Ubuntu 16.04安裝使用GNU GLOBAL

Ubuntu 16.04安裝使用GNU GLOBAL

最近想看Linux核心程式碼,本來想搭建一個LXR伺服器。結果搜了網上的教程,看了官方的文件,配置了好半天,apache一直提示403 Forbidden錯誤。萬念俱灰之下想到之前的公司裡好像是用GNU GLOBAL搭建的伺服器。遂百度之。發現搭建GLOBAL比LXR簡單的多,而且同樣功能強大,適合個人或者小團隊閱讀程式碼。既然LXR這條路走不通,那咱就換條路走走。果斷用GLOBAL替代LXR。

Ubuntu的apt-get自帶GLOBAL,可惜版本 5.7.1版有點老。為了與時俱進,下載官方最新版手動安裝。

安裝

安裝編譯依賴的庫:

sudo apt build-dep global
sudo apt install libncurses5-dev libncursesw5-dev


./configure --with-sqlite3   #gtags可以使用Sqlite3作為資料庫,在編譯時需要加這個引數
make -j4     #四執行緒並行編譯
make check
sudo make install
sudo make install check

安裝完成

假定接下來我們要生成Linux Kernel的解析html。

執行

git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git


當然也可以直接下載linux kernel tar包到本地後解壓縮。

進入Linux Kernel所在的目錄

執行

gtags –v    #生成tag檔案。


當然,也可以加上--sqlite3引數,下面是—help給出的引數幫助資訊。

      Use Sqlite 3 API to make tag files. By default, BSD/DB 1.85 API is used.
      To use this option, you need to invoke configure script with
      --with-sqlite3 in the build phase.


tag檔案生成後,執行 htags命令生成HTML檔案

htags -DfFnva -t '這裡填入你想要的主頁title'

然後我很傻很天真的又安裝了一遍apache,把整個目錄mv到了/var/www/html/下面。

開啟主頁,發現成功了,進行serach,發現顯示perl程式碼尷尬

各種設定後,發現在/cgi-bin/global.cgi檔案裡,最上面有這麼一段話。

#! /usr/bin/perl
#------------------------------------------------------------------
# YOU ARE COMING TO THE DESTINATION ALMOST.PLEASE DO A LITTLE EFFORT.
#
# How to setup search form of htags
# =================================
#
# You should start HTTP server so that thisscript is executed as a CGI script.
# Setup procedure for it depends on theHTTP server which you are using.
#
# Use of htags-server(1) is recommended.It's simple.
#      $ htags -Df
#      $ htags-server
#      Please access at http://127.0.0.1:8000
#      Python2 http/cgi server
#      Serving HTTP on 127.0.0.1 port 8000 ...
# You can see the output of htags through'http://127.0.0.1:8000'.
#
# If you are using Apache, 'HTML/.htaccess'might be helpful for you.
#------------------------------------------------------------------

GLOBAL很良心的自帶了web server元件,這簡直太省事了。如果你要用Apache的話,'HTML/.htaccess' 可能會對你有幫助。我覺得這句話後面可以加一個“呵呵”。

安裝python或者ruby,這裡我選python、

sudo apt install python

如果直接執行htags-server,我發現外網無法訪問我的GLOBAL web伺服器,看了下幫助檔案,執行以下程式碼:

htags-server –b ip地址 埠號

如果不填埠號,預設埠8000,如果你要在80埠開啟服務,好像要sudo,否則報錯,不知何故。

更多幫助資訊,請參考—help或查閱官方文件。