2、(挪至第7步)
3、安装java 运行环境,大概需要100M的内容:sudo apt-get install openjdk-6-jre-headless
4、安装邮件服务:postfixsudo apt-get install postfix
注意,安装过程中会提示输入主机名,gemfield此处输入的是 domain_name。
5、安装git服务sudo aptitude install git-core git-doc
6、创建gerrit用户:
sudo adduser gerrit
sudo su gerrit
cd ~
7、下载gerrit包,这次编辑时gerrit的版本是2.8.0(最新版本)
gerrit@CivilNet:~$ wget http://gerrit-releases.storage.googleapis.com/gerrit-2.8.war
--2014-01-15 10:30:33-- http://gerrit-releases.storage.googleapis.com/gerrit-2.8.war
Resolving gerrit-releases.storage.googleapis.com (gerrit-releases.storage.googleapis.com)... 74.125.128.132, 2404:6800:4005:c00::84
Connecting to gerrit-releases.storage.googleapis.com (gerrit-releases.storage.googleapis.com) 74.125.128.132 :80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 35675319 (34M) [binary/octet-stream]
Saving to: `gerrit-2.8.war'
100%[======================================================================================================================================================>] 35,675,319 10.6M/s in 3.4s
2014-01-15 10:30:37 (10.1 MB/s) - `gerrit-2.8.war' saved [35675319/35675319]
8、安装gerrit:
java -jar gerrit-2.8.war init -d review_site
9、安装过程中会出现交互式的提问,除非gemfield本文明确指定,否则都是默认值。Create ‘/home/gerrit/review_site’ [Y/n]? y
Location of Git repositories [git]: 回车
Database server type [H2/?]: 回车
Authentication method [OPENID/?]: http 回车
SMTP server hostname [localhost]: 回车
SMTP server port [(default)]: 回车
SMTP encryption [NONE/?]: 回车
SMTP username : gemfield
gemfield’s password:
confirm password:
Run as [gerrit]:回车
Java runtime [/usr/lib/jvm/java-6-openjdk/jre]: 回车
Copy gerrit.war to /home/gerrit/review_site/bin/gerrit.war [Y/n]:y
Listen on address [*]: 回车
Listen on port [29418]: 回车
Gerrit Code Review is not shipped with Bouncy Castle Crypto v144If available, Gerrit can take advantage of featuresin the library, but will also function without it.Download and install it now [Y/n]? y
Behind reverse proxy [y/N]? y
Use SSL (https://) [y/N]? y
Listen on address [*]: 回车
Listen on port [8080]: 回车
Canonical URL [http://*:8080/]: http://domain_name/code/ 回车
10、配置完上面的步骤后,gerrit服务会自动启动。以后可以使用如下命令手工启动:/home/gerrit/review_site/bin/gerrit.sh start
11、通过如下步骤设置gerrit服务开机自启动:
sudo ln -snf /home/gerrit/review_site/bin/gerrit.sh /etc/init.d/gerrit.sh
sduo ln -snf /etc/init.d/gerrit.sh /etc/rc2.d/S90gerrit
sduo ln -snf /etc/init.d/gerrit.sh /etc/rc3.d/S90gerrit
服务自动启动脚本/etc/init.d/gerrit.sh需要通过/etc/default/gerritcodereview文件来提供一些配置。该文件的内容为:
GERRIT_SITE=/home/gerrit/review_site
NO_START=0
12、配置apache的反向代理:
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost on
Order deny,allow
Allow from all
ProxyPass /code/ http://domain_name:8080/
AuthType Basic
AuthName "CivilNet Code Review"
Require valid-user
AuthUserFile /home/gerrit/review_site/etc/gerrit.password
13、添加http认证用户(e.g. gemfield):
htpasswd -m /home/gerrit/review_site/etc/gerrit.password gemfield
New password:
Re-type new password:
14、可以通过浏览器访问 http://domain_name/code/ 来使用gerrit了。
15、第一个注册的人就是管理员哦,比如gemfield。
16、现在你也可以去 /home/gerrit/review_site/etc/gerrit.config文件中查看刚才的配置内容了。
补充:这样配置好的gerrit默认只有管理员有权限创建工程,这有点不方便,可以通过下面的方式更改。在 /home/gerrit/review_site/etc/gerrit.config文件中添加以下内容:
[repository "*"]
createGroup = Administrators
createGroup = Registered Users
ownerGroup = Registered Users
经过gemfield的上述步骤,gerrit服务就成功部署起来了,但是怎样在gerrit服务上工作,还得看gemfield的下一篇文章:《使用gerrit服务》
备注:在gerrit2.1版本时本文内容由Gemfield25.0 首先发布于CivilNet Blog. 在gerrit 2.5版本时有所更新。 现在最新的版本是gerrit 2.8 。
访问gerrit的h2数据库步骤:1、从 https://code.google.com/p/gerrit/downloads/list 页面下载gerrit的war包到某个目录
2、数据库准备,懒得设置用了默认的H2 DB
3、创建gerrit2用户,初始化
sudo adduser gerrit2
sudo su gerrit2
java -jar gerrit.war init -d /home/gerrit2/site
一些交互式提问,默认或自定义,同样懒得设置apache,认证用了 development_become_any_account 选项,反向代理没有;
设置完成就自动启动了~如果没有启动手动 ./site/bin/gerrit.sh start
4、创建标准 后台服务连接
sudo ln -snf `pwd`/site/bin/gerrit.sh /etc/init.d/gerrit.sh
sudo ln -snf ../init.d/gerrit.sh /etc/rc3.d/S110gerrit
sudo ln -snf ../init.d/gerrit.sh /etc/rc5.d/S110gerrit
5、登陆http://10.20.20.XX:9080,页面右上角点击become :
注册用户 fullname emailaddress name ssh公钥(.ssh/id_rsa.pub)设置保存,
设置保存后,在客户端验证一下,命令及输出如下:
[$name@$hostname ~]$ ssh -p 29418 $name@10.20.20.XX
****Welcome to Gerrit Code Review****
Hi $fullname, you have successfully connected over SSH.
Unfortunately, interactive shells are disabled.
To clone a hosted Git repository, use:
git clone ssh://$name@$hostName.$domainname:29418/REPOSITORY_NAME.git
Connection to 10.20.20.XX closed.
6、从gerrit服务器,clone代码工
git clone ssh://$name@10.20.20.XX:29418/$repoName.git
7、进入项目目录cd $repoName 安装hook钩子的目的是在提交信息中自动创建 'Change-Id:' 标签
scp -p -P 29418 $name@10.20.20.XX:hooks/commit-msg .git/hooks/
8、修改提交
9、push 到gerrit服务器
git push origin HEAD:refs/for/$branchName
#直接git push会失败,原因还不知道~~ ~~
10、push成功后web页面All->open和My->changes标签下面,就可以看到提交的修改了
11、web的review没有approve选项,需要在project的accecss中增加相应权限还有后面的verify权限也是类似 *** 作
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)