CentOS 如何安装git server + Gitolite 【配置不成功需要再测试2015-8-20】

时间:2023-02-07 02:24:20

安装git

关于安装git  可以参考 http://gitolite.com/gitolite/install.html 里面有官方的介绍

1. Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
2. 然后到官网http://git-scm.com/download/linux下载最新版本源码安装,或者使用系统提供的包管理工具安装.
3. 下载后解压 进入文件夹
tar xzf git-2.3.5.tar.gz
cd git-2.3.5
4. 网上找了半天资料发现没有有用的自己翻看 readme来解决 通过readme 知道安装需要查看 install 文件 

Normally you can just do "make" followed by "make install", and that
will install the git programs in your own ~/bin/ directory.  If you want
to do a global install, you can do

$ make prefix=/usr all doc info ;# as yourself
 # make prefix=/usr install install-doc install-html install-info ;# as root

(or prefix=/usr/local, of course).

我这采用的是:

make prefix=/usr/local all
make prefix=/usr/local install

git --version  #如果能显示版本号,即表示成功

5. 为git增加专门用户

# adduser git

# passwd git

在git用户家目录下安装gitolite

6. 切换到 git用户

# su – git  //记住 切换后默认计入 git 家目录

如果切换后 变成

bash-4.1$  请参考 linux问题: 切换用户之后变成-bash-4.1$

7. 创建文件夹bin

$ mkdir bin  //如果不在 git家目录下 可以 输入 $mkdir -p $HOME/bin

8. 克隆gitolite源码

$ git clone https://github.com/sitaramc/gitolite.git 
$ ls 
bin  gitolite

 9. 安装gitolite

$ ./gitolite/install -to /home/git/bin/  或  $ gitolite/install -to $HOME/bin

$ cd bin/ 
$ ls 
commands  gitolite  gitolite-shell  lib  syntactic-sugar  triggers  VERSION  VREF

配置gitolite管理员

10. 生成管理员账户的公钥

# ssh-keygen   (此处指定本地root用户为管理员,键入回车使用默认值)

复制管理的公钥

# cp .ssh/id_rsa.pub /tmp/git.pub

11. 切换回git用户,为gitolite配置管理员

$ /home/git/bin/gitolite setup -pk /tmp/git.pub

 $ ls 
bin  gitolite  projects.list  repositories

管理员日常管理

12. 管理员clone管理库

# pwd 
/root/gitolite-admin 
# ls 
conf  keydir
13. 创建库、添加用户

例如某test123用户访问git服务器上的myFirstRepo库

test123用户向git服务器管理(此处是之前的服务器本地的root用户)提交自己的ssh无密码公钥

管理员将test123的公钥复制到 gitolite-admin/keydir/ 下

# cp test123.pub /root/gitolite-admin/keydir/

管理员创建myFirstRepo库,并给test123分配权限

# cd gitolite-admin/conf/ 
# vim gitolite.conf

默认内容为:

repo gitolite-admin 
    RW+ =   admin 
repo testing 
    RW+ =   @all

下边定义myFirstRepo库,并且指定用户权限:

repo gitolite-admin 
    RW+ =   admin 
repo testing 
    RW+ =   @all 
@myGroup=admin  test123 
repo myFirstRepo 
    RW+ =   @myGroup

注:此处@myGroup是一个组,给myGroup组赋予对myFirstRepo这个库的读、写、推送的权限(详细规则可参考gitolite的readme.txt)

管理员将对gitolite-admin的修改(建库、加用户)提交到git服务器

# pwd 
/root/gitolite-admin

# git add * 
# git commit -m

或者命令如下:

把gitolite-admin下的变更都commit,并push到服务器上

。服务器上的Gitolite会根据内容自动建立新的git版本库,并放置在服务器专有账号主目录下的repositories文件夹下:
git add conf
git add keydir
git commit -m "added foo repo, gave access to Jason"
git push