ubuntu16.04下opengrok安裝踩坑之旅

ubuntu16.04下opengrok安裝踩坑之旅

寫在前面

工作需要嘗試在本地搭建一個opengrok服務器,結果遇到了一大堆的問題。雖然網上資料有很多,但是很多細節均沒有講到。

系統環境

  • 系統
    ubuntu16.04
  • 環境軟件
    open jdk 1.8以上

安裝步驟

1. 安裝universal-ctags

因爲新版本的OpenGrok對exuberant-ctags的支持不太好,所以官方建議安裝universal-ctags。
universal-ctags的下載地址:
https://github.com/universal-ctags/ctags
具體的命令如下:

sudo apt-get update
# 卸載 exuberant-ctags
sudo apt-get remove --purge exuberant-ctags
# 安裝依賴軟件 autoconf  
sudo apt-get install autoconf
mkdir ~/sorf/universal-ctags
cd ~/sorf/universal-ctags
# 下載universal-ctags
git clone https://github.com/universal-ctags/ctags
cd ctags
./autogen.sh
# 我的安裝路徑。就使用這個,後面索引就是這個路徑(~/sorf/universal-ctags/bin)
./configure --prefix=~/sorf/universal-ctags  
make -j8
# 安裝(這裏會將軟件安裝到~/sorf/universal-ctags/bin目錄下,這個路徑需要在後面寫入配置文件中)
sudo make install

2. 安裝tomcat8

  • 安裝
sudo apt-get install tomcat8
  • 啓動服務
sudo /etc/init.d/tomcat8 start
  • tomcat常用的三條命令
sudo /etc/init.d/tomcat8 restart
sudo /etc/init.d/tomcat8 start
sudo /etc/init.d/tomcat8 stop
  • 測試是否安裝成功
    在瀏覽器輸入http://localhost:8080/看到:
    在這裏插入圖片描述

3. 下載opengrok

openGrok的下載地址

https://github.com/oracle/opengrok/releases/

下載後綴爲.tar.gz的文件即可,我這裏下載的是1.3.0版本。下載後,將它解壓到你想放置的位置。我將它放在了 ~/soft/OpenGrok/ 下。
官網說要安裝tools下面的opengrok-tools.tar.gz,這個可以不安裝,不是必須的。
解壓後在軟件根目錄新建三個文件夾。

  1. src 存放代碼(或者是代碼的映射)
  2. data 存放索引
  3. etc 存放配置文件
mv ~/soft/OpenGrok/opengrok-1.3.0 ~/soft/OpenGrok/opengrok
cd ~/soft/OpenGrok/opengrok
mkdir src data etc  

因爲我的代碼是之前已經下載好的,所以這裏直接建一個軟鏈接將代碼和src目錄關聯起來

cd ~/soft/OpenGrok/opengrok/src
ln -s ~/code/src/ android #(~/code/src/ : 需要鏈接的源碼路徑  android : src下的鏈接  )

複製source.war到tomcat中

# 不需要解壓縮,因爲會自己解壓
sudo cp ~/soft/OpenGrok/opengrok/lib/source.war /var/lib/tomcat8/webapps/

修改 /var/lib/tomcat8/webapps/source/WEB-INF/web.xmlconfiguration.xml 的路徑

gedit /var/lib/tomcat8/webapps/source/WEB-INF/web.xml

<context-param>
        <description>Full path to the configuration file where OpenGrok can read its configuration</description>
        <param-name>CONFIGURATION</param-name>
        <param-value>~/soft/OpenGrok/opengrok/etc/configuration.xml</param-value>  //自己創建的etc路徑
    </context-param>

4. 創建索引

新建一個openGrok.sh腳本,輸入下面的命令

java \
    -Djava.util.logging.config.file=~/soft/OpenGrok/opengrok/doc/logging.properties \
    -jar ~/soft/OpenGrok/opengrok/lib/opengrok.jar \
    -c ~/sorf/universal-ctags/bin/ctags \
    -s ~/soft/OpenGrok/opengrok/src -d ~/soft/OpenGrok/opengrok/data -H -P -S -G \
    -W ~/soft/OpenGrok/opengrok/etc/configuration.xml -U http://localhost:8080/source

修改腳本的權限

sudo chmod a+x openGrok.sh

執行腳本

./openGrok.sh

注意事項

  1. 命令的用法可以通過執行下面的命令,獲取使用幫助
java -jar ~/soft/OpenGrok/opengrok/lib/opengrok.jar -h
  1. src中使用軟鏈接的,在-s後面的源碼路徑必須要將軟鏈接的路徑寫全。即如果你在src中創建了一個文件夾,並將代碼指向了它。那麼你的路徑也必須要包含該文件夾,而不能只是上一級目錄。
    舉例:
    創建了一個路徑~/soft/opengrok/opengrok/src/code1 並在code1上創建一個軟鏈接指向代碼。
    這個時候必須寫 ~/soft/opengrok/opengrok/src/code1 而不能寫 ~/soft/opengrok/opengrok/src ,否則雖然執行不會報錯,但是索引不能生成。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章