最新消息:

CentOS 下搭建 Git WEB管理平台

centos admin 6796浏览 0评论

Ruby的安装
因为CentOS源里的ruby版本太低,我们直接下载源码进行安装

安装之前确认系统中已经安装了libyaml

没有的话直接下载源码安装

wget http://pyyaml.org/download/libyaml/yaml-0.1.tar.gz
tar zxvf yaml-0.1.tar.gz
cd yaml-0.1
./configure
make && make install
下载ruby源码

http://ruby.taobao.org/mirrors/ruby/ruby-1.9-stable.tar.gz

安装

tar zxvf ruby-1.9-stable.tar.gz
cd ruby-1.9-xxxx/
./configure
make && make install
结束

一般情况下安装会很顺利

Gitolite的安装
创建专属用户

useradd -d /home/git -m git
然后用git身份登录

su git
进入到HOME目录

cd ~
下载源码

直接从Github进行clone

git clone git://github.com/sitaramc/gitolite
进行安装

mkdir -p $HOME/bin
gitolite/install -to $HOME/bin
如果提示Can’t locate Time/HiRes.pm in @INC的话执行下面的命令进行类库安装

perl -MCPAN -e shell
install Time::HiRes
如果提示Can’t locate CPAN.pm in @INC的话先使用yum进行安装yum install perl-CPAN

将bin加入到PATH变量中

编辑~/.profile添加如下内容

export PATH=$PATH:/home/git/bin
GitLab的安装
创建专属用户

useradd -d /home/gitlab -m -g git gitlab
切换至gitlab并进入HOME目录

依赖的Gems (root身份安装)

gem install resque
gem install charlock_holmes –version ‘0.6.9’
charlock_holmes 会依赖libicu 可以直接yum安装yum install libicu-devel

如果提示cannot load such file — zlib需要安装zlib库

yum install zlib-devel
# 安装ruby自带的zlib.so
cd ruby-1.9-xxxx/ext/zlib
ruby ./extconf.rb
make && make install
下载源码

git clone git://github.com/gitlabhq/gitlabhq server
站点信息配置

cp server/config/gitlab.yml.example server/config/gitlab.yml
cp server/config/unicorn.rb.example server/config/unicorn.rb
因为我们释放到了server目录下,需要修改unicorn.rb将第一行的默认目录修改下

创建satellites目录

mkdir gitlab-satellites
数据库配置

cp server/config/database.yml.mysql server/config/database.yml
Redis配置(一般不需要)

cp server/config/resque.yml.example server/config/resque.yml
进行产品发布

cd ~/server
bundle install –deployment –without development test postgres
找不到bundle的时候可以执行gem install bundler安装

配置Git

git config –global user.name “GitLab”
git config –global user.email “gitlab@localhost”
配置GitLab的Hooks

# root 权限运行
mkdir -p /home/git/.gitolite/hooks/common
cp /home/gitlab/server/lib/hooks/post-receive /home/git/.gitolite/hooks/common/post-receive
chown git:git -R /home/git/.gitolite
创建用户(gitlab)的SSH公匙并导入到gitolite中

执行前确定/home/git/.gitolite/logs目录存在,否则导入key时会报错

FATAL: errors found but logfile could not be created
FATAL: /home/git/.gitolite/logs/gitolite-2013-02.log: No such file or directory
FATAL: cli gitolite setup -pk /home/git/gitlab.pub
su gitlab
ssh-keygen -t rsa
cp ~/.ssh/id_rsa.pub /home/git/gitlab.pub
chmod 0444 /home/git/gitlab.pub
su git
~/bin/gitolite setup -pk ~/gitlab.pub
关于传递了公钥后依然会要求输入密码的情况说明/ssh-keygen后自动验证无效

如果你无法自动验证的话先尝试将/home/git目录权限设置为755

如果正常了的话就不用看下面这两条了

使用gitolite的setup命令导入key的时候会在~/.ssh/authorized_keys中添加自定义的command命令,导致/var/log/secure中查看不到ssh自动验证的错误信息(删除后再尝试即可)

执行上面的步骤后如果在secure日志中发现Authentication refused: bad ownership or modes for directory /home/git的话需要把git目录权限设置为755

初始化数据库

执行下面的命令之前需要配置了正确的数据库信息并开启了Redis
需要/home/git目录权限为770
需要/home/git/repositories目录权限为770(没有的话新创建一个)
执行

cd ~/server
bundle exec rake gitlab:setup RAILS_ENV=production
TMD终于好了,让我们来检查下gitlab的状态吧

cd ~/server
# 查看环境信息
bundle exec rake gitlab:env:info RAILS_ENV=production
# 检查组件依赖(全绿色的话就过了)
bundle exec rake gitlab:check RAILS_ENV=production
添加管理脚本

从https://raw.github.com/gitlabhq/gitlab-recipes/4-1-stable/init.d/gitlab下载脚本到/etc/init.d/gitlab

然后chmod +x /etc/init.d/gitlab给上执行权限

最后chkconfig –add gitlab加到service列表中,然后chkconfig gitlab on开启自启动

安装结束
使用service gitlab start即可启动gitlab进程了

如何访问gitlab的web页面?

gitlab默认是使用的unix socket访问,需要nginx进行转发,配置文件在这里https://raw.github.com/gitlabhq/gitlab-recipes/4-1-stable/nginx/gitlab

不过我们可以修改unicorn.rb来使用TCP方式访问

修改server/config/unicorn.rb找到listen字段将后面的内容修改成

listen 80
即可

访问web后默认帐号为admin@local.host密码为5iveL!fe

一些错误的解决方法
如果/home/gitlab/server/log/githost.log中出现error

ERROR -> Gitolite error -> error: cannot run hooks/post-receive: No such file or directory
并且切换到git用户后执行env -i redis-cli报错

解决方法

ln -s /usr/local/bin/redis-cli /usr/bin/
ERROR -> Gitolite error -> remote: FATAL: git config ‘core.sharedRepository’ not allowed
解决方法

编辑/home/git/.gitolite.rc找到GIT_CONFIG_KEYS将后面的内容修改成’.*’,修改后为GIT_CONFIG_KEYS => ‘.*’

转载请注明:爱开源 » CentOS 下搭建 Git WEB管理平台

您必须 登录 才能发表评论!