【Android源码】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

安装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

1.2 安装nginx

# 安装nginx
sudo apt install -y nginx
systemctl start nginx && systemctl enable nginx

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 否则会导致很多插件没能安装,很多功能就无法使用

使用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

新增内容如下(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;}
}
  • ipaddress: 改成服务器地址
  • port: 端口最好换一下,不要使用默认的8080,有时会出错,莫名其妙

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

# 检查配置 
sudo nginx -t
# 重启nginx
sudo systemctl restart nginx
# 检查nginx服务状态
sudo systemctl status nginx.service
# 查看Nginx运行日志
sudo journalctl -xe
进入~/gerrit/gerrit_site/etc/gerrit.config
[gerrit]basePath = gitcanonicalWebUrl = 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 = gnlabjavaHome = /usr/lib/jvm/java-11-openjdk-amd64
[index]type = lucene
[auth]type = DEVELOPMENT_BECOME_ANY_ACCOUNTuserNameCaseInsensitive = true
[receive]enableSignedPush = false
[sendemail]smtpServer = localhost
[sshd]listenAddress = *:29418
[httpd]listenUrl = http://*:9092/
[cache]directory = cache
[plugins]allowRemoteAdmin = true
  • 同样ipaddress修改一下

1.5 启动Gerrit

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

sudo ./bin/gerrit.sh restart

1.6 登录

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

总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/40645.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NoSQL之Redis高可用与优化

一、Redis高可用 在web服务器中&#xff0c;高可用是指服务器可以正常访问的时间&#xff0c;衡量的标准是在多长时间内可以提供正常服务&#xff08;99.9%、99.99%、99.999%等等&#xff09;。 但是在Redis语境中&#xff0c;高可用的含义似乎要宽泛一些&#xff0c;除了保证…

二叉树的链式访问 与 二叉树专题

目录 二叉树的前、中、后序遍历求二叉树第K层节点的个数二叉树查找值为x的节点leetcode相同的树对称二叉树二叉树的前序遍历另一棵子树牛客 二叉树的遍历 二叉树的前、中、后序遍历 1.前序遍历&#xff1a;先访问根节点&#xff0c;再访问左子树&#xff0c;最后访问右子树 根…

conda中创建环境并安装tensorflow1版本

conda中创建环境并安装tensorflow1版本 一、背景二、命令三、验证一下 一、背景 最近需要使用tensorflow1版本的&#xff0c;发个记录&#xff01; 二、命令 conda create -n tf python3.6 #创建tensorflow虚拟环境 activate tf #激活环境&#xff0c;每次使用的时候都…

汽车信息安全--数据安全:图像脱敏

General 随着车联网的发展&#xff0c;汽车越来越智能化&#xff0c;就像是一部“装着四个轮子的手机”。 有人说&#xff0c;智能手机就如同一部窃听器&#xff0c;无论你开机或者关机&#xff0c;它都会无时不刻地监听着用户的一举一动。 可想而知&#xff0c;智能车辆上…

马工程刑法期末复习笔记重点2

马工程刑法期末复习笔记重点2

CLAM用于弱监督WSI分析

计算病理学&#xff08;computational pathology&#xff09;下的深度学习方法需要手动注释大型 WSI 数据集&#xff0c;并且通常存在领域适应性和可解释性较差的问题。作者报告了一种可解释的弱监督深度学习方法&#xff0c;只需要WSI级标签。将该方法命名为聚类约束注意力多实…

【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(二十一)

课程地址&#xff1a; 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程&#xff0c;一套精通鸿蒙应用开发 &#xff08;本篇笔记对应课程第 31 节&#xff09; P31《30.数据持久化-关系型数据库》 上一节中学习了使用用户首选项的方式实现数据持久化&#xff0c;但用户首…

微机原理 选择题

D C MOV、PUSH、POP、XLAT&#xff08;查表&#xff09;、IN、OUT不影响标志位 D B D C D C D B 1. (单选题, 5分)8位无符号数(字节)表示的数值范围是( ), 16位无符号数(字)表示的数值范围是( )。 A. 0~128 0~32768B. 0~255 0~655…

Vscode快捷键崩溃

Vscode快捷键崩溃 Linux虚拟机下使用vscode写代码【ctrlA&#xff0c;CtrlC&#xff0c;CtrlV】等快捷键都不能使用&#xff0c;还会出现“NO text insert“等抽象的指令&#xff0c;问题就是不知道什么时候装了一个VIM插件&#xff0c;让他滚出电脑》》》

使用 pyecharts 渲染成图片程序报错: echarts is not defined问题处理

背景 之前写的使用 snapshot_selenium 来保存pyeacharts渲染成的网页截图&#xff0c;可以正常运行。程序搁置了半年&#xff0c;不知道动了电脑哪里&#xff0c;再次运行程序时&#xff0c;程序开始报错&#xff1a;JavascriptException: javascript error: echarts is not d…

【SQL】已解决:SQL分组去重并合并相同数据

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;SQL分组去重并合并相同数据 在数据库操作中&#xff0c;数据的分组、去重以及合并是常见需求。然而&#xff0c;初学者在编写SQL语句时&#xff0c;可能会遇到一…

正弦波与单位圆关系的可视化 包括源码

正弦波与单位圆关系的可视化 包括源码 flyfish 正弦波与单位圆的关系 正弦波可以通过单位圆上的点在直线&#xff08;通常是 y 轴&#xff09;上的投影来表示。具体来说&#xff0c;考虑一个单位圆&#xff0c;其半径为 1&#xff0c;圆心在原点。我们可以通过旋转一个角度 …

【全网最全流程+所有代码】企业微信回调联调,开通企微回调和收到企微回调

流程图: 只是这里的消息回调,仅作为提示,群内有消息了。不是具体的消息,而是类似这样的结构,: 如果需要获取消息,还需要拉取企微群内消息方法,这个后续再更新。 好了,我们开始吧。 开启消息回调和接收消息回调,地址是一样的,只是 开启消息回调,get请求, 接受消…

人工智能在日常生活中的十大应用:从医疗到智能家居

人工智能已成为当今人类日常生活的重要组成部分&#xff0c;无论您是否意识到&#xff0c;它几乎在所有场景中都能提供帮助。每次您进行网络搜索、在线预订旅行、接收来自京东等购物平台的产品推荐又或是打开您的新浪、抖音时&#xff0c;都能看到影子&#xff0c;这些只是一些…

JAVA案例模拟电影信息系统

一案例要求&#xff1a; 二具体代码(需要在同一个包下创建三个类) Ⅰ&#xff1a;实现类 package 重修;import java.util.Random; import java.util.Scanner;public class first {public static void main(String[] args) {javabean[]moviesnew javabean[4];movies[0] new ja…

加密与安全_ Jasypt (Java Simplified Encryption)不完全指北

文章目录 官网功能概述Code附 官网 http://www.jasypt.org/ 功能概述 Jasypt 是一个 Java 库&#xff0c;它允许开发人员以最小的努力添加基本的加密功能&#xff0c;并且不需要深入了解密码学的工作原理。 高安全性、基于标准的加密技术&#xff0c;适用于单向和双向加密。…

AIGC对设计师积极性的影响

随着科技的迅猛发展&#xff0c;生成式人工智能&#xff08;AIGC&#xff09;工具正逐渐深入设计的每个角落&#xff0c;对设计师的工作方式和思维模式产生了深远的影响。AIGC不仅极大提升了设计师的工作效率&#xff0c;更激发了他们的创新思维&#xff0c;为设计行业带来了翻…

Dungeonborne联机失败、延迟高、卡顿的解决方法

Dungeonborne将第一人称动作的即时性与经典的西幻RPG职业设计巧妙融合&#xff0c;为玩家带来了一场前所未有的游戏体验。在这款沉浸式第一人称PvPvE地下城探险游戏中&#xff0c;我们可以独自深入探索&#xff0c;也可以与值得信赖的伙伴并肩作战&#xff0c;共同揭开地下城的…

移动端UI风格营造舒适氛围

移动端UI风格营造舒适氛围

中服云数字孪生平台引领工业物联仿真新纪元!

中服云数字孪生平台3.0是基于中服云物联网平台和数据中台打造的一款实时数据2D/3D集成展示监控平台。 旨在解决工业物联网数据的直观展示、实虚互动、仿真模拟、故障诊断、告警、预警、预测、实时观测、实时监控等问题。提供了数据采集、数据底座、监控逻辑、建模工具、展示互…