阿里云搭建git + repo 的rk3326源码无限制仓库记录

最近帮朋友搭建一个阿里云代码服务器。简单记录一下过程。
源码: rk3326
android 8.0
服务器: 阿里云
阿里云服务端: 简称 Server
管理端: Admin
客户端: client
1、首先在服务的新建git 用户

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

这种方法是网上比较常见的方法,创建的是一个禁用密码的git用户
然后切换到git 用户下

$ sudo  su  git
$ git clone https://github.com/sitaramc/gitolite
$ ./gitolite/src/gitolite setup -pk /tmp/yourname.pub
Initialized empty Git repository in /home/git/repositories/gitolite-admin.git/
Initialized empty Git repository in /home/git/repositories/testing.git/
WARNING: /home/git/.ssh missing; creating a new one
    (this is normal on a brand new install)
WARNING: /home/git/.ssh/authorized_keys missing; creating a new one
    (this is normal on a brand new install)

这里的 -pk 选项是指定管理员的公钥和用户名。git 跟 gitolite 服务器通信用的是 git 这个真正的系统用户,而 gitolite 控制仓库权限则是使用自己的虚拟用户。这里的 yourname 就是虚拟用户。

好了,到此安装完毕。让我们来体验一下。
gitolite 默认为大家创建了一个开放的 testing 仓库。
在 client端

$ git clone git@yourhost:testing.git
Cloning into 'testing'...
warning: You appear to have cloned an empty repository.

如果你想克隆一个不存在的仓库,则会报错:

$ git clone git@yourhost:foo.git
Cloning into 'foo'...
FATAL: R any foo yourname DENIED by fallthru
(or you mis-spelled the reponame)
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

2、打开阿里云配置网页,放开所有的通讯端口,不然会有通信失败的危险。
3、安装git守护进程git-daemon

sudo apt-get install git-daemon-sysvinit

打开编辑
sudo vi /etc/default/git-daemon
我的配置文件内容如下(后面会具体参数的意义)
我使用的作为git仓库的目录为/home/git/repositories….你们就改成自己相同的就行了.

# Defaults for git-daemon initscript
# sourced by /etc/init.d/git-daemon
# installed at /etc/default/git-daemon by the maintainer scripts

#
# This is a POSIX shell fragment
#

GIT_DAEMON_ENABLE=true
GIT_DAEMON_USER=git
GIT_DAEMON_DIRECTORY=/home/git/repositories

# Additional options that are passed to the Daemon.
GIT_DAEMON_OPTIONS="--export-all --enable=upload-pack --enable=upload-archive --enable=receive-pack --informative-errors"  
GIT_DAEMON_BASE_PATH=/home/git/repositories 

其中
GIT_DAEMON_ENABLE=true很明显得设置成true值了
GIT_DAEMON_USER=git 这个就看你想用哪个用户运行git-daemon.一般为了安全都得设置别的用户...
注意!!设置的这个用户一定得对GIT_DAEMON_BASE_PATH有读,写,执行的所有权限!! 可以用ls -ld git仓库目录,查看为drwx
如果你的git仓库放在自己的个人目录下即/home/use_name下面的话,那设置成你的用户名准没错.
GIT_DAEMON_DIRECTORY=”/var/cache/git /home/git/repositories” 这个是设置成目录白名单whitelist!! 如果不设置的话用户在git操作时如git clone,git push等等会出现no such directory. 而在服务器机器上/var/log/syslog中会看到’/home/git/repositories/xxx.git’: not in whitelist
GIT_DAEMON_OPTIONS 就是设置参数了.如果想上传,且全部导出.就设置–export-all –enable=upload-pack –enable=upload-archive –enable=receive-pack
注意!如果出现找不到的话,就在/home/git/repositories目录下面的项目仓库目录下touch git-daemon-export-ok…生成一个这个名字的文件即可.
如果想使用git push功能,那一定要打开–enable=receive-pack
最后一个
GIT_DAEMON_BASE_PATH 即设置根目录.比如像我的这个设置.
那么你在用git clone git://your ip or name/test.git时,git服务器就会查换/home/git/repositories/test.git目录了.

以上设置好了只后,,那么每次开机就会自己启动了.
还可以使用sudo service git-daemon start|restart|stop控制. sudo /etc/init.d/git-daemon start|restart|stop也可以了.
————————————————
版权声明:本文为CSDN博主「九霄的爸爸」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lb5761311/article/details/47723455

剩下的可以参考我这篇文章
https://blog.csdn.net/lb5761311/article/details/47723455

你可能感兴趣的:(android)