目录(?)[-]

  1. 平台需求

  2. 硬件需求

  3. 本安装指南已于 DebianUbuntu 测试通过

    1. 重要信息

  4. 1 安装依赖包

  5. 数据库

    1. SQLite

    2. MySQL

    3. PostgreSQL

  6. 2 安装 Ruby

  7. 3 安装 Gitolite

    1. 检查退出并重新登录以使 git 用户组生效

  8. 4 克隆 GitLab 源代码并安装先决条件

    1. 选择你希望使用的数据库

    2. 安装数据库 gems

    3. 初始化数据库

    4. 设置 GitLab hooks

    5. 确认应用程序状态

  9. 5 设置 web server

  10. 6 运行 Resque 进程用于处理工作队列

  11. Nginx 与 Unicorn

    1. 1 Unicorn

    2. 2 Nginx

    3. 3 Init 脚本

一、最终目的

1,在Linux下创建GitLab服务器,客户端能够完成Git 的 clone,pull,commit,push操作。

2,能够通过浏览器访问服务器上的GitLab主页,登录之后能够实现,创建工程,增加用户等操作。

二、准备知识

虽然按照后续过程能够实现最终目的,但本人强烈建议读者大致了解下以下知识点。(本人就是因为事先对有些知识不了解导致搭建过程中困难重重)

1,git的基本用法

2,gitolite和github

3,ssh认证

4,uginx代理服务器


三、搭建环境

服务器: Ubuntu11.04(本人使用的是虚拟机),需要已经启动了ssh服务。

测试客户端:Win7,需要先安装git


四、开始搭建

原文链接地址

https://github.com/gitlabhq/gitlabhq/blob/stable/doc/installation.md

参考:http://www.zhigang.net/(感谢这位网友的分享)


平台需求:


此项目被设计用于Linux操作系统。

也许可以工作在 FreeBSD 与 Mac OS 系统,但我们无法保证系统稳定性与功能完整性。

官方支持的 Linux 发行版:

  • Ubuntu Linux

  • Debian/GNU Linux

它应该工作于:

  • Fedora

  • CentOS

  • RedHat

你使用这些系统需要些运气,但不保证稳定性:

  • MacOS X

  • FreeBSD

GitLab 不能运行于 Windows 并且我们也没有支持的计划。

硬件需求:

我们推荐至少 1GB 内容用于 gitlab 实例。

本安装指南已于 Debian/Ubuntu 测试通过。

  • 安装总共需要6步:

  • 安装依赖包

  • 安装 Ruby

  • 安装 Gitolite

  • 安装与配置 GitLab

  • 启动前端Web服务器

  • 启动Resque进行(用于后台任务)

重要信息

在你发邮件列表询问安装与配置问题之前请确认你已经根据本文完成了所有步骤。

Only create a GitHub Issue if you want a specific part of this installation guide updated.

Also read the Read this before you submit an issue wiki page.

使用这个安装脚本可以轻易的跳过前3个步骤。

#安装curl与sudo
apt-getinstallcurlsudo

#三合一命令:)
curlhttps://raw.github.com/gitlabhq/gitlab-recipes/master/install/debian_ubuntu.sh|sh
使用这个命令默认的数据库依赖包是MysqL的.

现在你可以直接到到第四步

如果你在Amazon Web Services 使用 Ubuntu 12.04,你可以使用一个命令跳过所有步骤(1-6)

curlhttps://raw.github.com/gitlabhq/gitlab-recipes/master/install/debian_ubuntu_aws.sh|sh

更多详细信息,你可以阅读此脚本的 HOWTO 部分。


笔者注:本人使用了三合一命令欲跳过前三步,但后续安装怎么都不成功,后来才发现第二步安装有问题,按照第2步要求安装ruby就可以了。

所以请关注这个三个一命令状态,确保都能执行成功。

1. 安装依赖包

请记住,Debian 默认并没有安装 sudo,请使用 root 安装它:

apt-getupdate&&apt-getupgrade&&apt-getinstallsudo

现在你可以安装必须包:

sudoapt-getupdate
sudoapt-getupgrade

sudoapt-getinstall-ywgetcurlgcccheckinstalllibxml2-devlibxslt-devlibcurl4-openssl-devlibreadline6-devlibc6-devlibssl-devlibMysqL++-devmakebuild-essentialzlib1g-devlibicu-devredis-serveropenssh-servergit-corepython-devpython-piplibyaml-devpostfixlibpq-dev

数据库

sqlite

sudoapt-getinstall-ysqlite3libsqlite3-dev

MysqL

sudoapt-getinstall-yMysqL-serverMysqL-clientlibMysqLclient-dev

#LogintoMysqL
$MysqL-uroot-p

#CreatetheGitLabproductiondatabase
MysqL>CREATEDATABASEIFNOTEXISTS`gitlabhq_production`DEFAULTCHaraCTERSET`utf8`COLLATE`utf8_unicode_ci`;

#CreatetheMysqLUserchange$passwordtoarealpassword
MysqL>createuser'gitlab'@'localhost'IDENTIFIEDBY'$password';

#GrantproperpermissionstotheMysqLUser
MysqL>GRANTSELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTERON`gitlabhq_production`.*TO'gitlab'@'localhost';

Postgresql

sudoapt-getinstall-ypostgresql-9.2postgresql-server-dev-9.2

#Connecttodatabaseserver
sudo-upostgrespsql-dtemplate1

#Addausercalledgitlab.Change$passwordtoarealpassword
template1=#createusergitlabWITHPASSWORD'$password';

#CreatetheGitLabproductiondatabase
template1=#CREATEDATABASEIFNOTEXISTsgitlabhq_production;

#Grantallprivilegesondatabase
template1=#GRANTALLPRIVILEGESONDATABASEgitlabhq_productiontogitlab;

#QuitfromPostgresqlserver
template1=#\q

#Tryconnecttonewdatabase
$su-gitlab
$psql-dgitlabhq_production-Ugitlab

(译者注:以上3种数据库根据需要安装其一即可)

2. 安装 Ruby

wgethttp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p194.tar.gz
tarxfvzruby-1.9.3-p194.tar.gz
cdruby-1.9.3-p194
./configure
make
sudomakeinstall

3. 安装 Gitolite

为 Git 创建用户:

sudoadduser\
--system\
--shell/bin/sh\
--gecos'gitversioncontrol'\
--group\
--disabled-password\
--home/home/git\
git

为 GitLab 创建用户:

#ubuntu/debian
sudoadduser--disabled-login--gecos'gitlabsystem'gitlab

将 gitlab 用户添加到 git 用户组:

sudousermod-a-Ggitgitlab

将 git 用户添加到 gitlab 用户组:

sudousermod-a-Ggitlabgit

生成密钥:

sudo-H-ugitlabssh-keygen-q-N''-trsa-f/home/gitlab/.ssh/id_rsa

克隆 GitLab 的 Gitolite 分支源代码:

sudo-H-ugitgitclone-bgl-v304https://github.com/gitlabhq/gitolite.git/home/git/gitolite

安装:

cd/home/git
sudo-ugit-Hmkdirbin
sudo-ugitsh-c'echo-e"PATH=\$PATH:/home/git/bin\nexportPATH">>/home/git/.profile'
sudo-ugitsh-c'gitolite/install-ln/home/git/bin'

sudocp/home/gitlab/.ssh/id_rsa.pub/home/git/gitlab.pub
sudochmod0444/home/git/gitlab.pub

sudo-ugit-Hsh-c"PATH=/home/git/bin:$PATH;gitolitesetup-pk/home/git/gitlab.pub"

权限:

sudochmod-Rg+rwX/home/git/repositories/
sudochown-Rgit:git/home/git/repositories/

检查:退出并重新登录以使 git 用户组生效

#克隆admin资源库以将localhost添加到kNown_hosts
#并且确认gitlab用户有权访问gitolite
sudo-ugitlab-Hgitclonegit@localhost:gitolite-admin.git/tmp/gitolite-admin

#如果执行成功,你可以将其删除
sudorm-rf/tmp/gitolite-admin

重要! 如果你不能克隆 gitolite-admin 资源库,请不要继续本次安装,请根据Trouble Shooting Guide并且确认你已经小心的完成上文的全部步骤。


笔者注:这一步测试能否克隆成功。本人没有注意这个提示,完成后续安装后发现怎么都不能通过git@localhost:gitolite-admin.git的方式克隆工程,原因就是ssh认证失败,所以请务必确认这一点。顺便说下本人ssh认证失败的原因: /etc/ssh/sshd_config配置文件里面PubkeyAuthentication的值为no,意味着不允许公钥认证,改为yes就可以了。如果还是不能克隆,重复下第3步,并且注意每个命令是否执行成功。或者删除git和gitlab用户,重新执行第3步。


4. 克隆 GitLab 源代码并安装先决条件

sudogeminstallcharlock_holmes--version'0.6.8'
sudopipinstallpygments
sudogeminstallbundler
cd/home/gitlab

#Getgitlabcode.Usethisforstablesetup
sudo-H-ugitlabgitclone-bstablehttps://github.com/gitlabhq/gitlabhq.gitgitlab
(2013/1/6,最近发现最新的版本是4.0.0.rc2,这个版本已经没有支持sqlite,而我选择sql数据库的时候没有成功,
克隆之后执行
sudo-ugitlabgitcheckout2.9.1
可以回到2.9.1的版本,这个版本既支持sqlite,其gitlab管理界面也较美观。3.1.0以后的版本管理界面都有点难看。)
#Skipthisforstablesetup.(笔者注:执行了上个命令就不用执行这个命令了)
#Masterbranch(recentchanges,lessstable)
sudo-H-ugitlabgitclone-bmasterhttps://github.com/gitlabhq/gitlabhq.gitgitlab

cdgitlab

#Renameconfigfiles
sudo-ugitlabcpconfig/gitlab.yml.exampleconfig/gitlab.yml

选择你希望使用的数据库

笔者注:建议选择sqlite

#sqlite
sudo-ugitlabcpconfig/database.yml.sqliteconfig/database.yml

#MysqL
sudo-ugitlabcpconfig/database.yml.MysqLconfig/database.yml

#Postgresql
sudo-ugitlabcpconfig/database.yml.postgresconfig/database.yml

#修改config/database.yml确认输入了正确的用户名/密码

安装数据库 gems

#MysqL
sudo-ugitlab-Hbundleinstall--withoutdevelopmenttestsqlitepostgres--deployment

#或者postgres
sudo-ugitlab-Hbundleinstall--withoutdevelopmenttestsqliteMysqL--deployment

#或者sqlite
sudo-ugitlab-Hbundleinstall--withoutdevelopmenttestMysqLpostgres--deployment

初始化数据库

sudo-ugitlabbundleexecrakegitlab:app:setupRAILS_ENV=production

设置 GitLab hooks

sudocp./lib/hooks/post-receive/home/git/.gitolite/hooks/common/post-receive
sudochowngit:git/home/git/.gitolite/hooks/common/post-receive

确认应用程序状态:

sudo-ugitlabbundleexecrakegitlab:app:statusRAILS_ENV=production


#OUTPUTEXAMPLE
Startingdiagnostic
config/database.yml............exists
config/gitlab.yml............exists
/home/git/repositories/............exists
/home/git/repositories/iswritable?............YES
remote:Countingobjects:603,done.
remote:Compressingobjects:100%(466/466),done.
remote:Total603(delta174),reused0(delta0)
Receivingobjects:100%(603/603),53.29KiB,done.
Resolvingdeltas:100%(174/174),done.
Canclonegitolite-admin?............YES
UMASKfor.gitolite.rcis0007?............YES
/home/git/share/gitolite/hooks/common/post-receiveexists?............YES

笔者注:如果所有结果都是 YES,恭喜!你可以继续进行下一步。

5. 设置 web server

应用可以用下一个命令行动:

#用于测试目的
sudo-ugitlabbundleexecrailss-eproduction

#用于守护进程
sudo-ugitlabbundleexecrailss-eproduction-d

默认登录用户名及密码:

笔者注:记住这个用户名和密码,在通过浏览器登录gitlab工程主页的时候有用。

admin@local.host
5iveL!fe

6. 运行 Resque 进程(用于处理工作队列)

#手动启动
sudo-ugitlabbundleexecrakeenvironmentresque:workQUEUE=*RAILS_ENV=productionBACKGROUND=yes

#GitLab启动脚本
sudo-ugitlab./resque.sh
#如果你使用root运行此脚本,会导致/home/gitlab/gitlab/tmp/pids/resque_worker.pid文件的拥有者为root
#将导致resque在下一次系统初始化中无法启动

自定义 Resque 使用的 Redis 连接

如果你希望 Resque 连接到一个非标准端口号或另一台服务器上的 Redis,你可以在 config/resque.yml 文件修改连接信息:

production:redis.example.com:6379

好了,我们已经拥有了一个工作正常的 GitLab 了,但请继续下去,有一些事情是必须完成的。

Nginx 与 Unicorn

1. Unicorn

cd/home/gitlab/gitlab
sudo-ugitlabcpconfig/unicorn.rb.exampleconfig/unicorn.rb
sudo-ugitlabbundleexecunicorn_rails-cconfig/unicorn.rb-Eproduction-D

2. Nginx

#初次安装Nginx
sudoapt-getinstallNginx

#添加GitLab到Nginxsites
sudowgethttps://raw.github.com/gitlabhq/gitlab-recipes/master/Nginx/gitlab-P/etc/Nginx/sites-available/
sudoln-s/etc/Nginx/sites-available/gitlab/etc/Nginx/sites-enabled/gitlab

#修改**YOUR_SERVER_IP**与**YOUR_SERVER_FQDN**
#为起初的IP地址与准备让GitLab服务的域名
sudovim/etc/Nginx/sites-enabled/gitlab

笔者注:本人最初的时候不知道这个配置文件怎么配置,在浏览器里输入服务器ip的时候老是出现“welcometoNginx”页面。后来的配置是listion80;#监听所有80端口的客户端请求server_name:192.168.1.120;#这是我ubuntu服务器的ip地址。因为我们是小组局域网访问,所以直接配ip地址就可以了。远程访问的话可以通过vpn链接。#重启Nginx:
sudo/etc/init.d/Nginxrestart

3. Init 脚本

在 /etc/init.d/gitlab 创建 init 脚本:

sudowgethttps://raw.github.com/gitlabhq/gitlab-recipes/master/init.d/gitlab-P/etc/init.d/
sudochmod+x/etc/init.d/gitlab

设置 GitLab 自动启动:

sudoupdate-rc.dgitlabdefaults21

现在你可以用这种方式启动/重启/停止 GitLab 服务:

sudo/etc/init.d/gitlabrestart


至此搭建过程全部完成,关于添加用户和创建工程请参考这篇博文:

http://www.jb51.cc/article/p-xinaqjuz-ow.html

centos gitlab安装的更多相关文章

  1. 详解前端HTML5几种存储方式的总结

    本篇文章主要介绍了前端HTML5几种存储方式的总结 ,主要包括本地存储localstorage,本地存储sessionstorage,离线缓存(application cache),Web SQL,IndexedDB。有兴趣的可以了解一下。

  2. PhoneGap / iOS上的SQLite数据库 – 超过5mb可能

    我误解了什么吗?Phonegap中的sqlitedbs真的有5mb的限制吗?我正在使用Phonegap1.2和iOS5.解决方法您可以使用带有phonegap插件的原生sqliteDB,您将没有任何限制.在iOS5.1中,Websql被认为是可以随时删除的临时数据…

  3. ios – 领域:如何获取数据库的当前大小

    是否有RealmAPI方法使用RealmSwift作为数据存储来获取我的RealmSwift应用程序的当前数据库大小?

  4. 在Xcode中安装的git中禁用osxkeychain凭证帮助程序

    解决方法如果您的问题主要关注的是安全性,并且您希望每次都输入密码,那么我会接受钥匙串以适应您的目标>进入osx钥匙串应用程序,>如果您使用的是https,请查找服务器名称>通过单击更改其设置,并在选项卡“访问控制”标记“询问钥匙串密码”下>如果需要,请从列入白名单的应用程序列表中删除git-credential-osxkeychain应用程序.请注意,在Linux上,默认行为也是自动发送凭据.

  5. ios – Realm – 无法使用现有主键值创建对象

    我有一个对象有许多狗的人.应用程序有单独的页面,它只显示狗和其他页面显示人的狗我的模型如下我有人存储在Realm中.人有详细页面,我们取,并显示他的狗.如果狗已经存在,我会更新该狗的最新信息并将其添加到人的狗列表中,否则创建新狗,保存并将其添加到人员列表中.这适用于coredata.在尝试用他的狗更新人时,领域会抛出异常无法使用现有主键值创建对象解决方法这里的问题是,即使你正在创建一个全新的Rea

  6. ios – UIWebView中的WebSQL / SQLite数据库的最大大小(phonegap)

    我知道一般来说,Web应用程序的本地存储空间有5MB的限制.本地网页浏览应用程式是否也有这个限制?

  7. macos – 运行brew命令充满了’同意Xcode / iOS许可证需要管理员权限,请通过sudo以root身份重新运行.’

    所以我跑了:如果滚动到底部,可以输入“同意”,然后就可以了.

  8. ios – Xcode Server 4.0 git从构建触发脚本推送

    我为一个托管在github上的项目安装了一个XcodeBot.我按照步骤和设置机器人来使用我现有的SSH密钥.验证成功,项目结算和建立.然后,我在预触发器操作中添加了一个shell脚本,它增加了plist中的版本,将其标记,并将该更改提交到github.但是当我尝试从shell脚本执行gitpush时,我得到:–推送到git@github.com:spex-app/spex-ios.git权限被拒

  9. xcode – 为什么Jenkins在我的Mac上运行不会连接到本地的git repo?

    我正在尝试使用Jenkins实现自动化构建,用于我的iOS项目.我添加了Git插件,但是一旦我尝试将git的URL放在项目的git配置中,它会在下面的屏幕截图中显示错误.这里Jenkins不能从repo克隆到其工作空间.解决方法在大多数情况下,gitbarerepo有扩展名.git我的意思是(其他)/test1看起来不正确,我认为应该是(其他)/test1.git在我的mac上有同样的错误.

  10. ios – Firebase离线存储高级 – 手动同步和进度信息

    >我可以提供一个捆绑数据库–安装App后我可以已经离线查询了Firebase数据?然后我有另一个关于Firebase的主要问题:>JSON存储是伟大的–但是这样我们不关心一个独特的结构,我们必须注意这一点插入总是正确的数据集?我从来没有试图显示实际的进展,但是当您从firebase中检索数据时,始终会在成功检索数据时调用onDataChange方法.https://firebase.google.com/docs/database/android/retrieve-data#read_data_onceC

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部