热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Centos6.8从源码安装Gitlab详细教程

本人用的是1核2G的阿里云服务器,从源码安装Gitlab中文版(英文版的安装几乎没有差别,下详)。安装过程对于像我这样的新手来说十分艰辛,中间遇到不少问题,但功夫不负有心人,最终还是安装成功了。

本人用的是1核2G的阿里云服务器,从源码安装Gitlab中文版(英文版的安装几乎没有差别,下详)。安装过程对于像我这样的新手来说十分艰辛,中间遇到不少问题,但功夫不负有心人,最终还是安装成功了。现分享安装步骤。

各位觉得麻烦,建议用官网推荐的Omnibus 安装方式。

安装的环境如下图所示,另,安装Gitlab必须要有至少1G的内存,否则安装之后无法运行;还有本人使用Mysql数据库,比较顺手。

运行效果如图——



安装所需工具——

XSHELL    用来连接阿里云服务器,这个没什么好说的。

XFTP          由于网络原因,许多包我都直接下载到本地再上传到服务器的,上传的路径皆为/usr/etc。

Emacs       建议大家学习至少一个编辑器。


参考网站——

主要是官网,其实按照官网一步步来安装成功的机率也是蛮大的。但是有一些坑。

https://github.com/gitlabhq/gitlab-recipes/tree/master/install/centos  centos安装Gitlab的指导

https://gitlab.com/larryli/gitlab/wikis/home  汉化版Gitlab的安装指导

http://blog.csdn.net/h348592532/article/details/53706786 有点过时的教程,但是还是很大帮助,如果和本教程不同,请按本教程来,命令的作用可以参考该网页。


安装步骤

·重要准备工作

开辟SWAP内存,这一点对阿里云服务器来说很重要

yum -y update

yum -y install nano

yum -y install emacs


执行以下命令并得到如下结果,证明不存在SWAP内存

free -h

sudo swapon -s


开辟内存

sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k


sudo mkswap -f /swapfile

sudo swapon /swapfile
sudo swapon -s


使开辟内存在重启机器后仍有效

sudo nano /etc/fstab

[加入如图所示内容]


[按Ctrl+X,输入Y,回车退出]

echo 10 | sudo tee /proc/sys/vm/swappiness

echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf

sudo chown root:root /swapfile

sudo chmod 0600 /swapfile


[重启]

free -h



·安装依赖

su -
yum -y groupinstall 'Development Tools'
yum -y install readline readline-devel ncurses-devel gdbm-devel glibc-devel tcl-devel openssl-devel curl-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 redis sudo wget crontabs logwatch logrotate perl-Time-HiRes git cmake libcom_err-devel.i686 libcom_err-devel.x86_64 nodejs
yum -y install python-docutils

注意到redis,按照官方的安装方式,安装的redis版本为2.4.10好像,不符合要求,所以待会要卸载,并且不按照官方的方式


·安装Git

要求Git版本在2.7.4或以上

在官网下载压缩包(Tarballs), 上传到服务器

git --version
yum -y remove git
yum install zlib-devel perl-CPAN gettext curl-devel expat-devel gettext-devel openssl-devel
tar -xzvf git-2.11.0.tar.gz
cd git-2.11.0
./configure 
make 
make prefix=/usr/local install
ln -s /usr/local/bin/git /usr/bin/
git --version

·安装Ruby

yum remove ruby

在官网下载压缩包https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.3.tar.gz

tar -xzvf ruby-2.3.3.tar.gz
cd ruby-2.3.3
./configure --disable-install-rdoc
make
sudo make install

·安装Bundler Gem

gem install bundler --no-doc


·安装GO

官网下载,上传 https://storage.googleapis.com/golang/go1.5.3.linux-amd64.tar.gz

sudo tar -C /usr/local -xzf go1.5.3.linux-amd64.tar.gz
sudo ln -sf /usr/local/go/bin/{go,godoc,gofmt} /usr/local/bin/
rm go1.5.3.linux-amd64.tar.gz


·创建git用户

adduser --system --shell /bin/bash --comment 'GitLab' --create-home --home-dir /home/git/ git

修改git用户的PATH路径

visudo

[
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin

修改为

Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
]


`安装MySql

从官网下载,mysql57-community-release-el6-9.noarch.rpm

sudo rpm -Uvh mysql57-community-release-el6-9.noarch.rpm

yum install -y mysql-server mysql-devel

chkconfig mysqld on
service mysqld start

查看Mysql为用户设的初始密码

sudo grep 'temporary password' /var/log/mysqld.log

mysql -u root -p

输入密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Mysql2017#';     //更换密码

CREATE USER 'git'@'localhost' IDENTIFIED BY 'Git2017!';      //增加GIT并设置密码

CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;

GRANT ALL PRIVILEGES ON `gitlabhq_production`.* TO 'git'@'localhost';

\q

[

如果提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=4;
mysql> SHOW VARIABLES LIKE 'validate_password%';[]

]


·安装Redis

yum remove redis       //这一步很重要

1、官网下载,上传 http://download.redis.io/releases/redis-3.2.5.tar.gz


2、解压、编译、安装redis-3.2.5:

tar -zxvf redis-3.2.5.tar.gz -C /usr/src/

cd /usr/src/redis-3.2.5/

make && make install



3、创建redis相关目录:

mkdir -p /home/redis/bin

mkdir -p /home/redis/log

mkdir -p /home/redis/pid

mkdir -p /home/redis/db



4、将可执行文件复制到自己的安装目录:/home/redis/
          ln -s /usr/local/bin/redis-*   /home/redis/bin/


5、复制配置文件到自己的安装目录:/home/redis/
          cp redis.conf /home/redis/


6、进入自己的安装目录,编辑redis.conf配置文件:

cd /home/redis/

emacs /home/redis/redis.conf

 

根据实际需要修改配置文件,以下仅供参考

daemonize yes

pidfile /home/redis/pid/redis.pid

logfile /home/redis/log/redis.log

dir /home/redis/db

port 0                                                                 

 unixsocket /var/run/redis/redis.sock

 unixsocketperm 700


最后两行必须删除#号,使之生效。

配置的意思 参见[http://www.cnblogs.com/qq78292959/archive/2013/09/21/3331032.html]


7、创建redis服务脚本,并赋予权限:

emacs  /etc/init.d/redis

#!/bin/sh

#

# Simple Redis init.d script conceived to work on Linux systems

# as it does use of the /proc filesystem.

PATH=/home/redis/bin:/sbin:/usr/bin:/bin

REDISPORT=6379

EXEC=/home/redis/bin/redis-server

CLIEXEC=/home/redis/bin/redis-cli

PIDFILE=/home/redis/pid/redis.pid

COnF="/home/redis/redis.conf"

case "$1" in

    start)

        if [ -f $PIDFILE ]

        then

                echo "$PIDFILE exists, process is already running or crashed"

        else

                echo "Starting Redis server..."

                $EXEC $CONF

        fi

        ;;

    stop)

        if [ ! -f $PIDFILE ]

        then

                echo "$PIDFILE does not exist, process is not running"

        else

                PID=$(cat $PIDFILE)

                echo "Stopping ..."

                $CLIEXEC -p $REDISPORT shutdown

                while [ -x /proc/${PID} ]

                do

                    echo "Waiting for Redis to shutdown ..."

                    sleep 1

                done

                echo "Redis stopped"

        fi

        ;;

    *)

        echo "Please use start or stop as first argument"

        ;;

esac



8、添加redis服务开机启动:

chmod a+x /etc/init.d/redis



9、启动redis服务:

mkdir /var/run/redis/

service redis start


10、测试OK
          
          redis-cli -s /var/run/redis/redis.sock
          set key1 hello
          get key1
          quit
          chmod 770 /var/run/redis/redis.sock

11、改变权限

chown -R redis:redis /var/run/redis

chmod -R 755 /var/run/redis

将Git添加Redis组

usermod -aG redis git


·获取Gitlab

cd /home/git

sudo -u git -H git clone https://git.coding.net/larryli/gitlab.git gitlab                 //这是中文版

cd /home/git/gitlab

sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml

sudo -u git -H emacs config/gitlab.yml




sudo -u git -H cp config/secrets.yml.example config/secrets.yml
sudo -u git -H chmod 0600 config/secrets.yml


sudo chown -R git log/ &&sudo chown -R git tmp/ &&sudo chmod -R u+rwX,go-w log/ &&sudo chmod -R u+rwX tmp/ &&sudo chmod -R u+rwX tmp/pids/ &&sudo chmod -R u+rwX tmp/sockets/ &&sudo -u git -H mkdir public/uploads/ &&sudo chmod 0700 public/uploads &&sudo chmod -R u+rwX builds/ &&sudo chmod -R u+rwX shared/artifacts/ &&sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb


sudo -u git -H emacs config/unicorn.rb


sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb

config/initializers/rack_attack.rb
sudo -u git -H git config --global core.autocrlf input
sudo -u git -H git config --global gc.auto 0
sudo -u git -H git config --global repack.writeBitmaps true
sudo -u git -H cp config/resque.yml.example config/resque.yml

sudo -u git cp config/database.yml.mysql config/database.yml
sudo -u git -H emacs config/database.yml

修改成你自己设的密码



·安装GEM

cd /home/git/gitlab
sudo -u git -H bundle install --deployment --without development test postgres aws kerberos

[他们都说要用淘宝源,我并没有用,速度也还行]


·安装Gitlab-shell

按官网说的装,

sudo -u git -H bundle exec rake gitlab:shell:install[v3.0.0] REDIS_URL=unix:/var/run/redis/redis.sock RAILS_ENV=production

或者直接

cd /home/git/

sudo -u git -H mkdir gitlab-shell

sudo -u git -H chown -R git gitlab-shell/

sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-shell.git gitlab-shell


sudo -u git -H emacs /home/git/gitlab-shell/config.yml


restorecon -Rv /home/git/.ssh


·安装Gitlab-workhorse

cd /home/git
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-workhorse.git
cd gitlab-workhorse
sudo -u git -H git checkout v0.7.5
sudo -u git -H make


·安装

cd /home/git/gitlab
sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production


cp lib/support/init.d/gitlab /etc/init.d/gitlab

chkconfig gitlab on

cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab


检查环境

sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production

编译

sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production

开启

service gitlab start


此时可以访问Gitlab网站,查看收获。希望一切顺利。


·检查

cd /home/git/gitlab
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production


注:以上教程是我的亲身经历,如果中途还遇到问题,可以留言或者百度谷歌;最重要的,要懂得查看log,如gitlab/log里面的log,可以用less命令很方面的查看,也可以用XFTP下载到本地,用Sublime Text查看。


推荐阅读
  • mysql和php的关系理解(php技术和mysql怎么结合)
    本文目录一览:1、apachephpmysql他们是什么关系 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • centos6.8 下nginx1.10 安装 ... [详细]
  • 前言对于从事技术的人员来说ajax是这好东西,都会使用,而且乐于使用。但对于新手,开发一个ajax实例,还有是难度的,必竟对于他们这是新东西。leo开发一个简单的ajax实例,用的是 ... [详细]
  • mysql5.6 多实例 主从安装_MySQL5.6一主多从的半同步复制实例
    半同步简介:在默认情况下,MySQL的复制是异步的,这意味着主服务器及其从服务器是独立的。异步复制可以提供最佳的性能,因为主服务器在将更新 ... [详细]
  • 使用CocoaPods管理依赖库
    这篇内容将介绍Mac和iOS开发中必备的一个依赖库管理工具CocoaPods。在iOS开发中势必会用到一些第三方依赖库,比如大家都熟悉的ASIHttpRequest、AFNetwo ... [详细]
  • linux clickhouse安装在指定目录_Centos8服务器指定目录安装配置Nginx
    1.安装前准备(1)检查是否安装过nginx(如果没有安装过可以无视)find-namenginx搜索nginx文件及其文件夹rm-rf【nginx配置地址文件及其文件夹】手动删除 ... [详细]
  • phpstudy云服务器安装,如何安装phpstudy
    本文目录一览:1、phpstudy安装在哪本地电脑还是服务器? ... [详细]
  • 技术分享:如何在没有公钥的情况下实现JWT密钥滥用
      ... [详细]
  • ruby 输出彩色内容到控制台
    程序输出控制台时,为了区分输出信息的严重程度,可以使用颜色、符号等来做标识。ruby也支持设置输出内容的颜色,比如运行以下代码:以下内容是百度到的,因发现很多博客都是同样的写法,所 ... [详细]
author-avatar
高高G0623
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有