当前位置:   article > 正文

【Android源码】Gerrit安装

gerrit安装

前言

如果你打开 https://android.googlesource.com/platform/manifest,就会发现,google官方管理Android源码,使用的是Gerrit。Android系统源码是非常大的,用Git肯定是不适合。对于大型项目,得用Gerrit,今天就来介绍下Gerrit的安装和使用。

环境

  • ubuntu20
  • Gerrit 3.5.0
  • nginx
  • jdk11

安装

1.1 安装jdk11

# 更新系统软件包
sudo apt update
  • 1
  • 2

安装java11

sudo apt install -y openjdk-11-jdk
  • 1

设置环境变量

# 编辑 .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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

1.2 安装nginx

# 安装nginx
sudo apt install -y nginx
systemctl start nginx && systemctl enable nginx
  • 1
  • 2
  • 3

1.3 安装Gerrit

我试过好几个版本,一开始下载的是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 否则会导致很多插件没能安装,很多功能就无法使用
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

使用java安装Gerrit的时候,一定要把一些插件安装好,不然会遇到各种问题,比如,看不到代码的下载入口,无法导入SSH keys等等,如果是重复安装,或者替换安装,需要先确保29418端口空闲。

1.4 修改配置

主要是修改两个配置,一个是ngix的,一个是Gerrit

进入到/etc/nginx/conf.d 中创建gerrit.conf
cd /etc/nginx/conf.d
# 新增conf
touch gerrit.conf
# 用管理员权限编辑配置
sudo nano gerrit.conf
  • 1
  • 2
  • 3
  • 4
  • 5

新增内容如下(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;
       }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • ipaddress: 改成服务器地址
  • port: 端口最好换一下,不要使用默认的8080,有时会出错,莫名其妙

配置修改成功之后,最好验证下是否存在什么问题,并重启ngix

# 检查配置 
sudo nginx -t
# 重启nginx
sudo systemctl restart nginx
# 检查nginx服务状态
sudo systemctl status nginx.service
# 查看Nginx运行日志
sudo journalctl -xe
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
进入~/gerrit/gerrit_site/etc/gerrit.config
[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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 同样ipaddress修改一下

1.5 启动Gerrit

进入到gerrit/gerrit_site/bin下,运行gerrit.sh restart命令

sudo ./bin/gerrit.sh restart
  • 1

1.6 登录

直接通过ip访问,点击sign in 就能打开如下页面,可以通过admin进入
在这里插入图片描述

总结

遇到问题,别慌,一个个解决就好了,按上面流程来,基本没啥问天。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/985717
推荐阅读
相关标签
  

闽ICP备14008679号