Ubuntu下安装Gerrit
3681 点击·0 回帖
![]() | ![]() | |
![]() | Ubuntu下安装Gerrit 目标 配置Gerrit使用mysql数据库(原因:本人比较熟悉mysql) 使用http授权模式,使用apache反向代理。 SMTP使用163的个人邮箱 软件版本 Ubuntu 12.04 Gerrit 2.4.1 Apache 2.2.22 Mysql 5.5.24 下面好戏开始了 相信各位安装mysql和apache,都能搞定,sudo apt-get,完了。 配置数据库: CREATE USER 'gerrit2'@'localhost' IDENTIFIED BY 'secret'; CREATE DATABASE reviewdb; ALTER DATABASE reviewdb charset=latin1; GRANT ALL ON reviewdb.* TO 'gerrit2'@'localhost'; FLUSH PRIVILEGES; 这是从官方文档得到的代码,其中我没有使用alter database reviewdb charset=latin1;这条语句。 网上有资料说utf8会无法安装,但俺没遇到。 但gerrit对中文的支持确实不好,所以大家尽量用英文吧。 安装Gerrit java -jar gerrit-$version-rc1.war init -d review_site 然后一路回车就行,本人比较喜欢自己修改配置文件。 vi review_sit/etc/gerrit.config [gerrit] basePath = git canonicalwebUrl = 192.168.1.254:8081 [database] type = MYSQL hostname = localhost database = reviewdb username = gerrit2 [auth] type = HTTP [sendemail] smtpServer = smtp.163.com smtpUser = wangconglin87@163.com from = wangconglin87@163.com [container] user = gerrit2 javaHome = /opt/jdk1.7.0_05/jre [sshd] listenAddress = 192.168.1.254:29418 [httpd] listenUrl = proxy-http://192.168.1.254:8081 [cache] directory = cache 然后vi review_sit/etc/gerrit.config,下面的mima代表你的密码 [database] password = mima //数据库用户gerrit2的密码 [sendemail] smtpPass = mima //你邮箱的密码 然后配置apche 将/etc/apache2/sites-enabled目录下的文件都删除,(我是全新安装的)。 为什么删除,因为当我安装资料配置好以后,出现有时候能正常运行,有时候不能运行。让我郁闷了很长时间。这里面有一个默认的虚拟主机。 然后再/etc/apache2/sites-enabled目录下,vi proxy-gerrit,然后输入: <VirtualHost *:80> ServerName a.wangconglin.cn 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/gerrit2/passwords </Location> ProxyPass / http://192.168.1.254:8081/ ProxyPassReverse / http://192.168.1.254:8081/ </VirtualHost> 上面的AuthUserFile /home/gerrit2/passwords,生成示例命令如下: htpassword /home/gerrit2/passwords [username] 运行Gerrit: /home/gerrit2/review_site/bin/gerrit.sh start -d /home/gerrit2/review_site 使用git push前,gerrit不允许直接覆盖git代码库中的任何分支,而是将变更推送到另一个refspce中。 git config remote.origin.push refs/heads/*:refs/for/* git push origin 作者 王丛琳 | |
![]() | ![]() |