`

linux上安装gitlab

阅读更多

前言:

官方上面说并不推荐在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 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 https://ruby.taobao.org/
[root@Git ruby-2.1.1]# gem sources -l
*** CURRENT SOURCES ***
https://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'
Fetching: charlock_holmes-0.6.9.gem (100%)
Building native extensions.  This could take a while...
Successfully installed charlock_holmes-0.6.9
Parsing documentation for charlock_holmes-0.6.9
Installing ri documentation for charlock_holmes-0.6.9
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.0.4
GitLab information
Version:        5.1.0
Revision:       be39106
Directory:      /home/git/gitlab
DB Adapter:     mysql2
URL:            http://localhost
HTTP Clone URL: http://localhost/some-project.git
SSH Clone URL:  git@localhost:some-project.git
Using LDAP:     no
Using Omniauth: no
GitLab Shell
Version:        1.3.0
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? ... OK (1.3.0)
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
post-receive hook up-to-date? ... yes
post-receive hooks in repos are links: ... can't check, you have no projects
Checking Gitlab Shell ... Finished
Checking Sidekiq ...
Running? ... yes
Checking Sidekiq ... 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? ... no
  Try fixing it:
  Install 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.
Init script up-to-date? ... can't check because of previous errors
Projects have satellites? ... can't check, you have no projects
Redis version >= 2.0.0? ... yes
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

http://wenku.baidu.com/link?url=udhLWVupjK58EtpZUPULR-kqb-b5p4AKsHbZMfSpk0RQUIz4lZQuoPISSYg_a7BAKSsGDSxSl_XbeW_6aPwuXKB0SGfaocQw_jST-6t0RQu

分享到:
评论

相关推荐

    linux安装gitlab

    Linux 安装 GitLab Linux 安装 GitLab 需要安装并配置必要的依赖关系,包括 SSH、防火墙、Postfix、wget 等。下面是详细的安装步骤: 一、安装依赖关系 首先,需要安装 SSH,以便远程连接服务器。使用以下命令...

    linux环境下,安装gitlab,安装 jenkins.txt

    linux环境下,安装gitlab,安装 jenkins.txt

    Linux(centos7)安装Gitlab

    本节将详细介绍如何在 CentOS 7 上安装 GitLab CE 版本。 ##### 1. 安装 GitLab CE - **安装脚本方式**: ```bash curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh |...

    如何在Linux中安装GitLab.zip

    本压缩文件详细总结了如何在Linux中安装GitLab,视频教程:https://www.bilibili.com/video/BV1Dc411G7if/?spm_id_from=333.999.0.0

    linux 下gitlab客户端安装文件 deb包下载和使用

    为了在Linux系统上安装GitLab客户端,我们需要下载适用于该系统的安装包,通常为.deb格式,这是Debian和Ubuntu等基于Debian的Linux发行版所采用的软件包格式。以下将详细介绍如何下载和使用Linux下的GitLab客户端deb...

    Centos7 源码安装Gitlab.md

    Centos7 源码安装Gitlab.md 存放这里,让大家下载快捷一点

    linux的gitlab安装文件

    在Linux系统上安装GitLab是一项常见的任务,尤其对于IT专业人士来说,它是一个强大的代码托管平台,支持Git版本控制。GitLab提供了代码管理、持续集成/持续部署(CI/CD)、问题跟踪、代码审查等功能,是许多开发团队...

    docker安装gitlab详细教程

    Linux系统docker中,安装gitlab的详细教程

    centos安装GITLAB

    在CentOS上安装GitLab的过程中,可能会遇到一个与Ruby版本相关的错误:“EC_GROUP_new_curve_GF2m”。这个错误通常出现在尝试安装Ruby 1.9.3-p0时,由于其与OpenSSL库的兼容性问题导致。Ruby是GitLab运行所必需的...

    gitLab的linux安装包

    gitLab的linux安装包,适用于centOS 6.x版本的安装

    阿里云服务器CentOS7.2安装配置gitlab

    本文档旨在指导用户如何在阿里云服务器上安装并配置GitLab。GitLab是一款开源的Git仓库管理工具,它提供了非常丰富的特性,如版本控制、项目管理、CI/CD等,适合团队协作开发。本文档假设读者已经具备基本的Linux...

    gitlab使用教程linux环境安装教程

    GitLab 在 Linux 环境下的安装教程 GitLab 是一个基于 Web 的 Git 仓库管理器,能够帮助开发者更好地管理项目代码。下面是 GitLab 在 Linux 环境下的安装教程。 安装准备 在安装 GitLab 之前,需要进行服务器相关...

    gitlab搭建流程-linux

    在 Linux 平台上搭建 GitLab 需要遵循一定的步骤和配置,以下是 GitLab 搭建流程的详细介绍。 安装配置依赖项 在安装 GitLab 之前,需要安装和配置一些依赖项,包括 curl 和 openssh-server 等。使用以下命令安装...

    centos7安装部署gitlab服务器

    根据给定的信息,本文将详细解释如何在CentOS 7上安装和配置GitLab服务器,具体包括以下几个步骤:安装依赖软件、设置Postfix为GitLab提供邮件服务、下载并安装GitLab安装包以及最终的GitLab配置。 ### 一、安装...

    linux-Docker搭建gitlab环境

    用 Docker 容器服务的方式搭建 gitlab 环境, 易于维护、升级。

    20分钟在自己的linux主机上搭建一个属于自己的gitlab服务器.docx

    本文将详细介绍如何在Linux主机上,特别是CentOS 7或8系统上,用20分钟搭建一个GitLab服务器。GitLab是一款开源的Git仓库管理工具,它提供了与GitHub类似的功能,包括代码托管、项目管理、持续集成/持续部署(CI/CD)...

    gitlab安装_gitlab安装_

    首先,GitLab的安装需要一个服务器环境,通常选择Linux操作系统,如Ubuntu或CentOS。安装前确保服务器已更新至最新版,关闭防火墙或设置相应端口开放,以允许外部访问。GitLab依赖于一些基础软件,如Nginx(作为反向...

    GitLab 安装配置详细教程

    GitLab 安装配置详细教程 本文档旨在指导用户安装和配置 GitLab 社区版,涵盖了环境配置、安装组件、配置文件、服务管理等方面的知识点。 一、环境配置 在安装 GitLab 之前,需要进行一些环境配置,包括: 1. ...

Global site tag (gtag.js) - Google Analytics