本文介绍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 "[email protected]",其中[email protected]为管理员邮箱
(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 keydir/
(3)添加管理员用户
vim conf/gitolite.conf
将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目录下存在且与芯片厂商服务器的公钥对应
cd -
.repo/repo/repo sync
(4)查看所有的git工程
.repo/repo/repo list
从上图中可以看到一共有6个git工程,在每个git工程的同级目录XXXDIR下,执行:
git clone --bare XXXDIR XXXDIR.git
4.REPO镜像服务器搭建(在客户端管理员账户下操作)
(1)添加git仓库地址
cd gitolite-admin
vim conf/gitolite.conf
添加如下配置
(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
添加如下配置
(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镜像服务器已经搭建完成。