43213 发表于 2015-11-12 09:20:24

centos6安装gitlab

#从安装ruby、git、数据库、web、和gitlab到访问,一定要有耐心.
#安装环境
### uname -r
##2.6.32-279.el6.x86_64
### cat /etc/redhat-release
##CentOS release 6.3 (Final)



一.安装依赖
## 安装epel-release
yum -y install http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

#安装ruby依赖包
## packages (from rvm install message):
yum -y install libicu-devel patch gcc-c++ readline-devel zlib-devel libffi-devel openssl-devel make autoconf automake libtool bison libxml2-devel libxslt-devel libyaml-devel mysql-devel


#安装或者更新git
yum -y remove git
yum -y install zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker

wget http://git-core.googlecode.com/files/git-1.8.3.4.tar.gz
tar -zxf git-1.8.3.4.tar.gz
cd git-1.8.3.4
make prefix=/usr all
make prefix=/usr install
cd ..
#安装前版本
# git --version
git version 1.7.1
#安装后版本
# git --version
git version 1.8.3.4



二.安装RVM
#RVM工具
curl -L get.rvm.io | bash -s stable
#出现以下信息为安装成功
# Administrator,
#
#   Thank you for using RVM!
#   We sincerely hope that RVM helps to make your life easier and more enjoyable!!!
#
# ~Wayne, Michal & team.


#加载RVM,改名(使用淘宝源)
source /etc/profile.d/rvm.sh
cp /usr/local/rvm/config/db/usr/local/rvm/config/db.bk
sed -i ‘s#ftp.ruby-lang.org/pub/ruby#ruby.taobao.org/mirrors/ruby#‘ /usr/local/rvm/config/db
sed -i ‘s#cache.ruby-lang.org/pub/ruby#ruby.taobao.org/mirrors/ruby#‘ /usr/local/rvm/config/db
##如果报错 手动修改

#安装libyaml(防止后期报错,可不装)
rvm pkg install libyaml


三.安装ruby
#安装ruby
rvm install 2.0.0-p353 --with-libyaml-dir=/usr/local/rvm/usr
rvm --default use 2.0.0-p353
##如果报错修改之前的db文件把http改成https试试

#引用淘宝ruby源
gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/         ##注意加https
gem sources -l

#安装bundler
gem install bundler --no-ri --no-rdoc



四.安装gitlab-shell

#创建用户git
adduser --system --create-home --comment ‘GitLab‘ git

#复制gitlab-shell到本地
su - git -c "git clone https://github.com/gitlabhq/gitlab-shell.git"
su - git -c "cd gitlab-shell;git checkout v1.7.0"

##修改配置文件
su - git -c "cp gitlab-shell/config.yml.example gitlab-shell/config.yml"

##安装
su - git -c "gitlab-shell/bin/install"


五.安装Redis和mysql
#安装Redis,据说高级特性需要
yum -y install redis ;service redis start ; chkconfig redis on


如果出现修改epel
vim /etc/yum.repos.d/epel.repo
把gpgcheck=1全部改成0   为不校验

#安装mysql
#安装Mysql数据库
yum install -y mysql-server mysql-devel ; chkconfig mysqld on ; service mysqld start

#编译安装宣告下变量
##export PATH="/opt/mysql/bin:$PATH"
echo "export PATH="/opt/mysql/bin:$PATH"">>/etc/profile

##修改root密码
#echo "UPDATE mysql.user SET Password=PASSWORD('$MYSQL_ROOT_PW') WHERE User='root'; FLUSH PRIVILEGES;" | mysql -u root

##创建gitlab数据库
CREATE DATABASE IF NOT EXISTS gitlabhq_production DEFAULT CHARACTER SET 'utf8'COLLATE 'utf8_unicode_ci';

##创建连接数据库用户
grantall ongitlabhq_production.* to gitlab@localhost identified by '123456';

六.安装gitlab
#复制GitLab到本地
su - git -c "git clone https://github.com/gitlabhq/gitlabhq.git gitlab"

## 检查
su - git -c "cd gitlab;git checkout 5-4-stable"
#以下操作在/home/git/gitlab
cd /home/git/gitlab
### 复制配置文件
su git -c "cp config/gitlab.yml.example config/gitlab.yml"
### 修改配置文件主机名(可以不做)
sed -i "s/host: localhost/host: gitlab.test/g" config/gitlab.yml
### 修改邮件地址
sed -i "s/from: gitlab@localhost/from: gitlab@gitlab.test/g" config/gitlab.yml

#修改puma.rb文件
su git -c "cp config/puma.rb.example config/puma.rb"
sed -i "s/0.0.0.0:9292/127.0.0.1:3000/g" /home/git/gitlab/config/puma.rb
sed -i "s/# bind/bind/g" /home/git/gitlab/config/puma.rb

#为git用户授权
su git -c "chown -R git /home/git/gitlab/log/;chmod -R u+rwx /home/git/gitlab/log/;chown -R git /home/git/gitlab/tmp/;chmod -R u+rwx /home/git/gitlab/tmp/;mkdir /home/git/gitlab-satellites;mkdir /home/git/gitlab/tmp/pids/;chmod -R u+rwx /home/git/gitlab/tmp/pids/;mkdir /home/git/gitlab/tmp/sockets/;chmod -R u+rwx /home/git/gitlab/tmp/sockets/;mkdir /home/git/gitlab/public/uploads;chmod -R u+rwX /home/git/gitlab/public/uploads"

### 复制数据配置文件
su git -c "cp config/database.yml.mysql config/database.yml"

### 设置mysql用户和密码
sed -i "s/root/gitlab/g" config/database.yml
sed -i "s/secure password/123456/g" config/database.yml

### 配置git用户
su git -c 'git config --global user.name"GitLab"'
su git -c 'git config --global user.email "gitlab@$GL_HOSTNAME"'




七.安装 Gems

## 安装
gem install charlock_holmes --version '0.6.9'

#bundle使用淘宝源,并且安装(时间长.)
sed -i '1s/https/http/g' /home/git/gitlab/Gemfile
sed -i '1s/rubygems/ruby.taobao/g' /home/git/gitlab/Gemfile
#安装bundle
su git -c "bundle install --deployment --without development test postgres"

#错误1:
Could not fetch specs from http://ruby.taobao.org/解决:
修改Gemfile下的http://ruby.taobao.org/为:https://ruby.taobao.org/
#出现错误2:Could not find modernizr-2.6.2 in any of the sources
#解决办法:
$ vi Gemfile
第114行   gem "modernizr",      "2.6.2"
更改改为:
第114行   gem "modernizr-rails","2.7.1"
$ vi Gemfile.lock
第252行   modernizr (2.6.2)
更改改为:
第252行   modernizr-rails (2.7.1)

第523行   modernizr (= 2.6.2)
更改改为:
第523行   modernizr-rails (= 2.7.1)
重新执行
su git -c "bundle install --deployment --without development test postgres"


八.初始化数据库
#初始化数据库
export force=yes

su git -c "bundle exec rake gitlab:start RAILS_ENV=production"
su git -c "bundle exec rake gitlab:setup RAILS_ENV=production"
#初始化在数据库里添加数据,最后后会出现:
#用户名:admin@local.host
#密码:5iveL!fe


#su git -c "bundle exec rake gitlab:env:info RAILS_ENV=production"


九.启动脚本
#curl --output /etc/init.d/gitlab https://raw.github.com/gitlabhq/gitlab-recipes/master/init.d/gitlab-centos
#chmod +x /etc/init.d/gitlab

curl --output /etc/init.d/gitlab https://raw.github.com/gitlabhq/gitlab-recipes/5-1-stable/init.d/gitlab
chmod +x /etc/init.d/gitlab
#在17行后添加2行内容
sed -i "17 a source /etc/profile.d/rvm.sh\nrvm use 1.9.3-p448" /etc/init.d/gitlab

#或者复制
##cp /home/git/gitlab/lib/support/init.d/gitlab   /etc/init.d/

#添加到开机启动项
chkconfig gitlab on
#启动
/etc/init.d/gitlab start


十.配置web站点
#配置nginx

#安装nginx,(编译安装和rpm都能实现)
# yum -y install nginx

#下载nginx下的gitlab.conf文件
curl --output /etc/nginx/conf.d/gitlab.conf https://raw.github.com/gitlabhq/gitlab-recipes/5-1-stable/nginx/gitlab
#修改下server标签监听端口和域名
vim /etc/nginx/conf.d/gitlab.conf
server {
listen 80;
server_name gitlab.wine.cn;
#..略..
}

更改安装目录权限
# chown -R git:git /etc/nginx

#更改nginx所属用户
#注意:
#需要nginx用户改为git,否则会出现502访问错误.
vim /etc/nginx/nginx.conf

#user            nginx;
user            git;

/etc/init.d/gitlab start
/etc/init.d/nginx start
#然后访问
gitlab.wine.cn






#####以下是报错环节,没怎么整理很乱###################

# sh gitlab start
Could not find mysql2-0.3.11 in any of the sources
Run `bundle install` to install missing gems.
#解决
yum install mysql-devel
gem install mysql2 -v ‘0.3.11‘


-------------------------------------
#检查
# /home/git/gitlab-shell/bin/check
Check GitLab API access: FAILED. code: 502

Check directories and files:
       /home/git/repositories: OK
       /home/git/.ssh/authorized_keys: OK

#解决:nginx与gitlab之间权限问题
------------------------

--------------------------------------------
#su git -c "bundle install --deployment --without development test postgres"
/usr/bin/ld: /usr/local/lib/libz.a(crc32.o): relocation R_X86_64_32 against .rodata‘ can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libz.a: could not read symbols: Bad value
collect2: ld 返回 1
make: *** 错误 1

make failed, exit code 2

Gem files will remain installed in /home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/nokogiri-1.5.9 for inspection.
Results logged to /home/git/gitlab/vendor/bundle/ruby/2.0.0/extensions/x86_64-linux/2.0.0/nokogiri-1.5.9/gem_make.out
An error occurred while installing nokogiri (1.5.9), and Bundler cannot continue.
Make sure that `gem install nokogiri -v ‘1.5.9‘` succeeds before bundling.


#安装gem install nokogiri -v ‘1.5.9‘

linking shared-object nokogiri/nokogiri.so
/usr/bin/ld: /usr/local/lib/libz.a(crc32.o): relocation R_X86_64_32 against `.rodata‘ can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libz.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** Error 1

make failed, exit code 2

Gem files will remain installed in /usr/local/rvm/gems/ruby-2.0.0-p247/gems/nokogiri-1.5.9 for inspection.
Results logged to /usr/local/rvm/gems/ruby-2.0.0-p247/extensions/x86_64-linux/2.0.0/nokogiri-1.5.9/gem_make.out

#yum后还报错
# gem install nokogiri -v ‘1.5.9‘
ERROR:While executing gem ... (Zlib::DataError)
   invalid stored block lengths

#解决
安装zlib
cd zlib
CFLAGS="-O3 -fPIC" ./configure
make&&make install
#然后在安装
gem install nokogiri -v ‘1.5.9‘
----------------------------

----------------------------

###
# bundle exec rake gitlab:env:info RAILS_ENV=production
(in /home/git/gitlab)
rake aborted!
Cant connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2)
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/mysql2-0.3.11/lib/mysql2/client.rb:44:in `connect`
/home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/mysql2-0.3.11/lib/mysql2/client.rb:44:in initialize

#使用下面,然后就不报了
#ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

页: [1]
查看完整版本: centos6安装gitlab