把我最近研究的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 4cd /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 10mkdir /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"