本文介绍Ubuntu16.04 64位环境下Repo服务器的搭建。

Repo是Google用Python写的用于管理数多个git工程的脚本,Android SDK源码就是用这个工具管理的,下面具体介绍Repo服务器的搭建流程:

1.git服务器的搭建

(1)下载Ubuntu镜像http://www.ubuntu.org.cn/download/desktop,并安装好

(2)启用root账户

sudo passwd root

(3)切换至root账户,

su

(4)安装openssh-server,git, keychain

apt-get install openssh-server git keychain

openssh-server:用于远程登录

git:用于管理工程

keychain:公钥私钥管理工具

(5)添加git账户,设置git账户密码
adduser git

passwd git

(6)切换至git账户

su - git

(7)切换到git用户主目录

cd ~

(8)下载gitolite代码,这个代码用于搭建git服务器

git clone https://github.com/sitaramc/gitolite.git

(9)创建文件夹

mkdir bin

(9)将管理员的公钥拷贝到当前目录下,如feigao.pub,管理员的公钥和私钥可用如下命令生成

ssh-keygen -t rsa -C "xxxx@xx.com",其中xxx@xx.com为管理员邮箱

(10)执行如下命令

gitolite/install -to $HOME/bin
$HOME/bin/gitolite setup -pk feigao.pub

(11)将管理员的$HOME/.ssh文件夹下的id_rsa复制到/home/git/.ssh目录下并重命名为feigao

(12)修改相关权限

chown git:git feigao*
chmod 600 .ssh/feigao*


2.添加多个管理员(在客户端管理员账户下操作)

(1)克隆gitolite-admin仓库

git clone git@host:gitolite-admin

(2)添加管理员公钥

cd gitolite-admin
cp lhg.pub

(3)添加管理员用户

vim conf/gitolite.conf

nvm 国内镜像 国内镜像服务器_vim

将lhg置为管理人员,这样lhg也有权限操作gitolite-admin仓库了

(4)更新至远程仓库

git add -A
git commit -m"add lhg for admins"
git push origin master


3.REPO镜像服务器搭建(在服务端git账户下操作)

(1)从芯片厂商获取原始repo工具,并解压到$HOME目录下

(2)添加至git仓库

cp -r repo repositories/
git clone --bare repo repo.git
cd ../

(2)从芯片厂商获取的初始SDK包之后,解压并执行相关命令

cd repositories
mkdir wear_sdk
tar XX.tar.gz -C wear_sdk
cd wear_sdk
.repo/repo/repo sync -l
.repo/repo/repo sync

(3)如果遇到权限问题,执行如下操作:

cd ~
vim .bashrc

在文件末尾添加如下配置,确保sdk_private_key这个私钥文件在.ssh目录下存在且与芯片厂商服务器的公钥对应

nvm 国内镜像 国内镜像服务器_vim_02

cd -
.repo/repo/repo sync

(4)查看所有的git工程

.repo/repo/repo list

nvm 国内镜像 国内镜像服务器_服务器_03

从上图中可以看到一共有6个git工程,在每个git工程的同级目录XXXDIR下,执行:

git clone --bare XXXDIR  XXXDIR.git


4.REPO镜像服务器搭建(在客户端管理员账户下操作)

(1)添加git仓库地址

cd gitolite-admin
vim conf/gitolite.conf

添加如下配置

nvm 国内镜像 国内镜像服务器_git_04

(2)提交gitolite-admin相关配置

git add -A
git commit -m"add wear_sdk repositories"
git push origin master

(3)克隆manifest

cd ../
git clone git@host:wear_sdk/manifest
vim wear_sdk_dev.xml

添加如下配置

nvm 国内镜像 国内镜像服务器_git_05

(4)提交manifest配置

git addd -A
git commit -m"add wear_sdk_dev.xml for sync repositories"
git push origin master:wear_sdk_dev


5.REPO镜像服务器测试(在客户端管理员账户下操作)

(1)克隆REPO仓库

git clone git@host:repo

(2)同步代码

mkdir test_wear_sdk
cd test_wear_sdk
../repo/repo init --repo-url=ssh://git@host/repo -u ssh://git@host/wear_sdk/manifest -b wear_sdk_dev -m wear_sdk_dev.xml
.repo/repo/repo sync


至此,REPO镜像服务器已经搭建完成。