CentOS上安装GitLab

description: 之前在公司因为工作需要,需要搭建一个基于的git的项目管理平台,最好能够比较贴近GitHub的管理方式,从网上找到了GitLab这个开源项目,无论是从界面上还是从功能上都还不错,结果公司的服务器是win的…

之前在公司因为工作需要,需要搭建一个基于的git的项目管理平台,最好能够比较贴近GitHub的管理方式,从网上找到了GitLab这个开源项目,无论是从界面上还是从功能上都还不错,结果公司的服务器是win的…就在自己的VPS上搭建了,我的服务器系统版本是Ubuntu 10.04 lts的,很方便地就升级到了12.04 lts,现在的Ubuntu确实很好用,感觉各方面做的都好了很多。不过按照官方的文档搭建GitLab的时候还是遇到了一些问题,主要涉及到的都是软件版本、文件权限等比较蛋疼的配置问题,,当然这也和我自己没怎么做过后台有关。这次是在项目组的服务器上搭建GitLab,服务器的系统版本是CentOS,安装的过程和Ubuntu大同小异,这里本着补充后台知识的角度写这篇教程,也希望给别人带来方便(Ubuntu的就直接参照官方的吧,官方有个CentOS的一键安装脚本,不过你要是敢用就用吧)。

安装EPEL和依赖库

首先安装第三方的软件库EPEL和编译的依赖库,EPEL直接安装RPM包就可以了。

¥ rpm -ivh $ yum -y update$ yum -y install gcc gcc-c++ make autoconf libyaml-devel gdbm-devel ncurses-devel openssl-devel zlib-devel readline-devel curl-devel expat-devel gettext-devel tk-devel libxml2-devel libffi-devel libxslt-devel libicu-devel sendmail patch libyaml* pcre-devel sqlite-devel vimPython2.7+$ mkdir /tmp/gitlab && cd /tmp/gitlab$ curl –progress | tar xvf$ cd Python-2.7.5$ ./configure –prefix=/usr/local$ make && make install

安装好了以后需要注意的就是使用ln命令来创建连接,这样系统默认的PATH寻址的时候就能找到最新的版本(默认路径/usr/local/bin)。

$ sudo ln -s /usr/local/bin/python2.7 /usr/local/bin/pythonRuby2.0$ cd /tmp/gitlab$ curl –progress | tar xz$ cd ruby-2.0.0-p247$ ./configure$ make$ make install

ruby2.0已经内置了gem(管理Ruby库和程序的标准包),所以只需要安装bundler(图像处理的一个源码库,这个不知道是干嘛用的)。

$ gem install bundler

如果你出现了Network Connected Error之类的网络问题(你懂得),rubygems.org存放在Amazon S3上的资源文件会间歇性地连接失败,() 这个镜像源还是挺不错的,把GemFile中的地址修改为这个即可,然后继续添加连接。

$ ln -s /usr/local/bin/ruby /usr/bin/ruby$ ln -s /usr/local/bin/gem /usr/bin/gem$ ln -s /usr/local/bin/bundle /usr/bin/bundleGit和Gitolite

如果系统的已经安装Git,一定要保证版本大于1.7.10,GitHub和许多Git服务依赖的git版本都不能低于这个版本,但是CentOS 6.4默认的epel安装的版本偏偏是低于这个版本的,这里可以通过rpmforge源(和EPEL一样也是个第三方YUM源)的二进制包来更新。

// 安装rpmforge源$ wget ‘http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm’$ rpm –import $ rpm -i ‘http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm’$ yum clean all// change the enabled=0 flag to enabled=1 in the section labelled [rpmforge-extras].$ cd /etc/yum.repos.d$ vim (or whatever) rpmforge.repo// 安装新版本Git$ yum update$ yum provides git$ yum install git-1.7.11.3-1.el6.rfx.x86_64$ yum -y install git-all gitoliteMySql和Redis

GitLab支持MySQL和PostgreSQL,而且还必须安装Redis(有点悔恨当年数据库的课没好好学,然后现在有时还得自学)。

$ yum -y install mysql mysql-devel mysql-server redis$ service mysqld start$ mysql -u root$ mysql> CREATE USER ‘gitlab’@’localhost’ IDENTIFIED BY ‘gitlab’;$ mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;$ mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO ‘gitlab’@’localhost’;$ mysql> \q$ service redis startNginx

GtiLab当然也支持Apache,但毕竟Nginx的性能要好太多了(据相关测试,高并发连接的情况下,Nginx的性能能胜过10倍的Apache)。

$ yum -y install nginx $ service nginx start

至此,主要的软件包都已经安装完毕,下面就要进行配置了。

GitLab Uesr$ useradd -c ‘GitLab’ git$ passwd -l git$ su git

后面就直接切换到git账户下操作,可以省去文件权限的一些问题,如果还是出出现了Permission的一些问题,直接使用chown命令进行修改就可以了。

GitLab Shell$ cd /home/git$ git clone https://github.com/gitlabhq/gitlab-shell.git$ cd gitlab-shell

通过git tag来查看最新的版本并切换

$ git checkout v1.7.9

修改配置文件,添加自己domain后安装即可。

$ vi config.yml$ ./bin/installGitLab$ cd /home/git$ git clone https://github.com/gitlabhq/gitlabhq.git gitlab$ cd /home/git/gitlab$ git checkout 6-3-stable$ cd /home/git/gitlab$ cp config.yml{.example,}$ vi config/gitlab.yml$ mkdir tmp/pids/$ mkdir tmp/sockets/$ chown -R git log/$ chown -R git tmp/$ chmod -R u+rwX log/$ chmod -R u+rwX tmp/$ chmod -R u+rwX tmp/pids/$ chmod -R u+rwX tmp/sockets/

创建satellites目录,保存各个用户的仓库。

$ mkdir /home/git/gitlab-satellites$ mkdir public/uploads$ chmod -R u+rwX public/uploads

修改unicorn配置文件:

$ cd /home/git/gitlab$ cp config/unicorn.rb{.example,}$ vi config/unicorn.rb

设置git的全局配置参数:

$ git config –global user.name “GitLab”$ git config –global user.email “gitlab@localhost”$ git config –global core.autocrlf input

设置GitLab的数据库:

$ cp config/database.yml{.mysql,}$ vi config/database.yml$ chmod o-rwx config/database.yml不知道来年,会不会开出一地的记忆和忧愁。

CentOS上安装GitLab

相关文章:

你感兴趣的文章:

标签云: