在redhat6上安装gitlab

由于公司需要搭建一个代码服务器,我当然选择了Git啦,不过如果只是安装Git的话,缺少了web界面去管理这个Git代码库,所以选择了Gitlab。不过Gitlab的官方安装指引只有ubuntu。我在ubuntu安装的时候没有遇到任何问题。不过在redhat6上安装就遇到较多的问题。所以在此记录一下,方便后人。讲真,为了安装这个代码服务器前前后后折腾了差不多成个星期,从成本效益来说,还不如去使用第三方的服务,例如,githut、bitbucket,或者国内的一些类似的服务商。还免维护。不过老板最终决定自己搭建。老细永远是对的。那就只能做。

由于文章我从markdown编辑器Mou copy过来的,可能在wordpress排版有点问题,大家将就看吧。

在github上找到一篇装教程 https://github.com/gitlabhq/gitlab-recipes/tree/master/install/centos

在安装前先看看注意事项。

注意事项:

 

  1. 由于redhat上没有设置yum源,所以除了说明文档上添加那些源之外,需要自己另外添加系统更新的源,这里使用163的CentOS6的镜像源。

 

# cd /etc/yum.repos.d/
# wget  http://mirrors.163.com/.help/CentOS6-Base-163.repo
# vi CentOS6-Base-163.repo 
编辑文件,把文件里面的$releasever全部替换为版本号,即6 最后保存。官方说明并没有说明需要修改$releasever,但是不修改就是不行,可能redhat和CentOS还是有区别吧。

 

  1. 由于源的nginx的版本好旧,会出问题,所以添加nginx源,更新到最新版本。目前使用的版本nginx version: nginx/1.4.6

 

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/rhel/6/$basearch/
gpgcheck=0
enabled=1

 

  1. 有可能出现安装libffi-devel包有问题,如果有问题请安装下边的源

 

#Name: RPMforge RPM Repository for Red Hat Enterprise 5 - dag
#URL: http://rpmforge.net/
[rpmforge]
name = Red Hat Enterprise $releasever - RPMforge.net - dag
#baseurl = http://apt.sw.be/redhat/el5/en/$basearch/dag
mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1

 

  1. 由于redhat的libz.so.1的库有问题,导致运行git会报错,需要更新到zlib-1.2.5.tar.gz包,执行去google搜索下载。根据下边操作更新到最新的包。

 

tar zxvf zlib-1.2.5.tar.gz 
cd zlib-1.2.5 
./configure 
make 
make install 
# 替换成最新版本 
cp /usr/local/lib/libz.so.1.2.5 /lib64/ 
rm -f libz.so.1 
cp -l libz.so.1.2.5 libz.so.1 

 

  1. 安装过程出下边的错误,不过没有处理,应该是说明文档安装失败。

 

Transaction Check Error:
  file /usr/share/man/man7/stappaths.7.gz from install of systemtap-devel-2.3-4.el6_5.x86_64 conflicts with file from package systemtap-server-1.4-6.el6.x86_64
  file /usr/share/man/man7/stappaths.7.gz from install of systemtap-client-2.3-4.el6_5.x86_64 conflicts with file from package systemtap-server-1.4-6.el6.x86_64
  file /usr/share/man/man7/stappaths.7.gz from install of systemtap-runtime-2.3-4.el6_5.x86_64 conflicts with file from package systemtap-server-1.4-6.el6.x86_64

 

  1. 最好Nginx的配置,如果不使用https的话按照如下配置

 

server {
    listen *:80 default_server;
    server_name gitlab.donview;
    server_tokens off;
    root /home/git/gitlab/public;
# Set value of client_max_body_size to at least the value of git.max_size in gitlab.yml 这个需要在gitlab.yml上做相应修改。
    client_max_body_size 500m;

    # individual nginx logs for this gitlab vhost
    access_log  /var/log/nginx/gitlab_access.log;
    error_log   /var/log/nginx/gitlab_error.log;

    location / {
        # serve static files from defined root folder;.
        # @gitlab is a named location for the upstream fallback, see below
        try_files $uri $uri/index.html $uri.html @gitlab;
    }

    # if a file, which is not found in the root folder is requested,
    # then the proxy pass the request to the upsteam (gitlab unicorn)
    location @gitlab {
        proxy_read_timeout    300; # https://github.com/gitlabhq/gitlabhq/issues/694
        proxy_connect_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694
        proxy_redirect        off;

        proxy_set_header  X-Forwarded-Proto http;
        proxy_set_header  X-Forwarded-Ssl   off;
        proxy_set_header  Host              $http_host;
        proxy_set_header  X-Real-IP         $remote_addr;

        proxy_pass http://gitlab;
    }
}

 

  1. 我们安装的时候是选择了mysql和nginx。
  2. 如果需要安装https的话,配置证书步骤。

 

$ cd /etc/nginx/sites-available
$ su
$ openssl genrsa -des3 -out server.key 2048
$ openssl req -new -key server.key -out server.csr
$ cp server.key server.key.org
$ openssl rsa -in server.key.org -out server.key
$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

 

  1. 由于git会验证https的证书,自签证书会有问题。需要客户端做设置。参考stackouverflow的问题。

 

git config http.sslVerify false

 

 

git -c http.sslVerify=false clone https://domain.com/path/to/git

 

 

2014年11月26日更新:其实直接安装在主机上不是一个好方法,应该使用docker进行安装,或者直接下载一些制作好的docker.请参考这个网站http://www.damagehead.com/docker-gitlab/

 

《在redhat6上安装gitlab》有一个想法

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注