1. 程式人生 > >Ubuntu Sonar安裝及使用

Ubuntu Sonar安裝及使用

1. 在Parallels Desktop中新建Ubuntu虛擬機器

在這裡插入圖片描述




在虛擬機器設定中,設定共享資料夾,自定義本機的“下載”資料夾為共享資料夾,則可以在虛擬機器的/media/psf/下看到共享的“下載”資料夾。

2. 終端ssh連線虛擬機器

3. 安裝軟體

在Linux系統中的軟體下載可以有兩種方式,一是從網路上下載安裝包,即使用wget下載網路資源(jdk不可用這種方式,因為下載時需要登入Oracle賬戶且同意宣告),此方式適合Sonar的兩個軟體;二是手動下載網路資源之後,如jdk,在Oracle官網下載Linux的安裝包.tar.gz檔案之後,通過共享資料夾在虛擬機器中訪問檔案,此方式適合jdk。
Linux系統軟體的安裝方式,一可以使用類似於yum的線上軟體管理中的install命令直接安裝;二可以使用離線安裝包,然後在原始碼資料夾中進行檢查,編譯,安裝的操作,如configure檢查及指定安裝目錄,make編譯,make install安裝。

3.1 安裝jdk

在oracle官網登入之後去下載jdk的linux的64位的.tar.gz安裝包

下載完成之後,放到“下載”目錄下,在虛擬機器中訪問共享目錄“下載”下,拷貝jdk安裝包到/opt下。
在/usr下建立/usr/local/java目錄,mkdir /usr/local/java
cd /usr/local/java
將jdk解壓到java目錄中,tar xzvf /opt/jdk-8u181-linux-x64.tar.gz,在環境變數中增加jdk配置。
vim /etc/bash.bashrc

source /etc/bash.bashrc
使用java -version測試配置是否正確
在這裡插入圖片描述

3.2 安裝MySQL

安裝mysql:
Ubuntu下安裝mysql,預設安裝版本為5.6,安裝完成之後,需要升級,mysql5.6升級5.7操作

3.3 安裝Sonarqube,Sonar-Scanner

  • 安裝sonarqube,sonar-scanner
    cd /opt(下載的檔案自定義放在了opt下)
    sudo wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.7.5.zip
    sudo wget https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.2.0.1227-linux.zip

    解壓到usr/sonar (sonar 是自己建立的資料夾 mkdir /usr/sonar)
    解壓zip檔案,需要先安裝unzip命令,sudo apt-get install unzip
    在/usr/sonar下,執行解壓,unzip /opt/sonarqube-6.7.5.zipunzip /opt/sonar-scanner-cli-3.2.0.1227-linux.zip
  • sonar配置修改
    1、vim /usr/sonar/sonarqube-6.7.5/conf/sonar.properties
    在這裡插入圖片描述
    2、vim /usr/sonar/sonarqube-6.7.5/conf/wrapper.conf
    在這裡插入圖片描述
    3、vim /usr/sonar/sonar-scanner-3.2.0.1227-linux/conf/sonar-scanner.properties
    在這裡插入圖片描述
    4、在profile中增加sonar-scanner的配置
    vim /etc/profile
    增加如下的配置
    export SONAR_HOME="/usr/sonar/sonarqube-6.7.5"
    export SONAR_RUNNER_HOME="/usr/sonar/sonar-scanner-3.2.0.1227-linux"
    export PATH=$SONAR_RUNNER_HOME/bin:$PATH
    
    source /etc/profile

4. 建立資料庫資訊

```sql
mysql -u root -p
mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; 
mysql> CREATE USER 'sonar' IDENTIFIED BY 'sonar';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
mysql> FLUSH PRIVILEGES;
```

5. 啟動sonar服務

在sonarqube下的bin目錄下的linux的64位的資料夾下的sonar.sh指令碼執行啟動,./sonar.sh start

6. sonar-scanner執行結果

成功執行,在本地瀏覽器中開啟http://10.211.55.4:9000/about,即可檢視soanr-scanner結果,如圖
在這裡插入圖片描述

執行過程中的問題記錄
1、由執行許可權原因,導致sonar服務一直啟動失敗
解決辦法:對/usr/sonar資料夾進行許可權修改,sudo chmod -R 777 /usr/soan
2、執行過程中報:Process exited with exit value [es]: 143
解決方案見連結:https://blog.csdn.net/qq_35981283/article/details/81072852
3、啟動過程中web啟動失敗,資料庫連結一直異常
解決方案:先刪除mysql中的sonar資料庫,然後從新建立soanr資料庫,重啟sonar服務即可。
4、匯入py專案,到/usr/sonar目錄下,開始執行,在/usr/sonar下執行 sonar-scanner時提示沒有py外掛
解決方案:去網上下載py外掛,然後放到sonarqube的extension目錄下,重啟sonar服務