阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Centos 6.5上安装GitLab服务及问题解决

196次阅读
没有评论

共计 15159 个字符,预计需要花费 38 分钟才能阅读完成。

前言:

官方上面说并不推荐在 CentOS 上面安装 GitLab,无奈公司的服务器都是 CentOS 的系统。不过,好在经历了三天才算把 GitLab 搭建起来,查了 N 多参考教程,发现一个问题,并不是每个教程都是通用的、总会遇到某些未知的错误是其他作者没有碰到的,毕竟每台服务器的环境是不一样的,问题百出,很是让人很是头痛。

下面总结了自己在 CentOS 搭建 GitLab 的教程以及某些错误的解决办法,算是对自己的总结吧!或许那天就用到了 ……

——安装前准备工作

1)添加 epel 源
[root@Git ~]# mkdir /tmp/soft/
[root@Git ~]# cd /tmp/soft/
[root@Git soft]# wget http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
[root@Git soft]# rpm -ivh epel-release-6-8.noarch.rpm
warning: epel-release-6-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Preparing…                ########################################### [100%]
  1:epel-release          ########################################### [100%]

2)配置 epel 源
[epel]
name=Extra Packages for Enterprise Linux 6 – $basearch
#download.fedoraproject.org 域名已经失效
# 去掉 #号将 download.fedoraproject.org 变更为 dl.fedoraproject.org
baseurl=http://dl.fedoraproject.org/pub/epel/6/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

3)执行 yum makecache 更新

[root@Git soft]# yum makecache
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.ustc.edu.cn
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                                                                                        | 3.7 kB    00:00
base/group_gz                                                                                                                | 220 kB    00:00
base/filelists_db                                                                                                            | 5.9 MB    00:03
base/other_db                                                                                                                | 2.8 MB    00:01
epel                                                                                                                        | 4.4 kB    00:00
epel/group_gz                                                                                                                | 237 kB    00:05
epel/filelists_db                                                                                                            | 8.4 MB    05:56
epel/primary_db                                                                                                              | 6.1 MB    03:36
epel/other_db                                                                                                                | 3.6 MB    01:22
epel/updateinfo                                                                                                              | 780 kB    00:11
extras                                                                                                                      | 3.4 kB    00:00
extras/filelists_db                                                                                                          |  11 kB    00:00
extras/prestodelta                                                                                                          |  907 B    00:00
extras/other_db                                                                                                              | 5.8 kB    00:00
mariadb                                                                                                                      | 1.9 kB    00:00
mariadb/filelists_db                                                                                                        |  47 kB    00:01
mariadb/primary_db                                                                                                          |  15 kB    00:00
mariadb/other_db                                                                                                            | 1.2 kB    00:00
updates                                                                                                                      | 3.4 kB    00:00
updates/filelists_db                                                                                                        | 1.7 MB    00:01
updates/prestodelta                                                                                                          | 249 kB    00:00
updates/primary_db                                                                                                          | 2.6 MB    00:02
updates/other_db                                                                                                            |  21 MB    00:15
epel/pkgtags                                                                                                                | 1.0 MB    00:36
Metadata Cache Created

4)安装软件所需依赖包
[root@Git soft]# yum -y install readline readline-devel ncurses-devel gdbm-devel glibc-devel tcl-devel expat-devel db4-devel byacc sqlite-devel libyaml libyaml-devel libffi libffi-devel libxml2 libxml2-devel libxslt libxslt-devel libicu libicu-devel system-config-firewall-tui Python-devel redis wget crontabs logwatch logrotate perl-Time-HiRes git gettext-devel libel openssl-devel zlib-devel gcc gcc-c++ make autoconf readline-devel expat-devel gettext-devel tk-devel  libxml2-devel libffi-devel libxslt-devel libicu-devel python-pip sqlite-devel  patch libyaml* pcre-devel

——安装 Git Server

[root@Git soft]# yum -y install git perl-ExtUtils-MakeMaker
[root@Git soft]# git clone git://github.com/git/git
Initialized empty Git repository in /tmp/soft/git/.git/
remote: Counting objects: 171891, done.
remote: Compressing objects: 100% (46560/46560), done.
remote: Total 171891 (delta 123695), reused 171404 (delta 123322)
Receiving objects: 100% (171891/171891), 60.16 MiB | 571 KiB/s, done.
Resolving deltas: 100% (123695/123695), done.
[root@Git soft]# cd git/
[root@Git git]# git checkout v1.9.2
[root@Git git]# autoconf
[root@Git git]# make prefix=/usr/local/git all
[root@Git git]# make prefix=/usr/local/git install
[root@Git git]# yum erase git
[root@Git git]# ln -s /usr/local/git/bin/* /usr/bin/
[root@Git git]# git –version
git version 1.9.2            #表示安装成功
# 删除 git 安装包
[root@Git git]# cd ..
[root@Git soft]# rm -rf git/

——安装配置 ruby

1)下载 ruby
[root@Git soft]# wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.1.tar.gz

2)编译安装 ruby
[root@Git soft]# tar zfvx ruby-2.1.1.tar.gz
[root@Git soft]# cd ruby-2.1.1
[root@Git ruby-2.1.1]# ./configure
[root@Git ruby-2.1.1]# make && make install
# 安装 bundler 需要添加 rubygems 的国内镜像
[root@Git ruby-2.1.1]# gem sources –remove https://rubygems.org/
[root@Git ruby-2.1.1]# gem source -a http://ruby.taobao.org/
[root@Git ruby-2.1.1]# gem sources -l
*** CURRENT SOURCES ***
http://ruby.taobao.org/
[root@Git ruby-2.1.1]# gem install bundler
Fetching: bundler-1.6.2.gem (100%)
Successfully installed bundler-1.6.2
Parsing documentation for bundler-1.6.2
Installing ri documentation for bundler-1.6.2
Done installing documentation for bundler after 2 seconds
1 gem installed
[root@Git ruby-2.1.1]# ln -s /usr/local/bin/ruby /usr/bin/ruby
[root@Git ruby-2.1.1]# ln -s /usr/local/bin/gem /usr/bin/gem
[root@Git ruby-2.1.1]# ln -s /usr/local/bin/bundle /usr/bin/bundle

3)创建一个 Git 用户供 GitLab 使用

# 之前已经搭建过 Git Server 不需要再次创建 Git 用户
[root@Git ruby-2.1.1]# adduser –comment ‘GitLab’ git
[root@Git ruby-2.1.1]# passwd git
# 为了方便添加 git 用户拥有 root 权限 [sudoers 文件默认没有写权限需要强制保存:wq!]
[root@Git ruby-2.1.1]# vi /etc/sudoers
git    ALL=(ALL)      ALL
[root@Git ruby-2.1.1]# chmod -R 755 /home/git
[root@Git ruby-2.1.1]# vi /home/git/.bash_profile
export GIT_SSL_NO_VERIFY=1
[root@Git ruby-2.1.1]# source /home/git/.bash_profile
# 不添加变量的话使用 https 链接会报如下错误
fatal: unable to access ‘https://github.com/gitlabhq/grit.git/’: Peer certificate cannot be authenticated with known CA certificates

4)安装 GitLab 的 Shell

[root@Git git]# su – git
# 克隆 gitlab 的 shell
[git@Git ~]$ git clone https://gitlab.com/gitlab-org/gitlab-shell.git -b v1.8.0
正克隆到 ‘gitlab-shell’…
remote: Reusing existing pack: 1222, done.
remote: Total 1222 (delta 0), reused 0 (delta 0)
接收对象中: 100% (1222/1222), 218.70 KiB | 16.00 KiB/s, done.
处理 delta 中: 100% (620/620), done.
检查连接 … 完成。
[git@Git ~]$ cd gitlab-shell/
[git@Git gitlab-shell]$ cp config.yml.example config.yml
[git@Git gitlab-shell]$ vi config.yml
# 自己的 gitlab 域名
gitlab_url: “http://git.test.com/”
# 完成配置
[git@Git gitlab-shell]$ ./bin/install
mkdir -p /home/git/repositories: true
mkdir -p /home/git/.ssh: true
chmod 700 /home/git/.ssh: true
touch /home/git/.ssh/authorized_keys: true
chmod 600 /home/git/.ssh/authorized_keys: true
chmod -R ug+rwX,o-rwx /home/git/repositories: true
find /home/git/repositories -type d -print0 | xargs -0 chmod g+s: true

5)建立 gitlab 数据库并授权

[git@Git gitlab-shell]$ mysql -u root
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.36-MariaDB-wsrep MariaDB Server, wsrep_25.9.r3961
Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
MariaDB [(none)]> CREATE USER ‘gitlab’@’localhost’ IDENTIFIED BY ‘gitlab’;
Query OK, 0 rows affected (0.20 sec)
MariaDB [(none)]> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
Query OK, 1 row affected (0.11 sec)
MariaDB [(none)]> GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO ‘gitlab’@’localhost’;
Query OK, 0 rows affected (0.06 sec)
MariaDB [(none)]> quit
Bye

6)克隆 GitLab 源

[git@Git gitlab-shell]$ cd ..
[git@Git ~]$ git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 6-4-stable gitlab
正克隆到 ‘gitlab’…
remote: Reusing existing pack: 77202, done.
remote: Counting objects: 67, done.
remote: Compressing objects: 100% (65/65), done.
remote: Total 77269 (delta 25), reused 1 (delta 0)
接收对象中: 100% (77269/77269), 75.26 MiB | 241.00 KiB/s, done.
处理 delta 中: 100% (53687/53687), done.
[git@Git ~]$ cd gitlab
[git@Git gitlab]$ cp config/gitlab.yml.example config/gitlab.yml
[git@Git gitlab]$ vi config/gitlab.yml
## GitLab settings
gitlab:
## Web server settings
  host: git.test.com
  port: 80
  https: false
[git@Git gitlab]$ chown -R git log/
[git@Git gitlab]$ chown -R git tmp/
[git@Git gitlab]$ chmod -R u+rwX  log/
[git@Git gitlab]$ chmod -R u+rwX  tmp/
[git@Git gitlab]$ mkdir tmp/pids/
[git@Git gitlab]$ mkdir tmp/sockets/
[git@Git gitlab]$ chmod -R u+rwX  tmp/pids/
[git@Git gitlab]$ chmod -R u+rwX  tmp/sockets/
[git@Git gitlab]$ mkdir public/uploads
[git@Git gitlab]$ chmod -R u+rwX  public/uploads
[git@Git gitlab]$ cp config/unicorn.rb.example config/unicorn.rb
[git@Git gitlab]$ cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb
[git@Git gitlab]$ git config –global user.name “GitLab”
[git@Git gitlab]$ git config –global user.email “gitlab@localhost”
[git@Git gitlab]$ git config –global core.autocrlf input

7)配置 gitlab 数据库

[git@Git gitlab]$ cp config/database.yml.mysql config/database.yml
[git@Git gitlab]$ vi config/database.yml
production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: gitlabhq_production
  pool: 5
  username: gitlab
  password: “gitlab”
  # host: localhost
  # socket: /tmp/mysql.sock

8)安装 gems
[git@Git gitlab]$sudo gem install charlock_holmes –version ‘0.6.9.4’
Fetching: charlock_holmes-0.6.9.4.gem (100%)
Building native extensions.  This could take a while…
Successfully installed charlock_holmes-0.6.9.4
Parsing documentation for charlock_holmes-0.6.9.4
Installing ri documentation for charlock_holmes-0.6.9.4
Done installing documentation for charlock_holmes after 0 seconds
1 gem installed
[git@Git gitlab]$ vi Gemfile
source “https://rubygems.org” 改为 source “http://rubygems.org”
[git@Git gitlab]$ bundle install –deployment –without development test postgres
Fetching source index from http://rubygems.org/
Fetching https://github.com/gitlabhq/grit.git
Could not find modernizr-2.6.2 in any of the sources
# 出现错误:Could not find modernizr-2.6.2 in any of the sources
# 解决办法:
[git@Git gitlab]$ vi Gemfile
第 114 行  gem “modernizr”,        “2.6.2”
更改改为:
第 114 行  gem “modernizr-rails”,  “2.7.1”
[git@Git gitlab]$ vi Gemfile.lock
第 252 行    modernizr (2.6.2)
更改改为:
第 252 行    modernizr-rails (2.7.1)
第 523 行  modernizr (= 2.6.2)
更改改为:
第 523 行  modernizr-rails (= 2.7.1)
# 重新执行:
[git@Git gitlab]$ bundle install –deployment –without development test postgres puma aws

9)启动 redis

[git@Git gitlab]$ sudo /etc/init.d/redis start
启动:[确定]
[git@Git gitlab]$ sudo chkconfig redis on

10)对数据库进行初始化
[git@Git gitlab]$ bundle exec rake gitlab:setup RAILS_ENV=production –verbose
This will create the necessary database tables and seed the database.
You will lose any previous data stored in the database.
Do you want to continue (yes/no)? yes
# 最后初始化成功后会获得账号和密码
Administrator account created:
login………admin@local.host
password……5iveL!fe

11)检查 GitLab 及其环境的配置是否正确
[git@Git gitlab]$ bundle exec rake gitlab:env:info RAILS_ENV=production
System information
System:        CentOS release 6.5 (Final)
Current User:  git
Using RVM:      no
Ruby Version:  2.1.1p76
Gem Version:    2.2.2
Bundler Version:1.6.2
Rake Version:  10.1.0
GitLab information
Version:        6.4.3
Revision:      3173626
Directory:      /home/git/gitlab
DB Adapter:    mysql2
URL:            http://git.yingtao.com
HTTP Clone URL: http://git.yingtao.com/some-project.git
SSH Clone URL:  git@git.yingtao.com:some-project.git
Using LDAP:    no
Using Omniauth: no
GitLab Shell
Version:        1.9.3
Repositories:  /home/git/repositories/
Hooks:          /home/git/gitlab-shell/hooks/
Git:            /usr/bin/git
[git@Git gitlab]$ bundle exec rake sidekiq:start RAILS_ENV=production
rake aborted!
SIGTERM
/home/git/gitlab/lib/tasks/sidekiq.rake:9:in `system’
/home/git/gitlab/lib/tasks/sidekiq.rake:9:in `block (2 levels) in <top (required)>’
Tasks: TOP => sidekiq:start
(See full trace by running task with –trace)
[git@Git gitlab]$ bundle exec rake gitlab:check RAILS_ENV=production
Checking Environment …
Git configured for git user? … yes
Has python2? … yes
python2 is supported version? … yes
Checking Environment … Finished
Checking GitLab Shell …
GitLab Shell version >= 1.7.9 ? … OK (1.9.3)
Repo base directory exists? … yes
Repo base directory is a symlink? … no
Repo base owned by git:git? … yes
Repo base access is drwxrws—? … yes
update hook up-to-date? … yes
update hooks in repos are links: … can’t check, you have no projects
Running /home/git/gitlab-shell/bin/check
Check GitLab API access: OK
Check directories and files:
        /home/git/repositories: OK
        /home/git/.ssh/authorized_keys: OK
Test redis-cli executable: redis-cli 2.4.10
Send ping to redis server: PONG
gitlab-shell self-check successful
Checking GitLab Shell … Finished
Checking Sidekiq …
Running? … yes
Number of Sidekiq processes … 1
Checking Sidekiq … Finished
Checking LDAP …
LDAP is disabled in config/gitlab.yml
Checking LDAP … Finished
Checking GitLab …
Database config exists? … yes
Database is SQLite … no
All migrations up? … yes
GitLab config exists? … yes
GitLab config outdated? … no
Log directory writable? … yes
Tmp directory writable? … yes
Init script exists? … yes
Init script up-to-date? … no
  Try fixing it:
  Redownload the init script
  For more information see:
  doc/install/installation.md in section “Install Init Script”
  Please fix the error above and rerun the checks.
  #原文说可以忽略上面的错误,不影响使用
projects have namespace: … can’t check, you have no projects
Projects have satellites? … can’t check, you have no projects
Redis version >= 2.0.0? … yes
Your git bin path is “/usr/bin/git”
Git version >= 1.7.10 ? … yes (1.9.2)
Checking GitLab … Finished

11)下载启动脚本

[git@Git gitlab]$ sudo wget https://raw.github.com/gitlabhq/gitlab-recipes/master/init/sysvinit/centos/gitlab-unicorn -P /etc/init.d/
[git@Git gitlab]$ sudo mv /etc/init.d/gitlab-unicorn /etc/init.d/gitlab
[git@Git gitlab]$ sudo chmod +x /etc/init.d/gitlab
[git@Git gitlab]$ sudo chkconfig –add gitlab
[git@Git gitlab]$ sudo chkconfig gitlab on
[git@Git gitlab]$ sudo /etc/init.d/gitlab start

12)复制配置文件 [这里使用 nginx 做为 WEB 服务]
[git@Git gitlab]$ cp lib/support/nginx/gitlab /usr/local/nginx/conf/conf.d/
[git@Git gitlab]$ cd /usr/local/nginx/conf/conf.d/
[git@Git gitlab]$ sudo chown -R git:git .
[git@Git conf.d]$ cp gitlab gitlab.conf
[git@Git conf.d]$ vi gitlab.conf
upstream gitlab {
  server unix:/home/git/gitlab/tmp/sockets/gitlab.socket;
}
server {
  listen *:80 default_server;        # e.g., listen 192.168.1.1:80; In most cases *:80 is a good idea
  server_name git.test.com;    # e.g., server_name source.example.com;
  server_tokens off;    # don’t show the version number, a security best practice
  root /home/git/gitlab/public;
  client_max_body_size 5m;
  access_log  logs/gitlab_access.log;
  error_log  logs/gitlab_error.log;
  location / {
    try_files $uri $uri/index.html $uri.html @gitlab;
  }
  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 $scheme;
    proxy_set_header  Host              $http_host;
    proxy_set_header  X-Real-IP        $remote_addr;
    proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
    proxy_pass http://gitlab;
  }
}
[git@Git conf.d]$ sudo service nginx restart

13)拉取 GitLab 静态文件
[git@Git conf.d]$ cd /home/git/gitlab
[git@Git gitlab]$ bundle exec rake assets:precompile RAILS_ENV=production
[git@Git gitlab]$ sudo service gitlab restart

14)访问测试

初始管理员帐号和密码为:
admin@local.host
5iveL!fe

1)访问 http://IP 如果配置正常会显示如下页面:

Centos 6.5 上安装 GitLab 服务及问题解决

2)输入默认的登陆账号和密码,会提示你修改默认密码:

Centos 6.5 上安装 GitLab 服务及问题解决

3)密码修改后,会重新跳回到登陆界面:

Centos 6.5 上安装 GitLab 服务及问题解决

4)重新输入登陆账号和新密码,登陆成功后显示如下:

Centos 6.5 上安装 GitLab 服务及问题解决

在 Ubuntu 12.04 上安装 GitLab http://www.linuxidc.com/Linux/2012-12/75249.htm

GitLab 5.3 升级注意事项 http://www.linuxidc.com/Linux/2013-06/86473.htm

在 CentOS 上部署 GitLab (自托管的 Git 项目仓库) http://www.linuxidc.com/Linux/2013-06/85754.htm

在 RHEL6/CentOS6/ScientificLinux6 上安装 GitLab 6.0.2 http://www.linuxidc.com/Linux/2014-03/97831.htm

CentOS 6.5 安装 GitLab 教程及相关问题解决 http://www.linuxidc.com/Linux/2014-05/101526.htm

GitLab 的详细介绍 :请点这里
GitLab 的下载地址 :请点这里

更多 CentOS 相关信息见 CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-07/120401.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计15159字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中