centos7下git的安装和配置
git的安装:
yum 源仓库里的 Git 版本更新不及时,最新版本的 Git 是 1.8.3.1,但是官方最新版本已经到了 2.9.2。想要安装最新版本的的 Git,只能下载源码进行安装。
1. 查看 yum 源仓库的 Git 信息:
|
1
|
# yum info git
|

可以看出,截至目前,yum 源仓库中最新的 Git 版本才 1.8.3.1,而查看最新的 Git 发布版本,已经 2.9.2 了。
2. 依赖库安装
|
1
2
|
# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
# yum install gcc perl-ExtUtils-MakeMaker
|
3. 卸载低版本的 Git
通过命令:git –-version 查看系统带的版本,Git 版本是: 1.8.3.1,所以先要卸载低版本的 Git,命令:
|
1
|
# yum remove git
|
4. 下载新版的 Git 源码包(我放的了 /usr/local/git 的目录下了,git是我自己mkdir的目录)
进入:/usr/local下,新建git目录: # mkdir git
# cd git
在线下载最新的源码包
|
1
|
# wget https://github.com/git/git/archive/v2.9.2.tar.gz
|
也可以离线下载,然后传到 CentOS 系统中指定的目录下。
5. 解压当前目录
|
1
|
# tar -xzvf v2.9.2.tar.gz
|
6. 安装 Git
分别执行以下命令进行编译安装,编译过程可能比较漫长,请耐心等待完成。
|
1
2
3
|
# cd git-2.9.2
# make prefix=/usr/local/git all
# make prefix=/usr/local/git install
|
7. 添加到环境变量
vim /etc/profile
#如果没有vim,则安装vim工具 yum install vim
添加这一条: export PATH="/usr/local/git/bin:$PATH"
source /etc/profile #是配置立即生效
8. 查看版本号
|
1
2
|
# git --version
git version 2.9.2
|
8. 将git设置为默认路径,不然后面克隆时会报错
[root@localhost code]$ ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack
[root@localhost code]$ ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack
至此,CentOS 就安装上了最新版本的 Git。
第二步,创建一个git用户组和用户,用来运行git服务:
$ groupadd git
$ useradd git -g git
$ passwd git #参数是用户名
最好切换到git用户 不然后面新建的git仓库都要改权限 烦烦烦!!
$ su - git
第三步,创建证书登录:
如何生成密钥:http://www.cnblogs.com/xuange306/p/6403907.html
备注:下边虚线内容为多余内容,只是留着存档而已。于本教程没有关系
添加证书之前,还要做这么一步:
Git服务器打开RSA认证 。在Git服务器上首先需要将/etc/ssh/sshd_config中将RSA认证打开,
即:
1.RSAAuthentication yes
2.PubkeyAuthentication yes
3.AuthorizedKeysFile .ssh/authorized_keys
这里我们可以看到公钥存放在.ssh/authorized_keys文件中。
所以我们在/home/git下创建.ssh目录,然后创建authorized_keys文件,并将刚生成的公钥导入进去。
然后再次clone的时候,或者是之后push的时候,就不需要再输入密码了:
Zhu@XXX/E/testgit/8.34 $ git clone git@192.168.8.34:/data/git/learngit.git Cloning into 'learngit'... warning: You appear to have cloned an empty repository. Checking connectivity... done.
===============================
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
$ cd /home/git/
$ mkdir .ssh #新建文件夹
$ chmod 700 .ssh
$ touch .ssh/authorized_keys #新建文件
$ chmod 600 .ssh/authorized_keys
第四步,初始化Git仓库
$ cd /home/git
$ git init --bare test.git
Initialized empty Git repository in /home/git/test.git/
以上命令会创建一个空仓库,服务器上的Git仓库通常都以.git结尾。
特别注意,如果后期在增加新的仓库是,因为无法连接git用户了,所以有两种方式进行添加仓库
1:把配置文件改回来,进入git用户,增加仓库
2:用root用户创建仓库,让后进行更改文件所属owner
$chown -R git:git test.git
第五步、本地克隆仓库
$ git clone git@your-ip:test.git
Cloning into 'test'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.
your-ip 为您 Git 所在服务器 ip
用git clone 获取服务器上的代码
[root@localhost code]$ git clone root@192.168.57.61:/root/code.git
报错如下:
bash: git-upload-pack: command not found
fatal: The remote end hung up unexpectedly
什么原因呢?原来代码服务器【192.168.57.61】上的git安装路径是/usr/local/git,不是默认路径,根据提示,在git服务器192.168.57.61上, 建立链接文件:
[root@localhost code]# ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack
再次,执行git clone ,果真可以了。
当然,如果无法修改git代码服务器上配置,可以在clone时,添加--upload-pack选项来指定git服务器上的git-upload-pack 路径,达到上面相同的目的,如下所示:
[root@localhost code]$ git clone --upload-pack "/usr/local/git/bin/git-upload-pack" root@192.168.57.61:/root/code.git
当然,也许你会遇到git-receive-pack 之类的错误,很有可能和这个原理是一样的,请采用类似的操作即可
5.禁止Shell登录
出于安全考虑,git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。
找到类似下面的一行:
git:x:502:502::/home/git:/bin/bash
改为
git:x:502:502::/home/git:/usr/local/git/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出
参考文档:
git安装部署 http://www.cnblogs.com/imayanlong/p/5617626.html
git/ssh捋不清的几个问题 http://www.cnblogs.com/hustskyking/p/problems-in-git-when-ssh.html
centos7下git服务器端搭建和验证 https://my.oschina.net/u/2343829/blog/644663
Git 服务器搭建 http://www.runoob.com/git/git-server.html
Windows下SSH连接git服务器 https://www.zybuluo.com/zhutoulwz/note/30495
centos7下git的安装和配置的更多相关文章
- Centos7 下的SVN安装与配置
Centos7 下的SVN安装与配置 1.关闭防火墙 临时关闭防火墙 systemctl stop firewalld 永久防火墙开机自关闭 systemctl disable firewalld 临 ...
- CentOS7下NFS服务安装及配置固定端口
CentOS7下NFS服务安装及配置 系统环境:CentOS Linux release 7.4.1708 (Core) 3.10.0-693.el7.x86_64 软件版本:nfs-utils-1. ...
- Windows下Git的安装及配置
Git的BASH Git的为Windows提供了用于命令行运行的一个仿真BASH的Git.习惯LINUX和UNIX环境的你,可以在该BASH环境中输入“git”命令来完成各种版本控制的操作. 简介 G ...
- Centos7下nginx的安装与配置
说明:软件安装的基础目录路径:/usr/local 所以下载软件的时候切换到此目录下下载直接解压即可 1.安装gcc gcc-c++依赖包 yum install -y gcc gcc-c++ 2.下 ...
- Linux 下Git的安装和配置
Git是分布式的版本控制系统,实际上是不需要固定的服务器的,Git与svn的最大区别是,它的使用流程不需要联机,可以先将对代码的修改,评论,保存在本机.等上网之后,再实时推送过去.同时它创建分支与合并 ...
- 一、Windows下Git的安装与配置
一.下载Git安装包 1.打开Git的官方网站:https://git-scm.com/ 2.找到下载页:https://git-scm.com/downloads 3.找到Windows版本下载页面 ...
- CentOS7 下 keepalived 的安装和配置
安装前准备:yum -y install gcc gcc-c++ autoconf automake make yum -y install zlib zlib-devel openssl opens ...
- Centos7下oracle12c的安装与配置(详细)
一.硬件配置 CentOS7@VMware® Workstation 15 Pro,分配资源:CPU:2颗,内存:4GB,硬盘空间:30GB 二.软件准备 linux.x64_11gR2_datab ...
- centos7下postgresql数据库安装及配置
1.安装 #yum install -y postgresql-server 2.postgresql数据库初始化 #service postgresql initdb 3.启动postgresql服 ...
随机推荐
- ORACLE GoldenGate在Windows与AIX平台ORACLE的单向、双向数据传输配置及其测试
第1章...... GoldenGate概述 1.1 GoldenGate技术原理 1.2 GoldenGate可靠的复制 1.3 GoldenGate ...
- activemq安装运行及其在springboot中的queue和topic使用
安装activemq 运行 springboot使用 依赖 配置 Producer Consumer ComsumerTopic 使用 安装activemq http://activemq.apach ...
- java成神之——线程操作
线程 Future CountDownLatch Multithreading synchronized Thread Producer-Consumer 获取线程状态 线程池 ThreadLocal ...
- 并发模型(一)——Future模式
多线程开发可以更好的发挥多核cpu性能,常用的多线程设计模式有:Future.Master-Worker.Guard Susperionsion.不变.生产者-消费者 模式: jdk除了定义了若干并发 ...
- leetcode343
public class Solution { public int IntegerBreak(int n) { ) { ; } ) { ; } var max = int.MinValue; ; i ...
- OO设计基本原则
OO本身就是一种大的设计模式,它是随着软件规模越来越大产生出来帮助人们建模和开发的理念,生来就带着封装.继承.多态等可复用基因.为了充分发挥这些基因的功效,使用者需要遵守一定的原则,就是所谓的面向对象 ...
- : error C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
打开项目----项目属性---配置属性----C/C++ ----预处理器----预处理定义,添加_CRT_SECURE_NO_WARNINGS
- Elasticsearch之插件介绍及安装
ES站点插件(以网页形式展现) 1.BigDesk Plugin (作者 Lukáš Vlček) 简介:监控es状态的插件,推荐![目前不支持2.x] 2.Elasticsearch Head Pl ...
- OK6410 linux系统遇到的BUG总结
经过一段时间使用OK6410 256M RAM 2G nand Flash碰见了不少问题. 所以特意开本贴一起交流.大家有什么BUG解决的可以跟上本帖.求助的请另开贴.勿跟本帖.谢谢.请谅解!!! 希 ...
- SKNode的渲染顺序
[SKNode的渲染顺序] SKNode的zPosition属性,指定相对于其父视图的z轴坐标. The default value is 0.0. The positive z axis is pr ...