最新文章
AppMobi发布HTML 5开发工具XDK
03-26 11:55
jqGrid的重要选项详解
03-26 11:52
解说HTML 5 语义化
03-26 11:50
HTML/CSS一些需要注意的基础知识
03-26 11:47
分享10个web前端简单实用的jQuery代码片段
03-26 11:42
分享七大无需编程的DIY开发工具
03-26 11:33
解说centos6.3搭建一个git服务器
一、环境信息
- 操作系统:CentOS 6.3 (Final)
- Git 版本:1.7.1
- 工具:Gitolite
搭建 Git 服务器的步骤相对简单,需要安装 Git、SSH 支持、Gitolite 并配置公钥。本文全部采用 yum 包进行安装。
二、CentOS 系统搭建步骤
1. 安装必要软件
登录服务器,以 root 用户身份执行以下命令进行安装:
<a id="heading-3-安装基本依赖"></a>
# 安装基本依赖
yum install perl openssh git
若安装失败,需要安装以下依赖包:
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
2. 创建 Git 用户
创建一个专门用于 Git 服务的用户,并设置相关目录权限:
<a id="heading-5-创建-git-用户"></a>
# 创建 git 用户
adduser --system --shell /bin/sh --create-home --home-dir /home/git git
<a id="heading-6-切换到-git-用户主目录"></a>
# 切换到 git 用户主目录
cd /home/git
<a id="heading-7-创建仓库目录"></a>
# 创建仓库目录
mkdir repositories
<a id="heading-8-更改仓库目录的所有者为-git-用户"></a>
# 更改仓库目录的所有者为 git 用户
chown git:git -R ./repositories
<a id="heading-9-设置仓库目录权限"></a>
# 设置仓库目录权限
chmod 700 ./repositories
3. 安装 Gitolite
切换至刚创建的 git 用户,执行以下操作:
<a id="heading-11-切换到-git-用户"></a>
# 切换到 git 用户
su git
<a id="heading-12-克隆-Gitolite-仓库"></a>
# 克隆 Gitolite 仓库
git clone git://github.com/sitaramc/gitolite
<a id="heading-13-创建-bin-目录"></a>
# 创建 bin 目录
mkdir -p $HOME/bin
<a id="heading-14-安装-Gitolite-到-bin-目录"></a>
# 安装 Gitolite 到 bin 目录
gitolite/install -to $HOME/bin
在安装过程中,可能会报错提示缺少模块,此时需要切换到 root 用户安装缺失的模块,例如 perl-Time-HiRes:
<a id="heading-15-切换到-root-用户"></a>
# 切换到 root 用户
su -
<a id="heading-16-输入服务器-root-密码"></a>
# 输入服务器 root 密码
<a id="heading-17-安装缺失的模块"></a>
# 安装缺失的模块
yum install perl-Time-HiRes
<a id="heading-18-切换回-git-用户"></a>
# 切换回 git 用户
su git
<a id="heading-19-再次安装-Gitolite-到-bin-目录"></a>
# 再次安装 Gitolite 到 bin 目录
gitolite/install -to $HOME/bin
4. 生成并复制公钥
在本机(本文以 Debian 系统为例)生成 SSH 密钥:
<a id="heading-21-生成-SSH-密钥"></a>
# 生成 SSH 密钥
ssh-keygen
<a id="heading-22-切换到-SSH-密钥目录"></a>
# 切换到 SSH 密钥目录
cd /root/.ssh
该目录下会生成 id_rsa.pub 和 id_rsa 文件,分别为公钥和私钥。如果之前安装过 OpenSSL 并生成过密钥,注意不要覆盖。
将公钥复制到服务器的 /tmp 目录:
<a id="heading-23-复制公钥到服务器"></a>
# 复制公钥到服务器
scp ~/.ssh/id_rsa.pub server_username@server_host:/tmp
<a id="heading-24-输入密码"></a>
# 输入密码
5. 配置 Gitolite
回到服务器,执行以下操作:
<a id="heading-26-切换到--tmp-目录"></a>
# 切换到 /tmp 目录
cd /tmp
<a id="heading-27-重命名公钥文件"></a>
# 重命名公钥文件
mv id_rsa.pub admin.pub
将公钥文件重命名为 admin.pub 是因为 Gitolite 根据文件名来设立帐号,这里使用 admin 作为帐号名。
<a id="heading-28-切换到-git-用户"></a>
# 切换到 git 用户
su git
<a id="heading-29-使用公钥初始化-Gitolite"></a>
# 使用公钥初始化 Gitolite
$HOME/bin/gitolite setup -pk admin.pub
初始化完成后,在 /home/git/repositories 目录下可以看到 gitolite-admin.git 和 test.git 两个仓库文件,分别用于管理仓库和测试。
6. 拉取服务器代码
在本机拉取服务器的 gitolite-admin 仓库:
git clone git@server_host:gitolite-admin
进入仓库后,可以看到 conf 和 keydir 目录。conf/gitolite.conf 是用于添加用户和仓库的配置文件,keydir 目录用于存放对应用户的公钥。修改配置后,可直接进行 push 操作。
三、Debian 系统注意事项
在 Debian 系统上搭建步骤与 CentOS 基本相同,唯一需要注意的是 adduser 命令的参数不同:
adduser --system --shell /bin/sh --home /home/git git
通过以上步骤,你可以在 CentOS 6.3 系统上成功搭建一个 Git 服务器,并使用 Gitolite 进行仓库管理。