时隔多年,又开始搭建Git Server 和 CI(以前的文章:用gitlabCI快速搭建一个GitServer与CI)。 现在的Gitlab已经不再是2015年那个时候的Gitlab了。这次,是需要添加SonarQube用于代码检查。
下载解压到官网下载即可
cd /opt; wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.9.zip
unzip sonarqube-7.9.zip
新建用户sonar
sudo useradd sonar
chown
sudo chown -R sonar:sonar /opt/sonarqube-7.19
参考: https://developerinsider.co/install-sonarqube-on-ubuntu/
指的一提的是,如果创建了数据库后运行了新版本的sonar,然后再运行老版本的sonar,而且使用同一个数据库的话(user + database),会提示错误,这个错误在web.log中,注意看下图的最后一行:
对于这种情况最简单的解决方式就是重新创建一个数据库用户和database:
sudo -i
su - postgres
createuser sonar76
psql
然后在数据库cli中:
ALTER USER sonar76 WITH ENCRYPTED password 'PASSWORD';
CREATE DATABASE sonar76 OWNER sonar76;
\q
更改配置:
sudo gvim sonarqube-7.9/conf/sonar.properties
使用sonar账号尝试启动
sudo -i
su - sonar
/opt/sonarqube-7.9//bin/linux-x86-64/sonar.sh start
启动后登录localhost:9000 查看,如果有问题可以
/opt/sonarqube-7.9//bin/linux-x86-64/sonar.sh status
配合看logs里面的log确定问题。
使用Apache反向代理
参考: https://www.howtoforge.com/how-to-install-sonarqube-on-ubuntu-1804/
因为默认的版本没有,所以使用community的插件:
https://github.com/SonarOpenCommunity/sonar-cxx/wiki/SonarQube-compatibility-matrix
下载位于:
https://github.com/SonarOpenCommunity/sonar-cxx/releases
查看sonar安装目录下面的logs里面的es.log,可以看到无法使用root启动
参考: SonarQube 7.7: Startup error: ‘can not run elasticsearch as root’
下载地址:https://github.com/gabrie-allaigre/sonar-gitlab-plugin
安装C/C++和gitlab插件,到对应的官网下载然后放入到sonar里面的extension/plugins里面
然后在chown为sonar即可。
然后重启sonar,在administrator里面查看:
参考下面的两个link:
https://www.jianshu.com/p/8a9f7f462ebb
https://docs.sonarqube.org/pages/viewpage.action?pageId=7996665
对于C和C++需要直接选择一个后端,例如cppcheck,然后配置插件才能工作。
对于C语言和C++,因为都是用.h,因此可能会出现问题:
SonarQube Language sonar.lang.patterns error
对此需要将sonar的C++里面的文件的suffix配置更改,不能让C和C++都匹配同样的后缀。
参考: https://stackoverflow.com/questions/44412117/sonarqube-language-sonar-lang-patterns-error