centos7安装git

第一步,查找系统上是否存在git并卸载

    rpm -qa | grep git

    卸载命令

    rpm -e --nodeps 文件名

第二步,安装编译环境

    yum install asciidoc docbook2X xmlto texinfo sgml2xml autoconf openjade -y
         yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker -y

第三步,进入文件夹:

    $ cd /home/git/download

    下载软件:

    $ wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.3.tar.gz

    解压软件:

    $ tar -zxvf git-2.9.3.tar.gz

    进入软件

    $ cd git-2.9.3

    编译指定安装路径

    ./configure --prefix=/home/git/git-ins

    检测安装文件

    make all doc

    正式安装

    make install install-doc install-html

第三步,配置git的环境变量

    export GIT_HOME=/home/git/git-ins

    export PATH=$PATH:$GIT_HOME/bin

第四步,git要能克隆需要修改/etc/passwd的文件

    修改前:
    git:x:1102:1006::/home/git:/bin/bash
    修改后:
    git:x:1102:1006::/home/git:/home/gitdir/git-ins/bin/git-shell

    移动源文件中的所需目录

    $ cp /home/git/download/git-2.9.3/git-shell-commands  /home/git/.

第五步,查看版本

    $ git --version

    [root@iZov6plukkkysgZ git]# git --version
    git version 2.9.3

    成功

    $ su git

    git>

    恭喜你不能用git用户登录了,别想太多,就是故意的

    配置ssh请移步:https://segmentfault.com/a/1190000002645623

    亲测成功,不成功,跟我没啥关系

 问题集锦:

    Counting objects: 3, done.
    Writing objects: 100% (3/3), 208 bytes | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    remote: error: insufficient permission for adding an object to repository database ./objects
    remote: fatal: failed to write object
    error: unpack failed: unpack-objects abnormal exit
    To 120.78.207.226:/home/git/work/test.git/
    ! [remote rejected] master -> master (unpacker error)
    error: failed to push some refs to 'git@120.78.207.226:/home/git/work/test.git/'

    主要的一句话是:远程:错误:将对象添加到存储库数据库的权限不足。/对象。

    权限不足就赋权呗,赋权给谁,主要有仓库,.ssh

    查看仓库的所有者是root还是git

    $ ls -la 

    倘若是root

    $ chown -R git:git 仓库

    差不多解决了,如果没有解决

    看一下 .ssh的权限,我的放在/home/git/.ssh下,于是乎

    $ ls -la /home/git

    倘若是root

    $ chown -R git:git .ssh

    $ chmod 700 .ssh

    解决了吗,如果没有解决

    看一下.ssh下是不是存在一个.authorized_keys.swp文件,我也不清楚这东西从哪来的,对于不应该存在的文件

    $rm -rf .authorized_keys.swp

    再次推送文件

    $git push

    解决

posted @ 2018-05-10 17:13  边牧不是狗  阅读(193)  评论(0编辑  收藏  举报