http://www.360doc.com/content/15/0603/14/21631240_475362133.shtml

原文 http://blog.csdn.net/williamwanglei/article/details/38498465/

GitLab 是一个用于仓库管理系统的开源项目。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

本文主要用来记录安装 Gitlab 的过程,主要参考官方文档 并没有做太多的修改。

设置源

设置国内 163 apt 源

# vim /etc/apt/sources.list deb http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse deb http://mirrors.163.com/ubuntu/ precise-security universe main multiverse restricted deb http://mirrors.163.com/ubuntu/ precise-updates universe main multiverse restricted deb http://mirrors.163.com/ubuntu/ precise-proposed universe main multiverse restricted deb http://mirrors.163.com/ubuntu/ precise-backports universe main multiverse restricted  deb-src http://mirrors.163.com/ubuntu/ precise main universe restricted multiverse deb-src http://mirrors.163.com/ubuntu/ precise-security universe main multiverse restricted deb-src http://mirrors.163.com/ubuntu/ precise-proposed universe main multiverse restricted deb-src http://mirrors.163.com/ubuntu/ precise-backports universe main multiverse restricted deb-src http://mirrors.163.com/ubuntu/ precise-updates universe main multiverse restricted # apt-get update 

安装依赖包

Gitlab 依赖包、库

sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev                         libncurses5-dev libffi-dev curl openssh-server redis-server checkinstall                         libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev logrotate 

安装 markdown 文档风格依赖包

sudo apt-get install -y python-docutils  

安装 git,Gerrit 依赖 gitweb,同时 GitLab 依赖 git 版本 >= 1.7.10,Ubuntu apt-get 默认安装的是 1.7.9.5,当然不升级也是没有问题的

sudo apt-get install -y git git-core gitweb git-review 

升级 Git 版本(可选)

sudo apt-get install -y git gitweb sudo apt-get remove git-core sudo apt-get install -y libcurl4-openssl-dev libexpat1-dev gettext libz-dev libssl-dev build-essential cd /tmp curl --progress https://git-core.googlecode.com/files/git-1.8.4.1.tar.gz | tar xz cd git-1.8.4.1/ make prefix=/usr/local all sudo make prefix=/usr/local install # * 如果升级了 git 的版本,相应修改 Gitlab.yml 中的 git 脚本位置,这一步在 clone gitlab 后在操作* sudo -u git -H vim /home/git/gitlab/config/gitlab.yml bin_path: /usr/local/bin/git 

Gitlab 需要收发邮件,安装邮件服务器

sudo apt-get install -y postfix 

如果安装了 ruby1.8,卸载掉,Gitlab 依赖 2.0 以上

sudo apt-get remove ruby1.8 

下载编译 ruby2.0

mkdir /tmp/ruby && cd /tmp/ruby curl --progress ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p353.tar.gz | tar xz cd ruby-2.0.0-p353 ./configure --disable-install-rdoc make sudo make install 

修改 gem 源指向 taobao

gem source -r https://rubygems.org/ gem source -a http://ruby.taobao.org/ 

安装 Bundel 命令

sudo gem install bundler --no-ri --no-rdoc 

系统用户

给 Gitlab 创建一个 git 用户

sudo adduser --disabled-login --gecos 'GitLab' git 

GitLab Shell

下载 Gitlab Shell,用来 ssh 访问仓库的管理软件

cd /home/git sudo -u git -H git clone https://github.com/gitlabhq/gitlab-shell.git cd gitlab-shell sudo -u git -H cp config.yml.example config.yml 

修改 gitlab-shell/config.yml

sudo -u git -H vim /home/git/gitlab-shell/config.yml gitlab_url: "http://gitlab.thstack.com/" 

安装 GitLab Shell

cd /home/git/gitlab-shell sudo -u git -H ./bin/install 

Mysql

安装 Mysql 包

sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev 

给 Gitlab 创建 Mysql 数据库并授权用户访问

sudo mysql -uroot -p > create database gitlabdb; > grant all on gitlabdb.* to 'gitlabuser'@'localhost' identified by 'gitlabpass'; 

GitLab

下载 GitLab 源代码,并切换到最新的分支上

cd /home/git sudo -u git -H git clone https://github.com/gitlabhq/gitlabhq.git gitlab cd gitlab sudo -u git -H git checkout 6-4-stable 

配置 GitLab,修改 gitlab.yml,其中 host: 项和 gitlab-shell 中 gitlab_url 的主机一致

cd /home/git/gitlab sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml sudo -u git -H vim config/gitlab.yml host: gitlab.thstack.com email_from: gitlab@thstack.com support_mail: gitlab@thstack.com signup_enabled: true             #开启用户注册 

创建相关目录

cd /home/git/gitlab sudo -u git -H mkdir tmp/pids/ sudo -u git -H mkdir tmp/sockets/ sudo -u git -H mkdir public/uploads  sudo -u git -H mkdir /home/git/repositories sudo -u git -H mkdir /home/git/gitlab-satellites 

修改相关目录权限

sudo chown -R git:git log/ tmp/ sudo chmod -R u+rwX  log/ tmp/ public/uploads 

修改 unicorn.rb 监听端口为:8081

cd /home/git/gitlab/ sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb sudo -u git -H vim config/unicorn.rb listen "gitlab.thstack.com:8081", :tcp_nopush => true 

配置 GitLab 访问 mysql 数据库设置

cd /home/git/gitlab/ sudo -u git cp config/database.yml.mysql config/database.yml sudo -u git -H vim config/database.yml   *修改 Production 部分:* production:   adapter: mysql2   encoding: utf8   reconnect: false   database: gitlabdb   pool: 10   username: gitlabuser   password: "gitlabpass"   host: localhost   socket: /var/run/mysqld/mysqld.sock 

设置 GitLab 使用指定邮箱发送邮件,注意 production.rb 的文件格式,开头空两格

cd /home/git/gitlab/ sudo -u git -H vim config/environments/production.rb   #修改 :sendmail 为 :smtp   config.action_mailer.delivery_method = :smtp   config.action_mailer.smtp_settings = {     :address              => "smtp.googlemail.com",     :port                 => 587,     :domain               => 'thstack.com',     :user_name            => 'gitlab@thstack.com',     :password             => 'password',     :authentication       =>  :plain,     :enable_starttls_auto => true   } end          # 上面内容加入到 end 里面 

安装 gem

修改 Gemfile 文件中源指向为 taobao

cd /home/git/gitlab/ sudo -u git -H vim Gemfile source "http://ruby.taobao.org/" 

虽然在文件中指向了国内 taobao 源,但是依然会卡一会,耐心等待…

cd /home/git/gitlab/ sudo -u git -H bundle install --deployment --without development test postgres aws 

初始化数据库并激活高级功能

cd /home/git/gitlab/ sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production 

输入 yes 来初始化数据库、创建相关表,最后会输出 GitLab Web 管理员用来登录的账号和密码

Do you want to continue (yes/no)? yes ... Administrator account created: login.........admin@local.host password......5iveL!fe 

设置 GitLab 启动服务

cd /home/git/gitlab/ sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab sudo update-rc.d gitlab defaults 21 

设置 GitLab 使用 Logrotate 备份 Log

cd /home/git/gitlab/ sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab 

检查GitLab及其环境的配置是否正确:

cd /home/git/gitlab/ sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production System information System:         Ubuntu 12.04 Current User:   git Using RVM:      no Ruby Version:   2.0.0p353 Gem Version:    2.0.14 Bundler Version:1.3.5 Rake Version:   10.1.0  GitLab information Version:        6.4.2 Revision:       214a013 Directory:      /home/git/gitlab DB Adapter:     mysql2 URL:            http://gitlab.thstack.com HTTP Clone URL: http://gitlab.thstack.com/some-project.git SSH Clone URL:  git@gitlab.thstack.com:some-project.git Using LDAP:     no Using Omniauth: no  GitLab Shell Version:        1.8.0 Repositories:   /home/git/repositories/ Hooks:          /home/git/gitlab-shell/hooks/ Git:            /usr/bin/git 

启动 GitLab 服务

/etc/init.d/gitlab restart Shutting down both Unicorn and Sidekiq. GitLab is not running. Starting both the GitLab Unicorn and Sidekiq.. The GitLab Unicorn web server with pid 17771 is running. The GitLab Sidekiq job dispatcher with pid 17778 is running. GitLab and all its components are up and running 

最后编译一下

sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production 

Nginx

安装 Nginx 包

sudo apt-get install -y nginx 

配置 Nginx

cd /home/git/gitlab sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlab sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab sudo vim /etc/nginx/sites-available/gitlab listen *:80 default_server; server_name gitlab.thstack.com; proxy_pass http://gitlab.thstack.com:8081; 

启动 Nginx

/etc/init.d/apache2 stop /etc/init.d/nginx restart 

访问

用浏览器访问: http://gitlab.thstack.com 用户名:admin@local.host 密码:5iveL!fe 

2: https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/insta llation.md

界面简单使用

使用 admin@local.host 账号登录: 

登录后系统让修改密码,先修改密码: 

修改完密码后,用新密码登录一下,然后修改 Admin 用户得邮箱地址为:admin@thstack.com 

点击保存更改后,系统会自动给刚才输入的邮箱地址发送一封确认修改信息,点击邮件内容中的连接后会自动用新账号邮箱登录。

创建一个 GROUP:

输入 Group 名字为:DevGroup 

点击创建项目: 

创建一个项目,名为:OpenStack,这个项目属于 DevGroup: 

创建完项目后,点击添加 ssh 密钥: 

生成 admin@thstack.com 邮箱密钥: 

在界面输入刚才生成得密钥: 

再注册一个账号,登录页面点击注册按钮: 

注册一个 Longgeek 用户,输入邮箱、密码,然后去输入得邮箱验证: 

创建一个 Longgeek 用户,并生成密钥: 

用 longgeek@thstack.com 用户登录 GitLab,添加刚才生成得密钥到 sshkey 里: 

用 admin@thstack.com 用户登录 GitLab,把 longgeek@thstack.com 添加到 DevGroup 组中,权限是 Reporter,这样 longgeek 用户也可以访问 OpenStack 这个项目,不过没有权限直接 Push: 

用 longgeek@thstack.com 用户登录就可以看到 OpenStack 项目: 

用 longgeek@thstack.com clone 项目,尝试 push: 

很显然 longgeek 用户是没有 push 到 master 分支得权限。

GitLib的更多相关文章

  1. linux安装jenkins和编译发布gitlib项目

    1. jenkins下载地址 wget https://updates.jenkins-ci.org/download/war/2.138/jenkins.war 2. 安装插件 安装gitlib和m ...

  2. 使用docker 安装 GITLIB

    在安装 gitlib 社区版时,配置老不成功,改成使用docker安装 比较顺利,省事. 1外部卷配置 docker 需要配置一些卷在外部,创建一下git的目录 我们创建一个在home下 创建一个gi ...

  3. Linux无法解析gitlib的地址--修改dns

    搞的一个js鉴权认证,先跳转到 gitlib,登录后跳转到我们公司测试接口的页面: 公司gitlib地址:gitlab.cmread.com [INFO][2018-12-17 15:29:00,18 ...

  4. Jenkins与gitlib实现自动化部署与持续构建

    Jenkins概念 Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台.这是一个免费的源代码,可以处理任何类型的构建或持续集成.集成Jenkins可以用于一些测试和 ...

  5. CentOS 7.2安装docker-compose运行gitlib

    服务器已经安装好docker 启动: service start docker 安装docker-compose: 安装pip:sudo yum search pip  / sudo yum inst ...

  6. centos 6 安装 gitlib

    安装gitlab-----------1. 下载 gitlabcurl -O https://downloads-packages.s3.amazonaws.com/centos-6.5/gitlab ...

  7. gitLib操作笔录《一》:创建分支,切换分支,提交分支到远程,以及基本代码clone与更新提交到远程操作指令

    git 操作经验注:master表示的是主线,origin 表示远程源 创建分支:git checkout -b < branch_name >或 < master >切换分支 ...

  8. jenkins+gitlib+git+mysql5.6+sonarqube+sonarrunner

    1. sonarrunner配置: 2. 未完待续....

  9. gitlib 安装

    参考文件https://www.cnblogs.com/rslai/p/9109624.html

随机推荐

  1. c++实现的Array数据结构

    1.Array.h,Array<T>的定义 template <class T> class Array { protected: T *data; //一个指向数组数据的指针 ...

  2. amf0解释一下

    就简单记录一下省了以后忘了,amf0其实就几种数据格式的网络传输格式,比如数字,字符串,这些格式在传输的时候他给单独序列化了一下,主要支持以下这些: #define AMF0_NUMBER ((uin ...

  3. [Android分享] 彻底理解ldpi、mdpi、hdpi、xhdpi、xxhdpi

    来自: http://www.eoeandroid.com/thread-565562-1-1.html?_dsign=42bed080 非常感谢楼主分享 这个问题我相信困惑了好多人包括很多老鸟,而且 ...

  4. [ZHUAN]Flask学习记录之Flask-SQLAlchemy

    From: http://www.cnblogs.com/agmcs/p/4445583.html 各种查询方式:http://www.360doc.com/content/12/0608/11/93 ...

  5. CentOS下命令行和桌面模式的切换方法(转载)

    桌面模式和命令行模式的切换方法 用编辑器打开 /etc/inittab 文件(这里用的是vi,你可以选择你喜欢的): #vi /etc/inittab 打开效果图如下: 桌面模式    : 把光标所在 ...

  6. Spark的RDD编程(二)公众号undefined110

    创建RDD有两种方式:①读取外部数据集,lines=sc.textFile("README.md").②对一个集合进行并行化,lines=sc.parallelize([" ...

  7. 【VB】操作ODBC-DAO方式操作只能查询,不能更新插入操作解决。

    最近接手一个改善项目,需要从Access转化到SQL Server 2014,使用原有的ODBC连接方式只能查询,不能更新插入.网上一直找不到解决方案,然后自己测试一下使用ADO方式竟然可以连接了.具 ...

  8. Windows开发技术的历史

    原文地址:http://www.kuqin.com/windows/20090315/40172.html Windows已经有22年的历史,这22年来,微软官方主力推行的编程语言与API有四个分水岭 ...

  9. Unity3d 跑酷游戏 之Character Controller篇

    unity3d  Character Controller @by  广州小龙 做3D跑酷游戏,也慢慢的学习了一些东西,从开发过程中积累了一些小的知识点跟大家分享一下! 1. 这个Revert按钮的意 ...

  10. 苦练SOC“基本功”启明星辰九年磨一剑

    2011年9月28日——10月31日,国内知名网络安全公司——启明星辰,作为协办方参与了51CTO在2011年举办的中国SOC安全管理平台市场应用现状调查. SOC(Security Operatio ...