赞
踩
如果你打开 https://android.googlesource.com/platform/manifest,就会发现,google官方管理Android源码,使用的是Gerrit。Android系统源码是非常大的,用Git肯定是不适合。对于大型项目,得用Gerrit,今天就来介绍下Gerrit的安装和使用。
# 更新系统软件包
sudo apt update
安装java11
sudo apt install -y openjdk-11-jdk
设置环境变量
# 编辑 .bashrc 或 .zshrc
nano ~/.bashrc # 或者 nano ~/.zshrc
# 添加以下环境变量
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin
export USE_CCACHE=1
# 使环境变量生效
source ~/.bashrc # 或者 source ~/.zshrc
# 验证java
java --version
# 或
echo $JAVA_HOME
# 安装nginx
sudo apt install -y nginx
systemctl start nginx && systemctl enable nginx
我试过好几个版本,一开始下载的是Gerrit3.6.3,遇到各种问题,还要提前设置用户,下载apache2,后面放弃了,遇到了一些我没处理掉的问题,就改下载Gerrit3.5.0版本
mkdir gerrit
cd gerrit
# 下载gerrit
wget https://gerrit-releases.storage.googleapis.com/gerrit-3.5.0.war -O gerrit-3.5.0.war
# 关闭29418端口的进程
lsof -i:29418
kill -9 <pid>
export GERRIT_SITE=~/gerrit/gerrit_site
java -jar gerrit-3.5.0.war init -d $GERRIT_SITE --batch --install-all-plugins --dev
# 注意,这里一定要--install-all-plugins 否则会导致很多插件没能安装,很多功能就无法使用
使用java安装Gerrit的时候,一定要把一些插件安装好,不然会遇到各种问题,比如,看不到代码的下载入口,无法导入SSH keys等等,如果是重复安装,或者替换安装,需要先确保29418端口空闲。
主要是修改两个配置,一个是ngix的,一个是Gerrit
cd /etc/nginx/conf.d
# 新增conf
touch gerrit.conf
# 用管理员权限编辑配置
sudo nano gerrit.conf
新增内容如下(gerrit.conf)
upstream proxy_pool_gerrit { server localhost:8080 weight=10; keepalive 512; } server { listen 80; server_name 10.168.10.140; location / { auth_basic "Gerrit Code Review"; proxy_pass http://ipaddress:9092; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Authorization $http_authorization; } }
配置修改成功之后,最好验证下是否存在什么问题,并重启ngix
# 检查配置
sudo nginx -t
# 重启nginx
sudo systemctl restart nginx
# 检查nginx服务状态
sudo systemctl status nginx.service
# 查看Nginx运行日志
sudo journalctl -xe
[gerrit] basePath = git canonicalWebUrl = http://ipaddress:9092/ serverId = 57ec1452-f8f2-40e7-9512-7891cfffd2b5 [container] javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance" javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance" user = gnlab javaHome = /usr/lib/jvm/java-11-openjdk-amd64 [index] type = lucene [auth] type = DEVELOPMENT_BECOME_ANY_ACCOUNT userNameCaseInsensitive = true [receive] enableSignedPush = false [sendemail] smtpServer = localhost [sshd] listenAddress = *:29418 [httpd] listenUrl = http://*:9092/ [cache] directory = cache [plugins] allowRemoteAdmin = true
进入到gerrit/gerrit_site/bin下,运行gerrit.sh restart命令
sudo ./bin/gerrit.sh restart
直接通过ip访问,点击sign in 就能打开如下页面,可以通过admin进入
遇到问题,别慌,一个个解决就好了,按上面流程来,基本没啥问天。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。