CentOS6.5安装gitlab
时间:2015-02-12 02:31 来源:51cto.com 作者:IT
GitLab,是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
# Distribution : CentOS 6.5 Minimal
# GitLab version : 7.4.5
# GitLab-shell : 2.0.1
# Ruby version : ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]
# Gem version : 2.2.2
# Redis-server : Redis server version 2.4.10 (00000000:0)
# Web Server : Nginx/1.0.15
# Database : MySQL/5.5.40
cd
/usr/local/src
#增epel源,如果你是i686系统,请把x86_64修改下。
wget -O
/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
https:
//www
.fedoraproject.org
/static/0608B895
.txt
rpm --
import
/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
rpm -Uvh http:
//dl
.fedoraproject.org
/pub/epel/6/x86_64/epel-release-6-8
.noarch.rpm
#确认是否安装成功
rpm -qa gpg*
gpg-pubkey-0608b895-4bd22942
#增puias源
wget -O
/etc/yum
.repos.d
/PUIAS_6_computational
.repo https:
//gitlab
.com
/gitlab-org/gitlab-recipes/raw/master/install/centos/PUIAS_6_computational
.repo
wget -O
/etc/pki/rpm-gpg/RPM-GPG-KEY-puias
http:
//springdale
.math.ias.edu
/data/puias/6/x86_64/os/RPM-GPG-KEY-puias
rpm --
import
/etc/pki/rpm-gpg/RPM-GPG-KEY-puias
#验证是否成功
rpm -qa gpg*
gpg-pubkey-41a40948-4ce19266
yum repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* PUIAS_6_computational: www.puias.princeton.edu
* epel:
ftp
.sjtu.edu.cn
仓库标识 仓库名称 状态
PUIAS_6_computational PUIAS computational Base 6 - x86_64 2,638
base CentOS-6 - Base - 163.com 6,518
*epel Extra Packages
for
Enterprise Linux 6 - x86_64 11,148
extras CentOS-6 - Extras - 163.com 36
updates CentOS-6 - Updates - 163.com 727
repolist: 21,067
yum-config-manager --
enable
epel --
enable
PUIAS_6_computational
yum -y update
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
yum remove git -y
yum
install
zlib-devel perl-CPAN gettext curl-devel expat-devel gettext-devel openssl-devel
mkdir
/tmp/git
&&
cd
/tmp/git
curl --progress https:
//www
.kernel.org
/pub/software/scm/git/git-2
.1.3.
tar
.gz |
tar
xz
cd
git-2.1.3/ && .
/configure
&&
make
&&
make
prefix=
/usr/local
install
which
git
/usr/local/bin/git
git --version
git version 2.1.3
yum remove ruby
#如果是源码安装的
cd
(your-ruby-
source
-path) &&
make
uninstall
mkdir
/tmp/ruby
&&
cd
/tmp/ruby
curl --progress ang.org
/pub/ruby/2
.1
/ruby-2
.1.2.
tar
.gz |
tar
xz
cd
ruby-2.1.2 && .
/configure
--disable-
install
-rdoc &&
make
&&
make
prefix=
/usr/local
install
gem
install
bundler --no-doc
which
ruby
/usr/local/bin/ruby
ruby -
v
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]
adduser --system --shell
/bin/bash
--comment
'GitLab'
--create-home --home-
dir
/home/git/
git
visudo
#修改以下内容
Defaults secure_path =
/sbin
:
/bin
:
/usr/sbin
:
/usr/bin
:
/usr/local/bin
#mysql的版本至少5.5.14或更新
mysql --version
mysql Ver 14.14 Distrib 5.5.40,
for
Linux (x86_64) using readline 5.1
mysql -u root -p
mysql> CREATE USER
'git'
@
'localhost'
IDENTIFIED BY
'gitpwd'
;
mysql> show variables like
"%engine"
;
+------------------------+--------+
| Variable_name | Value |
+------------------------+--------+
| default_storage_engine | InnoDB |
| storage_engine | InnoDB |
+------------------------+--------+
2 rows
in
set
(0.01 sec)
#如果不是InnoDB引擎,需执行下面命令
mysql> SET storage_engine=INNODB;
mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
mysql> GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO
'git'
@
'localhost'
;
mysql -ugit -pgitpwd -D gitlabhq_production
Reading table information
for
completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection
id
is 30
Server version: 5.5.40-log Source distribution
Copyright (c) 2000, 2014, Oracle and
/or
its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and
/or
its
affiliates. Other names may be trademarks of their respective
owners.
Type
'help;'
or
'\h'
for
help. Type
'\c'
to
clear
the current input statement.
mysql> \q
chkconfig redis on
cp
/etc/redis
.conf
/etc/redis
.conf.orig
#修改监听端口
sed
's/^port .*/port 0/'
/etc/redis
.conf.orig |
tee
/etc/redis
.conf
#增加内容
echo
'unixsocket /var/run/redis/redis.sock'
|
tee
-a
/etc/redis
.conf
echo
-e
'unixsocketperm 0770'
|
tee
-a
/etc/redis
.conf
mkdir
/var/run/redis
chown
redis:redis
/var/run/redis
chmod
755
/var/run/redis
service redis restart
usermod
-aG redis git
cd
/home/git
#下载源码
sudo
-u git -H git clone https:
//gitlab
.com
/gitlab-org/gitlab-ce
.git -b 7-4-stable gitlab
cd
gitLab/
sudo
-u git -H
cp
config
/gitlab
.yml.example config
/gitlab
.yml
sudo
-u git -H vim config
/gitlab
.yml
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
host: localhost
port: 80
https:
false
chown
-R git log/
chown
-R git tmp/
chmod
-R u+rwX log/
chmod
-R u+rwX tmp/
chmod
-R u+rwX tmp
/pids/
chmod
-R u+rwX tmp
/sockets/
chmod
-R u+rwX public
/uploads
sudo
-u git -H
mkdir
/home/git/gitlab-satellites
chmod
u+rwx,g=rx,o-rwx
/home/git/gitlab-satellites
sudo
-u git -H
cp
config
/unicorn
.rb.example config
/unicorn
.rb
#查看系统核心数
nproc
4
#编辑配置
sudo
-u git -H vim config
/unicorn
.rb
worker_processes 4
sudo
-u git -H
cp
config
/initializers/rack_attack
.rb.example config
/initializers/rack_attack
.rb
sudo
-u git -H git config --global user.name
"GitLab"
sudo
-u git -H git config --global user.email
"example@example.com"
sudo
-u git -H git config --global core.autocrlf input
#拷贝配置
sudo
-u git -H
cp
config
/resque
.yml.example config
/resque
.yml
#连接redis配置,默认配置,未修改
sudo
-u git -H vim config
/resque
.yml
sudo
-u git
cp
config
/database
.yml.mysql config
/database
.yml
#编辑配置文件
sudo
-u git -H vim config
/database
.yml
production:
adapter: mysql2
encoding: utf8
collation: utf8_general_ci
reconnect:
false
database: gitlabhq_production
pool: 10
username: git
password:
"gitpwd"
host: localhost
socket:
/var/lib/mysql/mysql
.sock
#修改文件权限,只有git用户可读
sudo
-u git -H
chmod
o-rwx config
/database
.yml
cd
/home/git/gitLab
sudo
-u git -H bundle
install
--deployment --without development
test
postgres aws
sudo
-u git -H bundle
exec
rake gitlab:shell:
install
[v2.0.1] REDIS_URL=unix:
/var/run/redis/redis
.sock RAILS_ENV=production
#编辑配置
sudo
-u git -H vim
/home/git/gitlab-shell/config
.yml
---
user: git
gitlab_url: https:
//localhost/
http_settings:
self_signed_cert:
true
repos_path:
"/home/git/repositories/"
auth_file:
"/home/git/.ssh/authorized_keys"
redis:
bin:
"/usr/bin/redis-cli"
namespace: resque:gitlab
socket:
"/var/run/redis/redis.sock"
log_level: INFO
audit_usernames:
false
sudo
-u git -H bundle
exec
rake gitlab:setup RAILS_ENV=production
#可以设置管理员密码(此步骤可省略。。。)
sudo
-u git -H bundle
exec
rake gitlab:setup RAILS_ENV=production GITLAB_ROOT_PASSWORD=newpassword
wget -O
/etc/init
.d
/gitlab
https:
//gitlab
.com
/gitlab-org/gitlab-recipes/raw/master/init/sysvinit/centos/gitlab-unicorn
chmod
+x
/etc/init
.d
/gitlab
chkconfig --add gitlab
chkconfig gitlab on
#设置logrotate
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
#本人使用的nginx
yum -y
install
nginx
chkconfig nginx on
wget -O
/etc/nginx/conf
.d
/gitlab
.conf https:
//gitlab
.com
/gitlab-org/gitlab-ce/raw/master/lib/support/nginx/gitlab-ssl
usermod
-a -G git nginx
chmod
g+rx
/home/git/
vim
/etc/nginx/conf
.d
/gitlab
.conf
service nginx start
#访问登录
#用户名:root
#密码:5iveL!fe
(责任编辑:IT)
GitLab,是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。 它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
(责任编辑:IT) |