解说centos6.3搭建一个git服务器

2015年03月22日 16:49 0 点赞 0 评论 更新于 2025-11-21 18:11

一、环境信息

  • 操作系统:CentOS 6.3 (Final)
  • Git 版本:1.7.1
  • 工具:Gitolite

搭建 Git 服务器的步骤相对简单,需要安装 Git、SSH 支持、Gitolite 并配置公钥。本文全部采用 yum 包进行安装。

二、CentOS 系统搭建步骤

1. 安装必要软件

登录服务器,以 root 用户身份执行以下命令进行安装:

# 安装基本依赖
yum install perl openssh git

若安装失败,需要安装以下依赖包:

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel

2. 创建 Git 用户

创建一个专门用于 Git 服务的用户,并设置相关目录权限:

# 创建 git 用户
adduser --system --shell /bin/sh --create-home --home-dir /home/git git
# 切换到 git 用户主目录
cd /home/git
# 创建仓库目录
mkdir repositories
# 更改仓库目录的所有者为 git 用户
chown git:git -R ./repositories
# 设置仓库目录权限
chmod 700 ./repositories

3. 安装 Gitolite

切换至刚创建的 git 用户,执行以下操作:

# 切换到 git 用户
su git
# 克隆 Gitolite 仓库
git clone git://github.com/sitaramc/gitolite
# 创建 bin 目录
mkdir -p $HOME/bin
# 安装 Gitolite 到 bin 目录
gitolite/install -to $HOME/bin

在安装过程中,可能会报错提示缺少模块,此时需要切换到 root 用户安装缺失的模块,例如 perl-Time-HiRes

# 切换到 root 用户
su -
# 输入服务器 root 密码
# 安装缺失的模块
yum install perl-Time-HiRes
# 切换回 git 用户
su git
# 再次安装 Gitolite 到 bin 目录
gitolite/install -to $HOME/bin

4. 生成并复制公钥

在本机(本文以 Debian 系统为例)生成 SSH 密钥:

# 生成 SSH 密钥
ssh-keygen
# 切换到 SSH 密钥目录
cd /root/.ssh

该目录下会生成 id_rsa.pubid_rsa 文件,分别为公钥和私钥。如果之前安装过 OpenSSL 并生成过密钥,注意不要覆盖。

将公钥复制到服务器的 /tmp 目录:

# 复制公钥到服务器
scp ~/.ssh/id_rsa.pub server_username@server_host:/tmp
# 输入密码

5. 配置 Gitolite

回到服务器,执行以下操作:

# 切换到 /tmp 目录
cd /tmp
# 重命名公钥文件
mv id_rsa.pub admin.pub

将公钥文件重命名为 admin.pub 是因为 Gitolite 根据文件名来设立帐号,这里使用 admin 作为帐号名。

# 切换到 git 用户
su git
# 使用公钥初始化 Gitolite
$HOME/bin/gitolite setup -pk admin.pub

初始化完成后,在 /home/git/repositories 目录下可以看到 gitolite-admin.gittest.git 两个仓库文件,分别用于管理仓库和测试。

6. 拉取服务器代码

在本机拉取服务器的 gitolite-admin 仓库:

git clone git@server_host:gitolite-admin

进入仓库后,可以看到 confkeydir 目录。conf/gitolite.conf 是用于添加用户和仓库的配置文件,keydir 目录用于存放对应用户的公钥。修改配置后,可直接进行 push 操作。

三、Debian 系统注意事项

在 Debian 系统上搭建步骤与 CentOS 基本相同,唯一需要注意的是 adduser 命令的参数不同:

adduser --system --shell /bin/sh --home /home/git git

通过以上步骤,你可以在 CentOS 6.3 系统上成功搭建一个 Git 服务器,并使用 Gitolite 进行仓库管理。

作者信息

menghao

menghao

共发布了 3994 篇文章