ubuntu22.04搭建gerrit3.9.1

一:安装前准备

配置管理gerrit的专属账号:

sudo adduser gerrit

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

sudo su gerrit

java、git环境:

sudo apt-get update

sudo apt-get install openjdk-18-jdk

sudo apt-get install git

二:Apache2安装和配置

sudo apt-get install apache2

cd /etc/apache2

创建httpd.conf

sudo touch /etc/apache2/httpd.conf

sudo vim httpd.conf

文件写入以下内容:

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

<VirtualHost *:8091>
#这里是反射代理的端口号,

    ServerName 192.168.8.***

    ProxyRequests Off
    ProxyVia Off
    ProxyPreserveHost On

    <Proxy *>
          Order deny,allow
          Allow from all
    </Proxy>

    <Location "/login/">
        AuthType Basic
        AuthName "Gerrit Code Review"
        Require valid-user
        AuthBasicProvider file
        AuthUserFile /home/gerrit/review_site/passwords
        #这个路径是gerrit账户密码管理,后续的步骤中会创建此文件。路径有写正确
    </Location>

    AllowEncodedSlashes On

    ProxyPass / http://192.168.8.191:8091/
    ProxyPassReverse / http://192.168.8.191:8091/


</VirtualHost>

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

sudo vim /etc/apache2/apache2.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的磁盘路径,本文使用的是/home/ssd1/gerrit

cd /home/ssd11/gerrit

java -jar gerrit-3.9.1.war init -d ~/review_site

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

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

本文写的是/home/ssd1/gerrit/review_site/git

完成之后配置gerrit.config文件

sudo vim /home/ssd1/gerrit/review_site/etc/gerrit.config

[gerrit]
	basePath = /home/ssd1/gerrit/review_site/git
	canonicalWebUrl = http://192.168.8.***: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 = gerrit
	javaHome = /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://*:8091/
[cache]
	directory = cache
[gitweb]
    type = gitweb
    cgi = /usr/lib/cgi-bin/gitweb.cgi

创建gerrit管理员账号:

touch /home/gerrit/review_site/passwords

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

sudo htpasswd -b /home/gerrit/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 /home/ssd1/gerrit/review_site/bin/gerrit.sh restart
sudo /etc/init.d/apache2 restart

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

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

http://192.168.8.***:8080

完成!

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

问题1:git clone报错:

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

PubkeyAcceptedKeyTypes +ssh-rsa

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

ERROR com.google.gerrit.pgm.Daemon : Unable to start daemon
com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) [Guice/ErrorInjectingConstructor]: LockObtainFailedException: Lock held by another program: /home/ssd1/gerrit/review_site/index/changes_0084/open/write.lock
  at LuceneChangeIndex.<init>(LuceneChangeIndex.java:139)
  while locating ChangeIndex annotated with @UniqueAnnotations$Internal(7)

Learn more:
  https://github.com/google/guice/wiki/ERROR_INJECTING_CONSTRUCTOR

1 error

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

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

kill id

再重启就好了


参考文档:

ubuntu18.04搭建gerrit+gitweb代码审核系统(gerrit-3.2.3,自己亲手搭建经验总结贴)-CSDN博客

gerrit重启遇到h2数据库被锁定问题_gerrit重启遇到h2数据库被锁定问题_风听雨阁的博客-csdn博客-CSDN博客

  • 46
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
| Project | URL | | --- | --- | | partner_modules | http://10.24.71.91/gerrit/c/sharp/vendor/partner_modules/+/142367 | | WIFI | http://10.24.71.91/gerrit/c/PCQ/platform/prebuilts/module_sdk/Wifi/+/142279 | | Uwb | http://10.24.71.91/gerrit/c/PCQ/platform/prebuilts/module_sdk/Uwb/+/142278 | | StatsD | http://10.24.71.91/gerrit/c/PCQ/platform/prebuilts/module_sdk/StatsD/+/142277 | | SdkExtensions | http://10.24.71.91/gerrit/c/PCQ/platform/prebuilts/module_sdk/SdkExtensions/+/142276 | | Permission | http://10.24.71.91/gerrit/c/PCQ/platform/prebuilts/module_sdk/Permission/+/142274 | | OnDevicePersonalization | http://10.24.71.91/gerrit/c/PCQ/platform/prebuilts/module_sdk/OnDevicePersonalization/+/142273 | | MediaProvider | http://10.24.71.91/gerrit/c/PCQ/platform/prebuilts/module_sdk/MediaProvider/+/142272 | | Media | http://10.24.71.91/gerrit/c/PCQ/platform/prebuilts/module_sdk/Media/+/142271 | | IPsec | http://10.24.71.91/gerrit/c/PCQ/platform/prebuilts/module_sdk/IPsec/+/142270 | | conscrypt | http://10.24.71.91/gerrit/c/PCQ/platform/prebuilts/module_sdk/conscrypt/+/142269 | | Connectivity | http://10.24.71.91/gerrit/c/PCQ/platform/prebuilts/module_sdk/Connectivity/+/142268 | | art | http://10.24.71.91/gerrit/c/PCQ/platform/prebuilts/module_sdk/art/+/142267 | | AppSearch | http://10.24.71.91/gerrit/c/PCQ/platform/prebuilts/module_sdk/AppSearch/+/142264 | | AdServices | http://10.24.71.91/gerrit/c/PCQ/platform/prebuilts/module_sdk/AdServices/+/142263 | | Scheduling | http://10.24.71.91/gerrit/c/PCQ/platform/prebuilts/module_sdk/Scheduling/+/142275 |

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值