部署环境: Ubuntu 12.04.3-server-stable
官方文档: https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/
严重声明:Ubuntu系统我真心不怎么会用,好多命令不是特别清楚,有什么不对的地方,别骂...轻轻的告诉俺,俺会认真改的!
一.Git的介绍
参照文档:http://www.open-open.com/lib/view/open1332904495999.html
二.Git初体验
Git通常有两种方式来进行初始化:
git clone: 这是较为简单的一种初始化方式,当你已经有一个远程的Git版本库,只需要在本地克隆一份,例如'git clone git://github.com/someone/some_project.git some_project'命令就是将'git://github.com/someone/some_project.git'这个URL地址的远程版 本库完全克隆到本地some_project目录下面
git init和git remote:这种方式稍微复杂一些,当你本地创建了一个工作目录,你可以进入这个目录,使用'git init'命令进行初始化,Git以后就会对该目录下的文件进行版本控制,这时候如果你需要将它放到远程服务器上,可以在远程服务器上创建一个目录,并把 可访问的URL记录下来,此时你就可以利用'git remote add'命令来增加一个远程服务器端,例如'git remote add origin git://github.com/someone/another_project.git'这条命令就会增加URL地址为'git: //github.com/someone/another_project.git',名称为origin的远程服务器,以后提交代码的时候只需要使用 origin别名即可
三.搭建
1. 部署基本需求包
wzg@GitServer:~$ sudo apt-get update
wzg@GitServer:~$ sudo apt-get install vim
wzg@GitServer:~$ 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
修改默认编辑器为vim
wzg@GitServer:/opt$ sudo update-alternatives --set editor /usr/bin/vim.basic
python 2.5+以上版本,3.x以下均可
wzg@GitServer:~$ sudo apt-get install -y python2.7
###尝试是否可以通过命令 :python 和 python2 进入python
#wzg@GitServer:~$ which python
#/usr/bin/python
#wzg@GitServer:~$ which python2
#/usr/bin/python2
wzg@GitServer:~$ sudo apt-get install -y python-docutils
2. 安装Git 核心程序(git-1.7.10 or higher)
wzg@GitServer:~$ sudo apt-get install -y git-core
如果apt-get安装后,发现 Git 版本太旧 (git --version),那么需要移除之后,手动下载源码包进行编译安装
wzg@GitServer:/opt$ sudo wget https://git-core.googlecode.com/files/git-1.8.4.1.tar.gz
wzg@GitServer:/opt$ sudo tar zxf git-1.8.4.1.tar.gz
获取make命令 ,预编译
wzg@GitServer:/opt$ sudo apt-get install make
wzg@GitServer:/opt/git-1.8.4.1$ sudo make prefix=/usr/local all
# Install into /usr/local/binsudo 安装
wzg@GitServer:/opt/git-1.8.4.1$ make prefix=/usr/local install
如果需要日后收到邮件通知,那么还需要安装邮件服务器postfix
wzg@GitServer:/opt$ sudo apt-get install -y postfix
3. 安装ruby
wzg@GitServer:/opt$ sudo wget ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p353.tar.gz | tar zxf
wzg@GitServer:/opt$ cd ruby-2.0.0-p353/
wzg@GitServer:/opt/ruby-2.0.0-p353$ ./configure --disable-install-doc && sudo make && sudo make install
安装gem
wzg@GitServer:/opt/ruby-2.0.0-p353$ sudo apt-get install gem
wzg@GitServer:/opt/ruby-2.0.0-p353$ sudo gem install bundler --no-ri --no-rdoc
4. 添加 用户
wzg@GitServer:/opt/ruby-2.0.0-p353$ sudo adduser --disabled-login --gecos 'GitLab' git --gecos 通用编译程序,描述git用户的信息
5. 安装GitLab Shell
wzg@GitServer:/opt$ cd /home/git/
wzg@GitServer:/opt$ sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-shell.git -b v1.8.0
wzg@localhost:/home/git$ cd gitlab-shell/
wzg@GitServer:/opt/gitlab-shell$ sudo -u git -H cp config.yml.example config.yml
修改访问gitlab 的 url
wzg@GitServer:/opt/gitlab-shell$ sudo -u git -H editor config.yml
安装
wzg@GitServer:/opt/gitlab-shell$ sudo -u git -H ./bin/install
________________________ruby git主程序安装完毕__________________________________
6. 安装mysql数据库,并授权 (安装过程略)
wzg@localhost:/home/git/gitlab-shell$ sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev
提示你输入mysql的root用户密码:****** (此处必填,不然会重复提示让你输入mysql密码)
mysql> CREATE USER 'git'@'localhost' IDENTIFIED BY 'PASSWORD';
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';
测试登陆是否正常
wzg@GitServer:/opt/gitlab-shell$ sudo -u git -H mysql -u git -p -D gitlabhq_production
7. 安装GitLab到 /home/git
wzg@GitServer:/opt/gitlab-shell$ cd /home/git
从源码路径获取gitlab,主要用来做gitlab服务配置以及web内面的管理(其他作用我还没研究到那)
wzg@GitServer:/home/git$ sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 6-4-stable gitlab
wzg@GitServer:/home/git$ cd /home/git/gitlab
配置Gitlab
wzg@GitServer:/home/git/gitlab$ sudo su git -c "cp gitlab.yml.example gitlab.yml"
wzg@GitServer:/home/git/gitlab$ sudo chown -R git log/
wzg@GitServer:/home/git/gitlab$ sudo chown -R git tmp/
#查询git用户是否对于log和tmp目录有可写刻度权限,755即可!
###查询过程略过不写
创建卫星目录
wzg@GitServer:/home/git/gitlab$ sudo -u git -H mkdir /home/git/gitlab-satellites
创建socket和pid目录,并确保git有可读可写权限755
wzg@GitServer:/home/git/gitlab$ sudo -u git -H mkdir tmp/{pids,sockets}
创建备份目录以及上传目录,并确保git具有可读可写权限755
wzg@GitServer:/home/git/gitlab$ sudo -u git -H mkdir public/uploads
wzg@GitServer:/home/git/gitlab$ sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
wzg@GitServer:/home/git/gitlab$ sudo vim unicorn.rb
##如果你的负载较高,那么可以启用集群模式,调节worker_processes为更大值,具体值的大小,和你的Git服务器内存息息相关
wzg@GitServer:/home/git/gitlab$ sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb
配置git用户全局设置。(当通过web编辑时生效)
wzg@GitServer:/home/git/gitlab$ sudo -u git -H git config --global user.name "GitLab"
wzg@GitServer:/home/git/gitlab$ sudo -u git -H git config --global user.email "gitlab@localhost"
###此处git用户的邮箱,必须和 conf/gitlab.yml和config/unicorn.rb中的配置相匹配
wzg@GitServer:/home/git/gitlab$ sudo -u git -H git config --global core.autocrlf input
8.配置Gitlab 的 DB相关配置
wzg@GitServer:/home/git/gitlab$ sudo -u git cp config/database.yml.mysql config/database.yml
wzg@localhost:/home/git/gitlab$ sudo vim config/database.yml
---由于之前只建了一个数据库“gitlabhq_production”因此这里修改一处即可
9.安装Gems
wzg@localhost:/home/git/gitlab$ sudo -u git -H bundle install --deployment --without development test postgres aws (如果失败的话,多试一次)
如下是安装完成的输出信息
10.初始化数据库,并且 激活特性
wzg@localhost:/home/git/gitlab$ sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production
图示如下
安装完成
wzg@localhost:/home/git/gitlab$ sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
wzg@localhost:/home/git/gitlab$ sudo update-rc.d gitlab defaults 21
12.将程序的日志加入日志轮循系统
wzg@localhost:/home/git/gitlab$ sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab
13.启动git程序
wzg@localhost:/home/git/gitlab$ sudo service gitlab start
14.编译资产(具体这步在干嘛,俺也不清楚...但是有资料这么说,哎,没办法,我是菜,我照做)
wzg@localhost:/home/git/gitlab$ sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production
15.安装nginx--- nginx的安装不用说了吧,太easy了,我偷懒了哦
wzg@localhost:/home/git/gitlab$ sudo apt-get install nginx
配置nginx(人家gitlab有自带的模板,不用你操心,只需要偶尔小修改下就可以)
wzg@localhost:/home/git/gitlab$ sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlab
wzg@localhost:/home/git/gitlab$ sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab
启动nginx
wzg@localhost:/home/git/gitlab$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
wzg@localhost:/home/git/gitlab$ sudo nginx
#OK!恭喜你,搭建完成了,此时登陆 http://IP 即可访问你的git-web了,从中有好多妙用,自己体会吧 默认用户: admin@local.host 默认密码: 5iveL!fe
##本人在使用360浏览器打开的时候,出来的图比较恶心,好多图标特别小,建议使用其他的浏览器,##效果非常好!
##当然了,如果你还不放心,担心哪步出错了,可以执行如下命令,它会告诉你哪里可能没完成
wzg@localhost:/home/git/gitlab$ sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
…………………………现在,我们来引入ldap认证到git系统中……………………………………………
1、编辑配置文件
wzg@localhost:/home/git/gitlab$ sudo vim config/gitlab.yml
2. 这时ldap认证也做完了,此时还需要修改ssh相关,否则web页面的一些操作无法完成
提示如下
解决方法如下:
wzg@localhost:/home/git/gitlab$ sudo su - git
git@localhost:~$ ssh-keygen -t rsa -C "admin@local.host"
git@localhost:~$ cd .ssh/
git@localhost:~/.ssh$ cat id_rsa.pub
附注一些我在其他地方看到的信息:
svn/memcache和git/redis的差异
memcache和redis是不一样的,更多的人需要的是一个暂时的缓存,而不是落地的数据。至少我遇到的情况,大部分都是使用memcache更合适。如果他们都使用redis的话,会产生很多可能开发者并不需要的落地数据,这些数据可能每天都会占掉很多空间。
给大家搜集了很详细的信息
http://blog.csdn.net/litaohill/article/details/7755881 里边有好多git的用法,自己慢慢看吧
转载于:https://blog.51cto.com/jishuweiwang/1353235