linux/centos上安装配置gitosis(git服务器端)

gitosis长期没有更新了,换gitolite吧,或gitlab也行

[个人按本文方法是可以安装gitosis的,但在客户端git clone总是失败,也无法成功创建repo,所以个人改用gitolite,感觉比gitosis简单一些,而且一安装就可以正常工作]

安装gitosis,因为centos/redhat官方源不带gitosis,所以需要先添加EPEL软件仓库,或者手工下载gitosis的 rpm包及依赖包并手工安装。

gitosis rpm包安装后,会自动创建一个gitosis用户,为了简化其见,手工对其改名,改成git,涉及以下四个文件/etc/passwd, /etc/shadow, /etc/group, /etc/gshadow . 默认情况下,git用户(即改名前的gitosis用户)的home目录为 /var/lib/gitosis

这是git用户是作为git的管理账号之用。因为此时git用户没有设置登录密码,我们也不需要其密码,而是使用ssh密钥登录。但对gitosis的设置还是使用git用户登录比较方便。可以切换到root用户,然后 su git .

为git用户设置ssh密钥登录。上传一个ssh公钥,建议使用你的常用账号下的ssh公钥。并将其加入git用户的authorized_keys

sh-4.1$ cd ~/.ssh/
sh-4.1$ cat id_rsa.pub >>authorized_keys

确认可以使用公钥通过ssh登录。关于使用公钥自动登录ssh主机,更多可以参看这里 ssh无密码登入设置(完全版)/linux下免输入密码ssh登录

下面初始化gitosis . 要使用git用户执行下面命令

gitosis-init < [path of your id_rsa.pub]

结果大致如下

sh-4.1$ gitosis-init < id_rsa.pub
Initialized empty Git repository in /var/lib/gitosis/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /var/lib/gitosis/repositories/gitosis-admin.git/
sh-4.1$ ls
gitosis  repositories

可以看到被创建的两个目录,gitosis与repositories .

运行 git clone git@localhost:repositories/gitosis-admin.git 即可把git管理配置文件的目同步到本地。需要修改配置,就在本地修改,然后git commit;git push同步到服务器上即可以即时生效了

关于gitosis资料,参考 http://linux-wiki.cn/wiki/zh-hans/%E9%85%8D%E7%BD%AEgitosis%EF%BC%88%E4%BB%A5CentOS%E4%B8%BA%E4%BE%8B%EF%BC%89

http://git-scm.com/book/zh/服务器上的-Git-Gitosis

http://git-scm.com/book/zh/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E5%9C%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E9%83%A8%E7%BD%B2-Git

关于“假定”

本文是一篇很久以前只写了个标题的文章。在草稿箱里放了几乎4年,最近整理博客看其更新时间为 2012年10月15日 @ 10:46,这么久都没有继续写,大概以后也不会续写了,直接发出来算了(2016-10-10 16:30)。

根据残存的记忆补记一下当时的初衷,应该是在沟通及web开发过程中,如开发人员做的一些假定,包括用户理解力、用户熟知程度、操作习惯等多种,程序运行过程中,对运行状态、输入数据、临时数据等做的假定,沟通过程中以自己的认知猜度别人,想当然的做一些假定;等等。这种种假定,有时可以简化工作量,提高效率,然而也会带来麻烦,比如程序健壮性差,无法满足实际需要,信息不对等、理解偏差、甚至沟通失败等等。当时有感于此等种种,想写一篇文章记述之,然而一直没有动笔。

ftp目录文件名乱码/使用原始ftp命令解决

对乱码的客户端,直接向服务器端发送原始的FTP命令:

opts utf8 off

对于flashFXT,可以按

菜单 - 命令 - 原始命令

输入

opts utf8 off

回车(或点确定)

再刷新服务端的目录列表,即正常显示

如果不行,可以试试发送ftp原始命令 opts utf8 on

原因解析:

按RFC 2610规定的方式,默认使用UTF-8。而某些服务器和客户端并不用此标准。即,server和client对话时,FTP服务器直接使用UTF-8发送数据,除非对方大喊一声opts  utf8 off ;而一些ftp产品则数默认使用本地编码对话,除非对方说一声opts  utf8 on 。所以,当服务器端与客户端不统一时,就出现了一个讲UTF8,一个用本地编码,就出现了乱码。