ubuntu20.04安装gerrit

1、update

2、updategrale

一:安装前准备
配置管理gerrit的专属账号:(本次测试安装我用的ROOT)

sudo adduser gerrit

sudo usermod -a -G sudo gerrit //分配sudo 权限

sudo su gerrit

java、git环境:

sudo apt-get update

sudo apt-get install openjdk-16-jdk

sudo apt-get install git

二:Apache2安装和配置
sudo apt-get install apache2

cd /etc/apache2

创建httpd.conf

sudo touch /etc/apache2/httpd.conf

sudo vi httpd.conf

文件写入以下内容:

*注意反射代理的端口号和实际gerrit试用的端口不一样,本文实际使用8080作为gerrit的端口号,8091作为反射代理的端口号

<VirtualHost *:8080>
#这里是反射代理的端口号,ServerName 10.20.26.45ProxyRequests OffProxyVia OffProxyPreserveHost On<Proxy *>Order deny,allowAllow from all</Proxy><Location "/login/">AuthType BasicAuthName "Gerrit Code Review"Require valid-userAuthBasicProvider fileAuthUserFile /mnt/data/review_site/passwords#这个路径是gerrit账户密码管理,后续的步骤中会创建此文件。路径有写正确</Location>AllowEncodedSlashes OnProxyPass / http://10.20.26.45:8091/ProxyPassReverse / http://10.20.26.45:8091/</VirtualHost>

apache2.conf末尾添加一行配置信息:

sudo vim /etc/apache2/apache2.conf文末添加:
Include httpd.conf

ports.conf末尾添加一行配置信息:

Listen 8080

开启SSL、Proxy、Rewrite等模块:

cd /etc/apache2/mods-enabled 

sudo ln -s ../mods-available/proxy.load
sudo ln -s ../mods-available/proxy.conf
sudo ln -s ../mods-available/proxy_http.load
sudo ln -s ../mods-available/proxy_balancer.conf
sudo ln -s ../mods-available/proxy_balancer.load
sudo ln -s ../mods-available/rewrite.load
sudo ln -s ../mods-available/ssl.conf
sudo ln -s ../mods-available/ssl.load
sudo ln -s ../mods-available/slotmem_shm.load
sudo ln -s ../mods-available/socache_shmcb.load

三:安装Gerrit
官网下载gerrit安装包并放入需要安装gerrit的磁盘路径,本文使用的是/mnt/data/

cd /mnt/data/soft

wget https://gerrit-releases.storage.googleapis.com/gerrit-3.4.0.war

java -jar gerrit-3.9.1.war init -d /mnt/data/

安装时需要注意弹出的内容:

Location of Git repositories [git]:  代码库绝对路径

本文写的是/mnt/data/git

完成之后配置gerrit.config文件,这一点很重要,安装期间写错了,可以再以下配置文件更改

sudo vim /mnt/data/etc/gerrit.config

[gerrit]#basePath = /home/gerrit/review_site/gitbasePath = gitcanonicalWebUrl = http://10.20.26.45:8080/serverId = 993de4f7-1910-47ed-85f7-76dcbfb7af22
[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 = gerritjavaHome = /usr/lib/jvm/java-18-openjdk-amd64
[index]type = lucene
[auth]type = HTTP
[receive]enableSignedPush = false
[sendemail]smtpServer = localhost
[sshd]listenAddress = *:29418
[httpd]listenUrl = proxy-http://10.20.26.45:8091/
[cache]directory = cache
[gitweb]type = gitwebcgi = /usr/lib/cgi-bin/gitweb.cgi

创建gerrit管理员账号:

touch /mnt/data/review_site/passwords

*这里要和上文配置的httpd.conf里的密码路径要一致

sudo htpasswd -b /mnt/data/review_site/passwords admin 密码

四:安装gitweb
sudo apt-get install gitweb

dpkg -L gitweb //查看配置信息

配置信息如下:

/.
/etc
/etc/apache2
/etc/apache2/conf-available
/etc/apache2/conf-available/gitweb.conf
/etc/gitweb.conf
/usr
/usr/lib
/usr/lib/cgi-bin
/usr/share
/usr/share/doc
/usr/share/doc/gitweb
/usr/share/doc/gitweb/README
/usr/share/doc/gitweb/README.Debian
/usr/share/doc/gitweb/copyright
/usr/share/doc/gitweb/examples
/usr/share/doc/gitweb/examples/index.aux-generation
/usr/lib/cgi-bin/gitweb.cgi
/usr/share/doc/gitweb/changelog.Debian.gz

五: 大工告成
重启Apache2和Gerrit
sudo /mnt/data/review_site/bin/gerrit.sh restart
sudo /etc/init.d/apache2 restart

如果重启gerrit失败,进入review_site/log查看error_log

一切都成功之后输入gerrit网址

http://10.20.26.45:8080

完成!

cd /mnt/data/review_site

sudo htpasswd -b passwords username password //创建用户

========================================

问题1:git clone报错:

在.ssh的config文件的首行加入:

PubkeyAcceptedKeyTypes +ssh-rsa

问题2:后面重启遇到失败的问题,报错日志如下:

猜测是重启遇到数据库被锁定的问题

ps aux | grep gerrit //查看占用进程的id

kill id

再重启就好了

问题三:500 Internal server error
nginx进程用户(www-data)无权访问/home/gerrit, 需要赋权:
ps -ef | grep nginx
解决:
setfacl -R -m u:www-data:rx /home/gerrit

问题四:页面无法打开带目录的仓库

在httppd.conf中加入:

AllowEncodedSlashes NoDecode

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

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

相关文章

群晖前面加了雷池WAF,安装失败,然后无法识别出用户真实访问IP

有nas的相信对公网都不模式&#xff0c;在现在基础上传带宽能有100兆的时代&#xff0c;有公网代表着家里有一个小服务器&#xff0c;像百度网盘&#xff0c;优酷这种在线服务都能部署为私有化服务。但现在运营商几乎不可能提供公网ip&#xff0c;要么自己买个云服务器做内网穿…

多jdk版本环境下,jenkins系统设置需指定JAVA_HOME环境变量

一、背景 由于不同项目对jdk版本的要求不同&#xff0c;有些是要求jdk11&#xff0c;有些只需要jdk8即可。 而linux机器上安装jdk的方式又多种多样&#xff0c;最后导致jenkins打包到底使用的是哪个jdk&#xff0c;比较混乱。 1、java在哪 > whereis java java: /usr/bin/…

测试人生 | 双非院校,2年工作经验年薪近20万

本人本科毕业于双非院校&#xff0c;大学毕业之后就开始从事软件测试工作&#xff0c;有两年多的工作经验&#xff0c;工作当中学习的测试技能较少&#xff0c;比较多重复的工作内容&#xff0c;主要对软件进行功能测试、简单的接口测试及专项测试&#xff0c;自学的测试知识零…

【STL】模拟实现list

目录 list需要实现的接口 结点类的创建 迭代器类的实现 构造函数 运算符的重载 --运算符的重载 !运算符重载和运算符重载 operator* operator-> list的模拟实现 构造函数 拷贝构造函数 赋值运算符重载函数 析构函数 迭代器相关函数 begin和end front和back …

【超详细】TCP协议

TCP(Transmission Control Protocol 传输控制协议) 传输层协议有连接可靠传输面向字节流 为什么TCP是传输控制协议呢&#xff1f; 我们以前所看到的write接口&#xff0c;都是把用户级缓冲区的数据拷贝到发送缓冲区中&#xff0c;然后数据就由TCP自主决定了&#xff0c;所以…

crashrpt3 开源项目的Vs 2022 C++20及其以上的编译

1. 首先从github 下载源代码 crashrpt3 2. 用CMake Gui 编译成vs studio 工程文件 2.1 点击 config 按钮 2.2 依次点击 Generate 按钮、Open Project 按钮.之后vs 2022 会打开编译好的sln工程文件 3.全选解决方案里面的所有项目,设置C语言标准,我这里设置是最新C,即启用的是…

【文档智能】文本文字识别、公式识别、表格文字识别核心算法及思路及实践-DBNet、CRNN、TrOCR

前言 OCR技术作为文档智能解析链路中的核心组件之一&#xff0c;贯穿整个技术链路&#xff0c;包括&#xff1a;文字识别、表格文字识别、公式识别&#xff0c;参看下面这张架构图&#xff1a; 前期介绍了很多关于文档智能解析相关核心技术及思路&#xff0c;本着连载的目的&a…

IT监控平台可视化:多维度展示助力运维效率提升

在信息化时代&#xff0c;IT设备的稳定性与业务的连续性紧密相连&#xff0c;任何细微的故障都可能给企业带来巨大的损失。因此&#xff0c;IT运维团队面临着前所未有的挑战&#xff0c;他们需要迅速、准确地识别和解决问题&#xff0c;以确保业务的平稳运行。而IT监控平台的可…

应届生毕业找不到工作转行IT需要做好哪些准备呢?

前言 相信这是很多即将毕业的应届生们都非常关心的问题。在这里&#xff0c;我们将站在一个应届生毕业且对IT行业感兴趣的角度&#xff0c;来探讨一下这个问题。 首先&#xff0c;我们先来了解一下什么是应届生。应届生是指在学校毕业之后&#xff0c;能够在当年或者下一年度…

AIGC验证码如何对抗,AIGC VS AIGC

AI类型的验证码&#xff0c;当然使用AI对对抗&#xff0c;使用大量的样本叠加训练&#xff0c;我的生成如下: 如果可以生词大量词汇&#xff0c;那么准确率必然上升&#xff0c;有办法的可以讨论

大模型系列:RAG技术深度解析

文末有福利&#xff01; RAG 是2023年最流行的基于 LLM 的应用系统架构。有许多产品几乎完全建立在 RAG 之上&#xff0c;覆盖了结合网络搜索引擎和 LLM 的问答服务&#xff0c;到成千上万个数据聊天的应用程序。很多人将RAG和Agent 作为大模型应用的两种主流架构&#xff0c;…

CTFHUB技能树之HTTP协议——响应包源代码

开启靶场&#xff0c;打开链接&#xff1a; 是个贪吃蛇小游戏&#xff0c;看不出来有什么特别的地方 用burp抓包看看情况&#xff1a; 嗯&#xff1f;点击“开始”没有抓取到报文&#xff0c;先看看网页源代码是什么情况 居然直接给出flag了&#xff0c;不知道这题的意义何在 …

pip离线下载和安装第三方库

pip离线下载和安装第三方库 离线下载离线安装 离线下载 下载依赖库&#xff08;.whl文件&#xff09;&#xff0c;比如下载polars库&#xff0c;并指定重清华源下载&#xff0c;会自动下载依赖的库&#xff0c;并保存到当前目录中&#xff0c;下载命令如下&#xff1a; # 下载…

Intel 新独显 Arc Battlemage 或于10月29日揭晓

原文转载修改自&#xff08;更多互联网新闻/搞机小知识&#xff09;&#xff1a; Arc Battlemage或于10月29日揭晓 英特尔入局独显市场也好几年了&#xff0c;虽然开局声势和跑分都挺猛&#xff0c;但市场表现不会说谎&#xff0c;上季度趋近于0的市场份额就是答案……不过&am…

字符串及正则表达式

目录 字符串 字符串常用方法&#xff1a; 格格式化字符串的三种方式&#xff1a; 格式化字符串的详细格式&#xff1a; 字符串的编码&#xff1a; 字符串的解码&#xff1a; 数据的验证&#xff1a; 字符串拼接的几种方式&#xff1a; 字符串去重&#xff1a; 正则表达…

notepad++中实现代码整体缩进和退格

我 | 在这里 ⭐ 全栈开发攻城狮、全网10W粉丝、2022博客之星后端领域Top1、专家博主。 &#x1f393;擅长 指导毕设 | 论文指导 | 系统开发 | 毕业答辩 | 系统讲解等。已指导60位同学顺利毕业 ✈️个人公众号&#xff1a;乡下小哥编程。回复 Java全套视频教程 或 前端全套视频教…

【网易云音乐】--源代码分享

最近写了一个网易云音乐的音乐实现部分&#xff0c;是通过JavaScript和jQuery实现的&#xff0c;具体效果大家可以参照下面的视频 源代码分享 - git地址: 网易云音乐源代码 下面将着重讲解一下音乐实现部分 视频有点模糊&#xff0c;不好意思&#xff0c;在b站上添加视频的时候…

CSS进阶-布局(一)

1、文本溢出 <style>.d1 {width: 400px;height: 300px;background-color: antiquewhite;/* 超出部分色设置为可见&#xff0c;默认方式 *//* overflow: visible; *//* 超出部分使用滚动条 *//* overflow: scroll; *//* 如果内容未超出元素则正常显示&#xff0c;超出元素…

免费企业邮箱哪个好:全面对比与推荐烽火!

免费企业邮箱哪个好用&#xff1f;推荐的免费企业邮箱有哪些&#xff1f; 面对市场上众多的免费企业邮箱服务&#xff0c;企业该如何选择&#xff1f;烽火将深入探讨免费企业邮箱哪个好这一问题&#xff0c;通过全面对比与推荐&#xff0c;帮助企业找到最适合自己的邮箱服务。…

OpenCV高级图形用户界面(15)注册一个回调函数来处理鼠标事件的函数setMouseCallback()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 为指定的窗口设置鼠标处理器。 setMouseCallback 是 OpenCV 中的一个功能&#xff0c;允许开发者注册一个回调函数来处理鼠标事件。当用户在窗口…