设为首页 收藏本站
查看: 1175|回复: 0

[经验分享] centos5.6下git服务器安装手记

[复制链接]

尚未签到

发表于 2018-9-18 12:44:29 | 显示全部楼层 |阅读模式
  早就想试试git来管理代码,其所拥有的分布式管理理念非常诱人,最近终于忍不住决定自己架设一个服务器来玩一下。安装过程比较悲剧,中间遇到不少麻烦,特别记录一下以备后忘。
1. 安装git服务器
  首先,自然是下载git的源代码,地址是http://git-scm.com,但是国内被墙了,只好搞个***去下了。下载完成,安装还是比较简单。
tar zxvf git-1.7.8.tar.gz  
cd git-1.7.8
  
./configure
  
make
  
make install
2. 添加用户
  在服务器添加git用户和git用户组
mkdir -p /data/git  
groupadd git
  
useradd -g git -d /data/git -s /bin/bash git
  
passwd git #设置git用户密码
  

  
#改变git目录权限
  
chown -R git:git /data/git
  
chmod -R 2755 /data/git
3. 安装gitolite服务
Gitolite 是一款Perl 语言开发的Git 服务管理工具,通过公钥对用户进行认证,并能够通过配置文件对写操作进行基于分支和路径的的精细授权。  这个软件这里是用git直接下载下来,再编译安装。这之前需要先生成公钥和私钥,公钥放到git服务器上,建议密钥的文件名为用户名。我不知道为什么ssh-keygen出来的有问题,最后弄了个第三方工具生成的。这耗了我好久,郁闷。
git clone git://github.com/sitaramc/gitolite  
gitolite/src/gl-system-install
  
gl-setup ~/YourName.pub
  注:/gitolite/README.markdown 里面有详细的安装步骤,直接按这个来即可,以免不同版本安装有所不同。
  前面算是把环境安装好了,后面的工作就是配置。
4. 服务器端的配置  
  先弄好.ssh/config,然后用简写。
host git  
      user git
  
      hostname localhost
  
      port 22
  
      identityfile ~/.ssh/admin
  这里注意一下,第一个加入的公钥默认就是管理员,如果想改,那么必须再用以下命令把工程下载,这个格式和scp命令一样。
git clone git@192.168.1.100:gitolite-admin  然后修改conf/gitolite.conf文件,再push to upstream提交到服务器生效。如果你丢失了私钥,需要把服务器上gitolite安装目录下的.gitolite和.gitolite.rc给删掉,重新安装该管理软件,就能重新设置管理员用户了。直接在这个配置文件里面添加repo信息,提交后服务器自动生成相应的仓库。
repo    gitolite-admin  
    RW+     =   enjoybug
  

  
repo    testing
  
    RW+     =   @all
  附上一个权限配置文件的详细说明:
C  
C 代表创建。仅在 通配符版本库 授权时可以使用。用于指定谁可以创建和通配符匹配的版本库。
  

  
R, RW, 和 RW+
  
R 为只读。RW 为读写权限。RW+ 含义为除了具有读写外,还可以对 rewind 的提交强制 PUSH。
  

  
RWC, RW+C
  
只有当授权指令中定义了正则引用(正则表达式定义的分支、里程碑等),才可以使用该授权指令。其中 C 的含义是允许创建和正则引用匹配的引用(分支或里程碑等)。
  

  
RWD, RW+D
  
只有当授权指令中定义了正则引用(正则表达式定义的分支、里程碑等),才可以使用该授权指令。其中 D 的含义是允许删除和正则引用匹配的引用(分支或里程碑等)。
  

  
RWCD, RW+CD
  
只有当授权指令中定义了正则引用(正则表达式定义的分支、里程碑等),才可以使用该授权指令。其中 C 的含义是允许创建和正则引用匹配的引用(分支或里程碑等),D 的含义是允许删除和正则引用匹配的引用(分支或里程碑等)。
5. egit的安装与测试
  最新版本的eclipse已经默认带有egit了,直接动手配置。
  首先,在Preference -> General -> Network Connection -> SSH2中把你自己的私钥加上去。可以在Key management里面试一下私钥密码,这里也可以创建密钥对。
  然后,在Preference -> Team -> GIT -> Configuration里面加上user.name和user.email。
  最后,自己本地建立个新工程,用share project先提交,这里其实只是提交到本地的git仓库,要提交到服务器端,还要push一次。下载就直接import,只要配置对,这步基本没难度。
6. 警报的处理
  第一次提交就发现有警告,虽然不影响,但是每次提交都会看到,甚是心烦。
git: /usr/lib64/libz.so.1: no version information available (required by git)  找了一圈资料,最后总算是解决了。这个主要是zlib包的1.2.3版本有点问题,需要升级即可。用ldd /usr/local/bin/git就能看到是所链接的库出的错。解决办法就是到http://zlib.net/zlib-1.2.5.tar.gz下载最新的版本。然后编译安装,并替换原来的链接即可。
# 安装zlib  
tar zxvf zlib-1.2.5.tar.gz
  
cd zlib-1.2.5
  
./configure
  
make
  
make install
  

  
# 替换成最新版本
  
cp /usr/local/lib/libz.so.1.2.5 /lib64/
  
rm -f libz.so.1
  
cp -l libz.so.1.2.5 libz.so.1
  参考资料:
  1. gitolite官方文档,相当简约:http://sitaramc.github.com/gitolite/
  2. 一个写的比较简洁的安装步骤:http://surpass-li.iteye.com/blog/1052311
  3. 一个写的很细的文档:http://www.ossxp.com/doc/git/gitolite.html
  4. 《pro git》的在线电子书:http://progit.org/book/
  5. clone gitolite-admin没有读权限的处理办法:http://blog.csdn.net/fulinus/article/details/21184213



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-589841-1-1.html 上篇帖子: 今天初步学习了一下Git版本控制,总结一下,后面加下用Git下载android源代码 下篇帖子: 解决git pull时出现的几个问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表