在CentOS里安装GitLab
在CentOS里安装GitLab
把我最近研究的gitlab如何在CentOS里安装的笔记分享给大家。
先给大家介绍一下gitlab
GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。 应用特点: 1. Web框架使用Ruby on Rails。 2. 基于MIT代码发布协议。 3. 需要gitolite协同工作。 安装GitLab的需求: Ubuntu/Debian(推荐这2个系统,也可以安装到CentOS系统中,并且在GitHub上有CentOS的GitLab一键安装脚本)官方推荐的是那2个系统,但我这里需要安装在centos里,所以没办法自己多研究与测试,总结的安装经验如下:
前置要求
一定要先关闭iptable与selinux
本文安装的系统为centos 6.2 64位系统,安装在dell r410机器
1、安装epel与基础依赖库及软件
1 2 3 4 |
cd /tmp
wget http: //download.Fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh epel-release- 6 - 8 .noarch.rpm
yum install -y readline-devel libyaml-devel gdbm-devel ncurses-devel redis openssl-devel zlib-devel gcc gcc-c++ make autoconf readline-devel curl-devel expat-devel gettext-devel tk-devel libxml2-devel libffi-devel libxslt-devel libicu-devel httpd httpd-devel gitolite git-all python-devel python-pip sqlite-devel sendmail vim mysql-devel mysql-server patch libyaml* pcre-devel
|
2、安装ruby(一般默认安装都是1.8的,官方要求1.9以上)
1 2 3 4 5 6 7 8 9 10 |
mkdir /tmp/ruby && cd /tmp/ruby
curl --progress http: //ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p392.tar.gz | tar xz
cd ruby- 1.9 . 3 -p392/
./configure
make
make install
gem install bundler
ln -s /usr/local/bin/ruby /usr/bin/ruby
ln -s /usr/local/bin/gem /usr/bin/gem
ln -s /usr/local/bin/bundle /usr/bin/bundle
|
3、创建一个git
用户供GitLab使用
1 2 |
adduser --comment 'GitLab' git
chmod –R 755 /home/git
|
4、安装gitlab 的shell
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# Login as git
sudo su git
# Go to home directory
cd /home/git
# Clone gitlab shell
git clone https: //github.com/gitlabhq/gitlab-shell.git
cd gitlab-shell
# switch to right version
git checkout v1. 3.0
cp config.yml.example config.yml
# Edit config and replace gitlab_url
# with something like 'http://domain.com/'
vim config.yml
# Do setup
./bin/install
|
5、建立gitlab数据库并授权
1 2 3 4 5 6 7 8 9 10 |
# Login to MySQL
mysql -u root -p
# Create a user for GitLab. (change $password to a real password)
mysql> CREATE USER 'gitlab' @ 'localhost' IDENTIFIED BY 'gitlab' ;
# Create the GitLab production database
mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
# Grant the GitLab user necessary permissopns on the table.
mysql> GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO 'gitlab' @ 'localhost' ;
# Quit the database session
mysql> \q
|
6、克隆gitlab源
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# Clone GitLab repository
cd /home/git
sudo -u git -H git clone https: //github.com/gitlabhq/gitlabhq.git gitlab
# Go to gitlab dir
cd /home/git/gitlab
# Checkout to stable release
sudo -u git -H git checkout 5 - 1 -stable
Configure it
cd /home/git/gitlab
# Copy the example GitLab config
sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml
# Make sure to change "localhost" to the fully-qualified domain name of your
# host serving GitLab where necessary
sudo -u git -H vim config/gitlab.yml
# Make sure GitLab can write to the log/ and tmp/ directories
sudo chown -R git log/
sudo chown -R git tmp/
sudo chmod -R u+rwX log/
sudo chmod -R u+rwX tmp/
# Create directory for satellites
sudo -u git -H mkdir /home/git/gitlab-satellites
# Create directories for sockets/pids and make sure GitLab can write to them
sudo -u git -H mkdir tmp/pids/
sudo -u git -H mkdir tmp/sockets/
sudo chmod -R u+rwX tmp/pids/
sudo chmod -R u+rwX tmp/sockets/
# Create public /uploads directory otherwise backup will fail
sudo -u git -H mkdir public /uploads
sudo chmod -R u+rwX public /uploads
# Copy the example Puma config
sudo -u git -H cp config/puma.rb.example config/puma.rb
# Configure Git global settings for git user, useful when editing via web
# Edit user.email according to what is set in gitlab.yml
sudo -u git -H git config --global user.name "GitLab"
sudo -u git -H git config --global user.email "gitlab@localhost"
|
|
评论暂时关闭