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

来源:互联网 发布:算法设计与分析答案 编辑:程序博客网 时间:2024/05/19 14:38

本人用的是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查看。

0 0
原创粉丝点击