Ubuntu14.04安装Gerrit-3.1.2

简介: 笔记

版本说明


系统版本:Ubuntu server 14.04

Gerrit版本:Gerrit-3.1.2


需要安装的程序


  1. Ubuntu server 14.04
  2. Gerrit-3.1.2
  3. nginx 1.4.6(版本可以随意)
  4. JDK 1.8x (必须为1.8版本)
  5. apache2-utils
  6. git


安装步骤


安装好Ubuntu server系统后开始安装Gerrit

1.新建用户gerrit

在指定用户gerrit下搭建我们的Gerrit,避免影响其它用户。

ubuntu:~$ sudo useradd gerrit -m -s /bin/bash
ubuntu:~$ sudo passwd gerrit

将gerrit用户添加sudo权限,打开文件

sudo vim /etc/sudoers

按照root用户配置,添加一行,如下:

# User privilege specification
root    ALL=(ALL:ALL) ALL
gerrit  ALL=(ALL:ALL) ALL

切换到gerrit用户,后面所有的配置都是在gerrit用户上进行的:

su gerrit

2.安装JDK

JDK版本必须为1.8,我使用的版本为jdk-8u212-linux-x64.tar.gz

将该文件拷贝到gerrit主目录,并运行命令解压tar -xvf jdk-8u212-linux-x64.tar.gz即可解压到当前文件来,并生成jdk1.8.0_212文件夹。

接下来配置环境变量,我们只为当前用户配置,打开~/.bashrc,在文件末尾添加如下配置:

export JAVA_HOME=/home/gerrit/jdk1.8.0_212
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

再执行sudo source ~/.bashrc更新环境变量。

可以运行java -version或者javac等命令进行验证。

3.下载并安装gerrit

下载地址,我下载的是当前最新版本gerrit-3.1.2-war。

gerrit在3.0版本后有重大更新,安装时可能会有些许不同。3.0之后数据库默认使用git来存储,所以必须要安装git。

sudo apt-get install git

将war包放在gerrit用户主目录下面,执行如下命令进行安装:

java -jar gerrit-3.1.2.war init -d review_site

后面有很多的安装选项,其中重要的是设置一下监听端口,验证方式和插件安装,插件的安装全部选y。

gerrit@ubuntu:~$ java -jar gerrit-3.1.2.war init -d review_site
Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore
[2020-02-02 13:46:20,103] [main] INFO  com.google.gerrit.server.config.GerritServerConfigProvider : No /home/gerrit/review_site/etc/gerrit.config; assuming defaults
*** Gerrit Code Review 3.1.2
*** 
*** Git Repositories
*** 
Location of Git repositories   [git]: GerritResource
*** Index
*** 
Type                           [lucene]: 
*** User Authentication
*** 
Authentication method          [openid/?]: http
Get username from custom HTTP header [y/N]? 
SSO logout URL                 : 
Enable signed push support     [y/N]? 
*** Review Labels
*** 
Install Verified label         [y/N]? 
*** Email Delivery
*** 
SMTP server hostname           [localhost]: 
SMTP server port               [(default)]: 
SMTP encryption                [none/?]: 
SMTP username                  : 
*** Container Process
*** 
Run as                         [gerrit]: 
Java runtime                   [/home/bianjb/jdk1.8.0_212/jre]: 
Copy gerrit-3.1.2.war to review_site/bin/gerrit.war [Y/n]? 
Copying gerrit-3.1.2.war to review_site/bin/gerrit.war
*** SSH Daemon
*** 
Listen on address              [*]: 8181
Listen on port                 [29418]: 
Generating SSH host key ... rsa... ed25519... ecdsa 256... ecdsa 384... ecdsa 521... done
*** HTTP Daemon
*** 
Behind reverse proxy           [y/N]? 
Use SSL (https://)             [y/N]? 
Listen on address              [*]: 8181^Cgerrit@ubuntu:~$ ^C
gerrit@ubuntu:~$ clear
gerrit@ubuntu:~$ java -jar gerrit-3.1.2.war init -d review_site
Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore
[2020-02-02 13:47:28,872] [main] INFO  com.google.gerrit.server.config.GerritServerConfigProvider : No /home/gerrit/review_site/etc/gerrit.config; assuming defaults
*** Gerrit Code Review 3.1.2
*** 
*** Git Repositories
*** 
Location of Git repositories   [git]: GerritResource
*** Index
*** 
Type                           [lucene]: 
*** User Authentication
*** 
Authentication method          [openid/?]: http
Get username from custom HTTP header [y/N]? 
SSO logout URL                 : 
Enable signed push support     [y/N]? 
*** Review Labels
*** 
Install Verified label         [y/N]? 
*** Email Delivery
*** 
SMTP server hostname           [localhost]: 
SMTP server port               [(default)]: 
SMTP encryption                [none/?]: 
SMTP username                  : 
*** Container Process
*** 
Run as                         [gerrit]: 
Java runtime                   [/home/bianjb/jdk1.8.0_212/jre]: 
Upgrade review_site/bin/gerrit.war [Y/n]? 
Copying gerrit-3.1.2.war to review_site/bin/gerrit.war
*** SSH Daemon
*** 
Listen on address              [*]: 
Listen on port                 [29418]: 
*** HTTP Daemon
*** 
Behind reverse proxy           [y/N]? 
Use SSL (https://)             [y/N]? 
Listen on address              [*]: 
Listen on port                 [8787]: 
Canonical URL                  [http://ubuntu:8787/]: 
*** Cache
*** 
Delete cache file /home/gerrit/review_site/cache/pure_revert.lock.db [y/N]? 
Delete cache file /home/gerrit/review_site/cache/web_sessions.lock.db [y/N]? 
Delete cache file /home/gerrit/review_site/cache/git_tags.lock.db [y/N]? 
Delete cache file /home/gerrit/review_site/cache/change_kind.lock.db [y/N]? 
Delete cache file /home/gerrit/review_site/cache/diff.lock.db [y/N]? 
Delete cache file /home/gerrit/review_site/cache/diff_summary.lock.db [y/N]? 
Delete cache file /home/gerrit/review_site/cache/conflicts.lock.db [y/N]? 
Delete cache file /home/gerrit/review_site/cache/mergeability.lock.db [y/N]? 
Delete cache file /home/gerrit/review_site/cache/oauth_tokens.lock.db [y/N]? 
Delete cache file /home/gerrit/review_site/cache/diff_intraline.lock.db [y/N]? 
*** Plugins
*** 
Installing plugins.
Install plugin codemirror-editor version v3.1.2 [y/N]? y
Installed codemirror-editor v3.1.2
Install plugin commit-message-length-validator version v3.1.2 [y/N]? y
Installed commit-message-length-validator v3.1.2
Install plugin delete-project version v3.1.2 [y/N]? y
Installed delete-project v3.1.2
Install plugin download-commands version v3.1.2 [y/N]? y
Installed download-commands v3.1.2
Install plugin gitiles version v3.1.2 [y/N]? y
Installed gitiles v3.1.2
Install plugin hooks version v3.1.2 [y/N]? y
Installed hooks v3.1.2
Install plugin plugin-manager version v3.1.2 [y/N]? y
Installed plugin-manager v3.1.2
Install plugin replication version v3.1.2 [y/N]? y
Installed replication v3.1.2
Install plugin reviewnotes version v3.1.2 [y/N]? y
Installed reviewnotes v3.1.2
Install plugin singleusergroup version v3.1.2 [y/N]? y
Installed singleusergroup v3.1.2
Install plugin webhooks version v3.1.2 [y/N]? y
Installed webhooks v3.1.2
Initializing plugins.
Initialized /home/gerrit/review_site
Reindexing projects:    100% (2/2) with: reindex --site-path review_site --threads 1 --index projects
Reindexed 2 documents in projects index in 0.2s (8.6/s)

最后启动gerrit

review_site/bin/gerrit.sh start

有时候可以启动不成功,这时就需要查看错误日志,位于~/review_site/logs/目录下面,分析日志来解决启动时遇到的错误。

启动成功后就可以通过浏览器访问了,gerrit的监听是8787端口,所以在同一网络内访问http://192.168.111.129:8787,其中192.168.111.129是我的机器的内网IP,如果安装没有问题就能看到如下界面:

3.png

image.png


提示身份验证错误,这是因为gerrit强制使用反向代理来进行访问,所以还需要配置反向代理。

4.配置反向代理

反向代理大部分使用nginx或者apache2,这里使用的是nginx。

首先安装nginx

sudo apt-get install nginx

再配置反向代理,打开/etc/nginx/nginx.conf,在http结点下添加如下内容

server {
                listen *:81;
                server_name localhost;
                allow   all;
                deny    all;
                auth_basic "Welcomme to Gerrit Code Review Site!";
                auth_basic_user_file /home/gerrit/review_site/etc/gerrit.passwd;
                location / {
                   proxy_pass  http://127.0.0.1:8787;
                   proxy_set_header X-Forwarded-For $remote_addr;
                   proxy_set_header Host $host;
                }
        }

其中:

  • listen *:81 是代理端口,也就是访问gerrit时需要浏览器地址栏的8787改为81
  • auth_basic_user_file/home/gerrit/review_site/etc/gerrit.passwd是后面需要我们创建的身份验证文件
  • proxy_pass是被代理的地址,http://127.0.0.1:8787是本机的8787端口

保存后重新加载nginx配置

sudo nginx -s reload

5.创建用户名和密码

gerrit的第一个登录的用户是比较特殊的,具有特殊仅限。

使用htpasswd工具创建用户名和密码。

安装htpasswd工具

sudo apt-get install apache2-utils

创建用户admin,并设置密码:

htpasswd -c /home/gerrit/review_site/etc/gerrit.passwd admin

该命令会在/home/gerrit/review_site/etc下面创建gerrit.passwd文件,并把admin用户名和密码保存在里面。

这时要重启gerrit

review_site/bin/gerrit.sh restart

重启的时间较长,请耐心等待。

6.登录验证

在同一网络的其它机器上的浏览器中输出地址:http://192.168.111.129:81,这时正常情况下会弹出登录界面:

4.png

image.png


输出第5步中创建的用户admin和密码

登录成功后,就会出现gerrit的的界面了:

5.png

image.png

到这时就完成了gerrit的安装过程,当然这只是使用gerrit很简单的一小步,后面还有很多的配置要做,以及学习如何使用gerrit。


问题总结


安装过程可能并不顺利,因为每个人的情况不同,你的ubuntu系统中可能有其它程序影响商端口号,也会产生较多的问题,总之要有耐心的一个一个解决。

  1. nginx重启错误

gerrit@ubuntu:~$ sudo nginx -s reload
nginx: [error] open() "/run/nginx.pid" failed (2: No such file or directory)

解决方法:

gerrit@ubuntu:~$ sudo nginx -c /etc/nginx/nginx.conf 
gerrit@ubuntu:~$ sudo nginx -s reload


目录
相关文章
|
2月前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(五):18.04安装多版本CUDA
这篇博客文章介绍了在Ubuntu 18.04系统上如何安装和切换不同版本的CUDA,以及如何安装不同版本的cuDNN。
237 2
|
2月前
|
并行计算 PyTorch TensorFlow
Ubuntu安装笔记(一):安装显卡驱动、cuda/cudnn、Anaconda、Pytorch、Tensorflow、Opencv、Visdom、FFMPEG、卸载一些不必要的预装软件
这篇文章是关于如何在Ubuntu操作系统上安装显卡驱动、CUDA、CUDNN、Anaconda、PyTorch、TensorFlow、OpenCV、FFMPEG以及卸载不必要的预装软件的详细指南。
4873 3
|
3天前
|
Ubuntu Linux Docker
Ubuntu22.04上Docker的安装
通过以上详细的安装步骤和命令,您可以在Ubuntu 22.04系统上顺利安装
41 11
|
1月前
|
Ubuntu 开发工具 git
Ubuntu安装homebrew的完整教程
本文介绍了如何在没有公网的情况下安装 Homebrew。首先访问 Homebrew 官网,然后通过阿里云的镜像克隆安装脚本,并创建普通用户进行安装。接着修改 `install.sh` 文件指向国内镜像,执行安装命令。最后配置环境变量并更换 Homebrew 源为国内镜像,确保安装顺利。
235 50
|
26天前
|
Ubuntu
ubuntu和debian 的安装包dpkg管理命令对安装包进行安装,查询,卸载
Ubuntu dpkg 软件包管理命令概览:安装、卸载、查看和配置软件包。包括解决依赖、强制卸载、列出及过滤已安装包、查看包详情等操作。
53 10
|
28天前
|
Ubuntu API 开发工具
PSOPT在Ubuntu22.04下的安装
通过上述步骤,可以在Ubuntu 22.04下成功安装并配置PSOPT。PSOPT是一个功能强大的工具,适用于解决各种最优控制问题。确保在安装前满足系统要求,并仔细按照步骤操作,可以避免大多数常见问题。通过MATLAB与PSOPT的结合,您可以更高效地处理复杂的控制问题,并获得准确的解决方案。
31 5
|
29天前
|
Ubuntu 网络协议 关系型数据库
超聚变服务器2288H V6使用 iBMC 安装 Ubuntu Server 24.04 LTS及后续系统配置
【11月更文挑战第15天】本文档详细介绍了如何使用iBMC在超聚变服务器2288H V6上安装Ubuntu Server 24.04 LTS,包括连接iBMC管理口、登录iBMC管理界面、配置RAID、安装系统以及后续系统配置等步骤。
|
2月前
|
Ubuntu Linux 测试技术
Linux系统之Ubuntu安装cockpit管理工具
【10月更文挑战第13天】Linux系统之Ubuntu安装cockpit管理工具
209 4
Linux系统之Ubuntu安装cockpit管理工具
|
2月前
|
Ubuntu 应用服务中间件 nginx
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
本文是关于Ubuntu系统中使用ffmpeg 3.2.16源码编译OpenCV 3.4.0的安装笔记,包括安装ffmpeg、编译OpenCV、卸载OpenCV以及常见报错处理。
205 2
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
|
2月前
|
Ubuntu Linux C语言
Ubuntu安装笔记(二):ubuntu18.04编译安装opencv 3.4.0 opencv_contrib3.4.0
本文介绍了在Ubuntu 18.04系统上编译安装OpenCV 3.4.0及其扩展包opencv_contrib 3.4.0的详细步骤,包括下载源码、安装依赖、配置CMake和编译安装,以及常见问题的解决方法。
221 1
Ubuntu安装笔记(二):ubuntu18.04编译安装opencv 3.4.0 opencv_contrib3.4.0
下一篇
DataWorks