您好,登录后才能下订单哦!
# Linux系统如何安装SonarQube
## 一、SonarQube简介
SonarQube是一个开源的代码质量管理平台,用于持续分析和测量代码质量。它支持多种编程语言,能够检测代码中的错误、漏洞、代码异味以及重复代码等问题。通过SonarQube,开发团队可以更好地维护代码质量,提高软件的可靠性和可维护性。
### 主要功能
- 代码质量分析
- 静态代码分析
- 技术债务管理
- 多语言支持(Java, C#, JavaScript, Python等)
- 与CI/CD工具集成
## 二、安装前准备
在开始安装SonarQube之前,需要确保系统满足以下要求:
### 1. 系统要求
- **操作系统**:Linux(本文以Ubuntu 20.04为例)
- **Java**:Oracle JRE 11或OpenJDK 11
- **数据库**:PostgreSQL 9.6+、MySQL 5.6+或Oracle(推荐PostgreSQL)
- **内存**:至少4GB RAM
- **磁盘空间**:至少2GB可用空间
### 2. 安装依赖
确保系统已安装必要的依赖工具:
```bash
sudo apt update
sudo apt install -y wget unzip
SonarQube需要Java 11运行环境:
sudo apt install -y openjdk-11-jdk
验证Java版本:
java -version
SonarQube支持多种数据库,这里以PostgreSQL为例:
sudo apt install -y postgresql postgresql-contrib
启动PostgreSQL服务:
sudo systemctl start postgresql
sudo systemctl enable postgresql
切换到postgres用户:
sudo -i -u postgres
创建SonarQube数据库和用户:
createuser sonarqube
psql -c "ALTER USER sonarqube WITH PASSWORD 'sonarqube';"
createdb -O sonarqube sonarqube
exit
编辑PostgreSQL配置文件:
sudo nano /etc/postgresql/12/main/postgresql.conf
修改以下参数:
shared_buffers = 256MB
work_mem = 4MB
编辑pg_hba.conf文件:
sudo nano /etc/postgresql/12/main/pg_hba.conf
添加以下内容:
local sonarqube sonarqube md5
重启PostgreSQL服务:
sudo systemctl restart postgresql
访问SonarQube官网获取最新版本下载链接,或直接使用wget下载:
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.4.0.54424.zip
解压文件:
unzip sonarqube-9.4.0.54424.zip -d /opt
sudo mv /opt/sonarqube-9.4.0.54424 /opt/sonarqube
出于安全考虑,不建议使用root用户运行SonarQube:
sudo groupadd sonarqube
sudo useradd -d /opt/sonarqube -g sonarqube sonarqube
sudo chown -R sonarqube:sonarqube /opt/sonarqube
编辑SonarQube配置文件:
sudo nano /opt/sonarqube/conf/sonar.properties
修改以下配置:
sonar.jdbc.username=sonarqube
sonar.jdbc.password=sonarqube
sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube
sonar.web.host=0.0.0.0
sonar.web.port=9000
编辑系统限制文件:
sudo nano /etc/security/limits.conf
添加以下内容:
sonarqube - nofile 65536
sonarqube - nproc 4096
编辑sysctl.conf文件:
sudo nano /etc/sysctl.conf
添加以下内容:
vm.max_map_count=262144
fs.file-max=65536
应用更改:
sudo sysctl -p
创建服务文件:
sudo nano /etc/systemd/system/sonarqube.service
添加以下内容:
[Unit]
Description=SonarQube service
After=syslog.target network.target
[Service]
Type=simple
User=sonarqube
Group=sonarqube
PermissionsStartOnly=true
ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start
ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop
LimitNOFILE=65536
LimitNPROC=4096
[Install]
WantedBy=multi-user.target
重新加载systemd配置:
sudo systemctl daemon-reload
启动SonarQube服务:
sudo systemctl start sonarqube
sudo systemctl enable sonarqube
检查服务状态:
sudo systemctl status sonarqube
如果系统启用了防火墙,需要开放9000端口:
sudo ufw allow 9000/tcp
sudo ufw reload
在浏览器中访问:
http://<服务器IP>:9000
默认管理员凭据: - 用户名:admin - 密码:admin
首次登录后会提示修改密码。
以Java项目为例,安装SonarScanner:
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.7.0.2747-linux.zip
unzip sonar-scanner-cli-4.7.0.2747-linux.zip -d /opt
sudo mv /opt/sonar-scanner-4.7.0.2747-linux /opt/sonar-scanner
配置环境变量:
sudo nano /etc/profile.d/sonar-scanner.sh
添加:
export PATH=$PATH:/opt/sonar-scanner/bin
执行扫描:
sonar-scanner \
-Dsonar.projectKey=my-project \
-Dsonar.sources=. \
-Dsonar.host.url=http://localhost:9000 \
-Dsonar.login=your_token
错误现象:SonarQube启动失败,日志显示Elasticsearch相关问题
解决方案:
- 确保系统配置了足够的虚拟内存
- 检查/opt/sonarqube/elasticsearch/config/jvm.options
中的内存设置
错误现象:无法连接到PostgreSQL
解决方案:
- 检查PostgreSQL服务是否运行
- 验证数据库用户名和密码是否正确
- 检查pg_hba.conf
配置
错误现象:启动时提示权限不足
解决方案:
- 确保/opt/sonarqube
目录及其子目录属于sonarqube用户
- 检查系统限制配置是否正确
本文详细介绍了在Linux系统上安装和配置SonarQube的完整过程,包括: 1. 安装前的准备工作 2. PostgreSQL数据库的安装与配置 3. SonarQube的安装与配置 4. 系统服务的设置 5. 基本的Web界面访问与使用 6. 常见问题的解决方法
通过SonarQube,开发团队可以实现代码质量的持续监控和改进,提高软件开发的整体质量。建议定期更新SonarQube版本以获取最新功能和安全补丁。 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。