RHEL6.6安装gitolite

1,前提
搭建git服务器,并用gitolite管理git repository的权限。
首先,安装git,官网:https://git-scm.com/ ,window直接下载安装,linux下我是用源码安装,地址:https://github.com/git/git/releases 。源码安装不多做介绍,遇到各种问题搜索解决。RHEL还涉及换rpm源的事,没有注册rpm不给用,换了后能直接yum安装软件了。
安装了ssh,通过secureCRT之类的工具验证下能不能ssh连上去。或者直接安装openssh,很多教程说要安装openssh,事实上我的服务器并没有openssh也没问题。


2,安装gitolite
gitolite的官方指导文档:http://gitolite.com/gitolite/gitolite.html#ssh-ha 。所有的东西,包括gitolite原理,gitolite的hook都讲的清清楚楚。


gitolite安装我是参考:https://github.com/sitaramc/gitolite ,下面讲讲我安装的过程和遇到的问题:


1,root权限在服务器RHEL6.6上:
      创建git用户:$useradd git
设置git用户密码:$passwd git 
             必须要创建新用户,保持环境的干净(在主目录下一定要没有.ssh目录,也没有别的gitolite目录,有些人是二次安装的),不然特别容易出问题,
.ssh目录跑gitolite的脚本的时候会自动给你创建的,还会创建.ssh/authorized_keys。科普下.ssh要是700权限,.ssh里面的文件都要是600或者644权限。


2,在客户端,就是我自己的电脑生成公司密钥对:
运行git bash或者git shell:ssh-keygen -t rsa -f joe(你自己的名字)
就在对应目录下生成了joe和joe.pub密钥对了,其实公钥joe.pub是要传到服务器上的
scp joe.pub git@server_ip:~ 


3,用git用户登录服务器,下载gitolite
git clone git://github.com/sitaramc/gitolite
但是,我的RHEL是公司的开发环境,没有网络,无法直接在github上clone,所以需要在有网络的机器上clone下来。
一开始用win7上clone下来gitolite,打包成zip传给RHEL6.6服务器,安装的时候出来各种问题,因为你打成zip包后gitolite的脚本编码都是dos编码的,
在linux上是跑不了dos编码的脚本,得手动vi后:set ff=unix,每个修改编码太麻烦而且后面容易出问题,建议用linux下载gitolite,打成.tar.gz包,传到没有网络的服务器上,
还有个思路,git有个bundle命令,这个应该能在windows上打成bundle传到linux服务器上解开unbundle,没试过。


4,安装gitolite
mkdir -p $HOME/bin
        gitolite/install -to $HOME/bin
        虽然目标目录能自由设定,但是最好还是放在$HOME/bin下,不然你要添加环境变量才能识别gitolite命令,继续执行:
$HOME/bin/gitolite setup -pk
joe.pub
这个公钥就是你刚才传到服务器的公钥了,是git repository权限的管理员。这个是初始化步骤,只有这个人才有权限clone gitolite-admin,往后这个人可以给别人添加
gitolite-admin库的访问权限。
完成安装后的目录:


5,客户端git clone服务器上的gitolite-admin
我是在win7上准备git clone服务器上的gitolite-admin。首先把私钥joe放到用户目录(win的用户目录就是cmd后默认的那个路径了)的.ssh目录(没有的话)下,
并创建文件config,打开加入以下:
host gitolite
   user git
   hostname 10.xx.xx.11
   port 22
   identityFile C:\Users\Administrator\.ssh\joe


每个值意思不细说,identityFile 就是要找到私钥joe路径,保存后打开git shell或者git bash执行:
git clone gitolite:gitolite-admin
说明一下,gitolite就是config文件的host名字,而且这里一定不能写仓库的全路径!不然会绕过gitolite管理机制的。写了全路径是用git下载仓库,到后面管理权限git push命令
提交修改到服务器上的gitolite-admin会出错的,出错原因大致是:gitolite对update有hook的脚本,通过git更新hook的脚本获取不了信息就出错了。因此只写上gitolite-admin
就会通过gitolite来下载,gitolite的脚本会自动添加仓库路径前缀~/repositories。有个所有教程都没提到的问题,出现Can't exec "git" 错误,需要在~/.gitolite.rc中的下面位置
添加$ENV{PATH}="/usr/local/bin:$ENV{PATH}"; 如图:参考 http://serverfault.com/questions/307493/cant-clone-gitolite-admin


对gitolite-admin的使用不多说了,就跟普通的git仓库一样,自行百度一下就好了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
疫情居家办公系统管理系统按照操作主体分为管理员和用户。管理员的功能包括办公设备管理、部门信息管理、字典管理、公告信息管理、请假信息管理、签到信息管理、留言管理、外出报备管理、薪资管理、用户管理、公司资料管理、管理员管理。用户的功能等。该系统采用了MySQL数据库,Java语言,Spring Boot框架等技术进行编程实现。 疫情居家办公系统管理系统可以提高疫情居家办公系统信息管理问题的解决效率,优化疫情居家办公系统信息处理流程,保证疫情居家办公系统信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理公告,管理疫情居家办公系统信息,包括外出报备管理,培训管理,签到管理,薪资管理等,可以管理公告。 外出报备管理界面,管理员在外出报备管理界面中可以对界面中显示,可以对外出报备信息的外出报备状态进行查看,可以添加新的外出报备信息等。签到管理界面,管理员在签到管理界面中查看签到种类信息,签到描述信息,新增签到信息等。公告管理界面,管理员在公告管理界面中新增公告,可以删除公告。公告类型管理界面,管理员在公告类型管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值