Centos下安装gitolite+git

article/2025/10/3 22:25:45

一直以来我都是用SVN的,但最近做迭代开发、多分支时,发现SVN使用起来极不方便。因此打算换成git做源码管理。git的理论以及特性本文就不做讲解了,本主主要讲解怎么安装,配置git、以及git权限管理服务gitolite.

组网结构

式

git服务器是用于存储git仓库的服务器,所有git用户都此服务器上仓库中clone仓库到本地,也可以将代码提交到git服务器上的仓库中。简单的说,此服务器类似于svn服务器,做共享数据用。git本身是没有权限管理的。若要像SVN那样管理权限,需要搭建gitolite,因此git权限管理服务器用于git权限配置。

实验组网结构

事实上,安装后gitolite后,只是在git服务器上有一个管理权限的仓库(gitolite-admin.git),此仓库中下的gitolite-admin/conf中的配置文件,就是用于配置git服务器上所有仓库的权限。因此,只要有权限能够修改gitolite-admin/conf 下的配置文件,并提交到仓库中,即可对git做权限管理。
因此,在本文的实验环境中,在git服务器上创建了两个用户 gitadmin、mgit,分别用于git权限配置,以及git服务。

源码安装git

以mgit用于登录到git服务器

> wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz  #下载git源码包,可以到 https://mirrors.edge.kernel.org/pub/software/scm/git/ 此地址下载其它版本包。
> tar -xf git-2.9.5.tar.gz  
> cd git-2.9.5/
> ./configure  
> make  # 编译git源码

经过以下几个命令后,即安装完成,通过 git --version 可查看安装的git版本。若提示没有相关 命令,执行一下 make install

问题1:若执行configure时,报以下错误:
/usr/bin/perl Makefile.PL PREFIX='/usr/local' INSTALL_BASE='' --localedir='/usr/local/share/locale'
Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 3.
BEGIN failed--compilation aborted at Makefile.PL line 3.
make[1]: *** [perl.mak] 错误 2
make: *** [perl/perl.mak] 错误 2

解决方法:
安装Perl5
> yum install perl-ExtUtils-MakeMaker

问题2: make过程中,报以下错误
GIT_VERSION = 2.9.5
    * new build flags
    CC credential-store.o
In file included from credential-store.c:1:0:
cache.h:40:18: fatal error: zlib.h: No such file or directory
 #include <zlib.h>
                  ^
compilation terminated.
make: *** [credential-store.o] Error 1

解决方法:
make时报缺少zlib.h,需要执行在下命令:
yum install zlib-devel

安装gitolite

以mgit登录到服务器

> git clone https://github.com/sitaramc/gitolite.git  # 如果执行此命令时,报“Unable to find remote helper for 'https'”错误,将https改为git再次重试。
> cd gitolite
> chmod +x install
> mkdir /home/mgit/bin  #gitolite相关的二进制文件的安装目录
> /home/mgit/gitolite/install -to /home/hqgit/bin/   #将gitolite二进制文件安装到bin目录下

如此gitolite已安装完成。若在安装过程中报以下错误:
Can't locate Data/Dumper.pm in @INC (@INC contains: /home/hgit/gitolite/tt/gitolite/src/lib /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /home/hgit/gitolite/tt/gitolite/src/lib/Gitolite/Common.pm line 65.
BEGIN failed--compilation aborted at /home/hgit/gitolite/tt/gitolite/src/lib/Gitolite/Common.pm line 65.
Compilation failed in require at ./install line 15.
BEGIN failed--compilation aborted at ./install line 15.

解决方法:
yum install perl-Data-Dumper.x86_64

配置git权限管理员

本环境中用gitadmin用户作为git权限管理员。首先创建此用户,并用gitadmin登录到服务器上。

为管理员生成密钥

 > ssh-keygen   #生成公钥与私钥,并将生成的公钥命名为 gitadmin.pub

gitolite服务本是通过ssh对用户进行鉴权。因此需要为git管理员gitadmin生成密钥。 这此需要重命令的原因是gitolite以文件名作为用户名,添加到gitolite服务中。此处重命名为gitadmin.pub,后续添加到gitolite中的用户名即为gitadmin

添加git管理员

切换到mgit用户:

/home/mgit/bin
./gitolite setup -pk /home/gitadmin/gitadmin.pub  #/home/gitadmin/gitadmin.pub为git管理员的公钥存放路径,命令需要mgit用户有此文件的可读权限

以下命令:

(1)将创建/home/mgit/repositories 目录 ,并在此目录下生成两个仓库 gitolite-admin.git 、 testing.git。
gitolite-admin为git权限管理仓库。gitadmin用户可以clone此仓库,对git权限进行配置。
testing.git为测试仓库。
后续通过gitolite-admin配置文件,添加的其它仓库也将创建在此/home/mgit/repositories 目录下

(2)生成/home/git/projects.list文件

git仓库权限配置

以gitadmin用户登录服务器,执行以下命令:

git clone mgit@192.168.48.200:gitolite-admin   #克隆权限管理仓库

若在操作中,出现以下错误:
正克隆到 'gitolite-admin'...
FATAL: R any gitolite-admin gitadmin DENIED by fallthru
(or you mis-spelled the reponame)
fatal: Could not read from remote repository.

此是由于多次进行了gitolite setup -pk操作,并且公钥还不一样。gitolite setup -pk操作会用户根目录下生成 .gitolite 目录,并将添加的公钥存放到此目录,同时生成相关的权限文件。
解决办法就是删除此目录后,再次执行 gitolite setup -pk即可以了

克隆后,在目录/home/gitadmin/gitolite-admin下有一个conf与keydir目录.
/home/gitadmin/gitolite-admin/conf/gitolite.conf  为权限配置文件,为各仓库配置权限。
/home/gitadmin/gitolite-admin/keydir 目录存放所有用户的公钥,公钥文件名即为用户文件。
配置完成后,git commit提交后,仓库就创建好了

gitolite的具体配置规范,参见gitolite官方文档

 

 

 


http://chatgpt.dhexx.cn/article/jSLJyJkU.shtml

相关文章

gitolite安装及配置教程centos7

1. 安装依赖包 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel -y 2.安装 Git yum -y install git 3.创建git用户 useradd git passwd git # 输入再次git用户的密码# 切换到git用户 su git4.获取Gitolite版本库并安装配置 4.1 获取…

Git服务器搭建及Gitolite权限管理

之前写过一个Git服务器的简单搭建&#xff0c;那个的权限管理是通过手动配置的。这次用Gitolite来管理&#xff0c;方便快捷。 环境&#xff1a;Ubuntu Server 16.04.3&#xff08;命名GitServer&#xff09;&#xff0c;网络正确配置192.168.xx.xx&#xff08;可以连接Intern…

gitolite

2019独角兽企业重金招聘Python工程师标准>>> gitolite是什么 gitolite是git的权限控制系统。有如下特性: a. 在git服务器上需要一个真实的unix用户 b. 能用不同的账号访问git服务器&#xff0c;这些账号不是真实的unix用户也没有shell权限 c. 能控制多个git仓库的读…

搭建网站显示成功后却打不开主页原因

今年自学了一下建站&#xff0c;在腾讯云购买了域名和服务器&#xff0c;用护卫神主机大师搭了个网站。网站十分简单&#xff0c;运行得十分顺利。 过了两天&#xff0c;网站突然打不开了&#xff0c;页面显示没有备案。上网一查&#xff0c;备案需要准备资料&#xff0c;拍照…

【很容易忽视的问题】为何使用护卫神iis-windows服务器,在使用护卫神主机修改网站信息后则无法访问的根本原因??

本来是正常的网站&#xff0c;只要使用护卫神的主机大师修改一下&#xff0c;网站就提示错误&#xff1a;无法建立到 xxx.com 服务器的连接 不论基于哪个Lamp搭建环境【护卫神、phpstudy、宝塔Lamp】一旦你使用第三方软件为何网站&#xff0c;则必须确保以第三方的为准统一修改…

360主机卫士Linux版,360主机卫士

什么是虚拟补丁? 是一种可以使网站站长摆脱补丁管理困境的解决方案。 虚拟补丁简单的说就是"软补丁"&#xff0c;针对CMS的漏洞&#xff0c;不用站长自己修改CMS代码&#xff0c;在应用防火墙上&#xff0c;生成的特定防护规则。 它的好处&#xff1a; 1.不用修改代…

护卫神IIS下没有办法直接访问thinkphp中public入口的问题解决方案

首次使用护卫神的主机系统来搭建运行自己的系统,发现没有办法直接指向框架的public,研究了一下总结出两种方案.如以下: 一. 1,先随意的创建一个主站不做使用. 2,在主站下面新建一个子站作为自己实际的项目配置.在主站目录的基础上追加public文件夹. 以上是第一种解决方法,很常…

护卫神·Nginx大师面板上如何设置伪静态

许多客户在使用护卫神Nginx大师创建网站后&#xff0c;因SEO要求&#xff0c;可能需要使用伪静态功能&#xff0c;在这里护卫神就大体说一下如何设置伪静态。本例以安装wordpress博客程序后设置伪静态&#xff1b;一、先打开桌面上的“护卫神Nginx大师”&#xff0c;右键点击要…

linux系统终端用户名和密码忘记了,主机大师(Linux)登录账户密码忘记的解决办法...

护卫神主机大师linux最新版本方法&#xff1a; 我们建议在初次安装完后复制相关的登录信息并妥善保存好。如没有复制下来&#xff0c;忘记了相关的登录信息或者是账户密码&#xff0c;可通过以下办法解决。 一、登录ssh终端后复制以下命令执行就可以创建一个新的用户&#xff1…

护卫神设置public目录(IIS下TP5如何设置运行目录)

护卫神设置public目录 最近有人问小编&#xff0c;护卫神主机系统或者IIS配置PHP的时候&#xff0c;public设置为对外公开目录这个问题百度无法搜索到真实解决办法&#xff0c;那么我们应该如何将运行目录设置为/public呢&#xff1f; 当我们使用护卫神主机系统配置Thinkphp的…

护卫神mysql远程_护卫神 主机管理系统使用说明(MySQL管理)

感谢大家使用【护卫神主机管理系统】v3.1&#xff0c;该版本支持在windows server 2003/2008/2012&#xff0c;含32位和64位&#xff0c;直接开设配置web站、ftp站&#xff0c;以及sql server和mysql&#xff0c;是您开设和管理虚拟主机的绝好帮手。 但是对于新用户可能在使用上…

护卫神apache大师3.0.0 php,护卫神Apache大师(PHP环境套件)V3.2.0 官方免费版

护卫神Apache大师是一套为方便广大用户管理服务器而开发的软件&#xff0c;集成了多版本PHP环境、Apache、Tomcat、JSP、MySQL、PhpMyadmin、主机管理系统、FilaZilla FTP&#xff0c;支持开设和管理多个主机、MySQL数据库。 【软件性质】自主开发&#xff0c;完全免费。 【运行…

系统切换服务器方法,护卫神•主机管理系统更换服务器方法(移机)

本文主要介绍如何整体迁移主机管理系统和网站到新服务器。 一、备份数据 将老服务器上的主机管理系统数据库备份。 位置&#xff1a;在主机管理系统安装目录下的host/admin/database/my.asp 二、安装主机管理系统 在新服务器安装护卫神•主机管理系统&#xff0c;推荐安装最新版…

护卫神主机大师或者是主机管理系统中创建网站时提示开设失败的解决办法

一种情况&#xff1a;阿里云默认的系统一般会开启密码复杂度的功能&#xff0c;这样在使用护卫神主机大师或者是主机管理系统开设网站时&#xff0c;填写的密码如不符合系统的复杂度要求。那么将出出现以下的提示&#xff1a;解决办法如下&#xff1a;1、打开系统组策略 2、找到…

护卫神 主机大师 MySQL无法远程连接的解决方案

护卫神 主机大师 MySQL无法远程连接的解决方案 背景&#xff1a;服务器小厂独立ip&#xff0c;其他环境直接用护卫神一键安装&#xff0c;因为远程桌面不总是很方便&#xff0c;远程连接MySQL报错 解决办法&#xff1a; 1、各种搜索引擎一阵猛搓&#xff0c;无法解决&#xf…

服务器维护护卫神,护卫神主机重启服务器

护卫神主机重启服务器 内容精选 换一换 通过Web浏览器登录资源&#xff0c;会话连接断开&#xff0c;提示网络连接异常&#xff0c;连接已断开&#xff0c;请重试(Code&#xff1a;T_1006)。云堡垒机系统与资源服务器之间网络连接不稳定&#xff0c;导致连接断开。云堡垒机或资…

护卫神主机大师php,护卫神主机大师下载

护卫神主机大师支持一键安装网站运行环境(IISASPASP.netPHPMySQLFTP伪静态PhpMyAdmin)&#xff0c;并可在线开设主机、SQLServer和MySQL;Web方式管理&#xff0c;拥有独立前台和后台面板。护卫神主机大师支持WindowsServer2008/2012&#xff0c;推荐在全新操作系统下安装。 软件…

护卫神mysql提权_护卫神主机大师提权漏洞利用分析

*本文原创作者&#xff1a;Freedom&#xff0c;本文属FreeBuf原创奖励计划&#xff0c;未经许可禁止转载 0x01 前言 护卫神主机大师支持一键安装网站运行环境(IISASPASP.netPHP5.2-5.6MySQLFTP伪静态PhpMyAdmin)&#xff0c;并可在线开设主机、SQL Server和MySQL&#xff1b;We…

护卫神mysql提权_护卫神主机大师被提权漏洞利用(可千万不能乱装护卫神主机大师安装的软件)...

原标题&#xff1a;护卫神主机大师被提权漏洞利用(可千万不能乱装护卫神主机大师安装的软件) “护卫神主机大师支持一键安装网站运行环境(IISASPASP.netPHP5.2-5.6MySQLFTP伪静态PhpMyAdmin)&#xff0c;并可在线开设主机、SQL Server和MySQL&#xff1b;Web方式管理&#xff0…

护卫神mysql域名连接_护卫神·主机大师WEB管理端绑定自己的域名_护卫神

护卫神主机大师面板上的网站管理WEB端地址默认为http://服务器IP:6588/admin。为了方便管理&#xff0c;可以绑定指定的域名&#xff0c;通过以下两种方法修改。 第一种方法&#xff1a; 在服务器上打开“护卫神主机大师”面板&#xff0c;点击“主机系统”旁边的“设置”进去&…