配置gitosis(以CentOS为例)

此页由Linux Wiki用户Chenxing于2010年12月15日 (星期三) 21:57的最后更改。

出自Linux Wiki

提示:此文已超过 4 年(1799 天)未更新,如发现内容过时或有误,欢迎改进:)

Git是当下流行的版本控制软件,gitosis使管理Git服务器的流程大大简化。本文以CentOS为例介绍配置gitosis的流程,它也适用于多数发行版。

Hint.gif
提示:
如果建立的是公开的版本库,可以直接用GitHub等平台而无需自己架设服务器。

目录

安装软件

首先安装git和gitosis,多数发行版的仓库有这两个软件。CentOS则需要先添加EPEL软件仓库。[1]如果你的发行版里没有这两个软件,就直接去网站上安装吧。

根据不同发行版软件包的不同,安装后系统会做一定的配置。请查看/etc/passwd,看看是不是已经出现了新的跟git有关的用户,(比如CentOS中会出现名为gitosis的用户)。如果没有,则需要自己添加一个用户,所有跟git代码库有关的读写将通过这个用户完成,如

sudo adduser --system --shell /bin/sh --gecos 'git user' --group --disabled-password --home /home/gitosis gitosis

准备管理员密钥

这里需要说明,gitosis的配置文件是用Git管理的,用户的认证则是通过密钥。首次初始化gitosis时,需要提供一个管理员帐户,该帐户可处于任何电脑上,用其密钥做为身份标志。

所以要先准备一个管理员密钥,这可以在服务器上做,也可以在客户机上做:

ssh-keygen -t rsa

注意不要修改产生的文件的位置(默认在~/.ssh/中),密码可以不输(该密码只是用来保护密钥文件的)。这样将在~/.ssh中生成id_rsaid_rsa.pub两个文件,前者是密钥(如同密码,注意保护),后者是公钥。如果是在客户机上操作的,需要把公钥传到服务器上。假设这个文件叫id_rsa.pub

初始化gitosis

现在回到服务器上,id_rsa.pub已经准备好,当前用户是root。执行如下命令:

sudo -H -u gitosis gitosis-init < [path of your id_rsa.pub]

注意第一个gitosis是git帐户的用户名,如果你的发行版名字不同请做相应更改。-H选项很重要,因为代码库要放到gitosis的Home目录里, 不是root的。

至此,gitosis服务器已经配置完毕,接下来对用户、项目的控制要通过Git完成。

获取配置文件

在刚才生成密钥的电脑上,用git clone获取配置文件

git clone gitosis@example.com:gitosis-admin.git

注意将example.com改成服务器的域名。

我们将得到一个gitosis-admin文件夹,它里面有gitosis.conf文件和一个叫keydir/的子文件夹。[2]

首先,keydir/是存放用户公钥的一些.pub文件,用户名对应pub文件的文件名(不含.pub后缀),要添加用户时,让用户按前面的方法准备一个密钥,并对相应的.pub文件放在keydir里,命好名就行了。

用户权限的管理则是通过这个gitosis.conf文件,如以下代码段建一个名为test的组,有t1、t2两个成员,他们可以读写testProj项目:

[group test]
writable = testProj
members = t1 t2

更多的例子请参阅gitosis的文档[3]

每次配置好后,按照Git的风格,需要commit、push到服务器端。修改是立即生效的。

相关资料

  1. Howto: Install git, gitosis & gitweb on CentOS 5
  2. Gitosis - Archwiki
  3. gitosis - SWiK

本文对您有帮助?分享给更多朋友!

反馈与讨论

发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。
个人工具
简体繁体转换