美文网首页
liunx centos7源码安装搭建版本控制器git

liunx centos7源码安装搭建版本控制器git

作者: xiaoer0128 | 来源:发表于2018-05-11 15:43 被阅读0次

    服务端

    1、查看是否安装git   git --version 

        可以看到我的版本比较新,如果版本过低的话,可以执行下面命令,卸载旧版本  yum remove git

    2、安装依赖库    

            # yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel

            # yum install gcc perl-ExtUtils-MakeMaker

    3、下载解压git的源码包  (https://mirrors.edge.kernel.org/pub/software/scm/git/  有各个版本,我选择了2.9.2版本下载)

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

             #tar -xzvf  git-2.9.3.tar.gz

    4、安装git 编译安装大概几分钟就可搞定。

               # cd  git-2.9.3

               # make prefix=/usr/local/git all    //编译安装到/usr/local/git 目录下面

                # make prefix=/usr/local/git install

    5、第4步如果报 undefined reference to `libiconv' 错误请看,如果没报错,请跳过此步骤

            5.1 查看是否存在 /usr/local/lib/libiconv.so 文件,如果没有,则需要安装 libiconv(安装请参考网上教程)

            5.2 如果存在文件,或者已经安装完libiconv库,创建一个软链到/usr/lib

                # ln -s /usr/local/lib/libiconv.so /usr/lib

                # ln -s /usr/local/lib/libiconv.so.2 /usr/lib

            5.3 然后回到刚才编译安装git的目录继续编译

                #   cd  到你刚才解压git的目录下面

                # make configure

                #  ./configure --prefix=/usr/local --with-iconv=/usr/local/libiconv

                # make && make install

    6、检查是否安装成功

                # git --version

           git安装完毕

        7、创建一个git 用户组合用户 用来运行git服务

            # groupadd git     //创建组

            # useradd git -g git    //创建git用户,并加入刚才创建的git组里面

            # passwd git   //为git 用户添加密码

    8、创建证书,免密登录

        8.1 客户的生成秘钥

            # git config --global user.name "Timi"     //  " " 里面是你要创建的用户名

            # git config --global user.email "Timi@qq.com"

        8.2    查看公钥私钥 

                window 用户在  C盘/用户/当前所登录的用户文件夹/.ssh/

                linux  用户 默认情况下, SSH 密钥存储在其 ~/.ssh 目录下

    其中*.pub 为公钥,可以随便透漏给别人

            8.3  收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。

            # cd /home/git/          (如果没有git目录,请删除git用户组合用户重新创建git用户组合git用户)

            #  mkdir.ssh

            # chmod700.ssh

            #  touch.ssh/authorized_keys

            #  将公钥复制到 authorized_keys

    8.4  Git服务器打开RSA认证 。在Git服务器上首先需要将/etc/ssh/sshd_config中将RSA认证打开,

            即:将配置文件修改

                .RSAAuthentication yes

                .PubkeyAuthentication yes

                .AuthorizedKeysFile .ssh/authorized_keys

    9、初始化Git仓库,并将现有的项目加入到git

            9.1    创建一个空仓库 

                # cd /data

                # git init --bare  test.git     //服务器上的Git仓库通常都以.git结尾。

                # chown -Rf git:git test.git 

            9.2  将现有的项目加入git

                    # cd /home/www/tp5

                    # git init

                    # git add .

                    # git commit -m '将现有的项目加入git'

                    # git remote add origin git@114.215.214.1:/home/data/test.git

                    # git push origin master

            9.3,其他开发者就可以使用git clone 将项目克隆到本地,如果需要免密克隆提交,请参考 第8步

                    # git clone git@114.215.214.1:/home/data/test.git

    10、将git仓库的内容同步到web开发目录

        我的git仓库为 /home/data/test.git

         web目录为 /home/www

        10.1 添加钩子

                # cd /home/data/test.git/hooks

                # vim post-receive

                    #!/bin/bash

                    git --work-tree=/home/wwwroot/test checkout -f

                    sudo chown -Rf www:www /home/www/test 

               //注释  

                    添加第二行是因为我的git 仓库所属是git,而开发目录所属为www,所以更改了一下目录所属,当然你也可以不添加,没有添加第二行,直接可以跳到10.2步

                     如果添加了第二行,还要执行一下动作,使git普用户可以使用  chown命令,否则会报错

                    # visudo   

    添加一行 %git ALL=NOPASSWD:/bin/chown

            10.2 给钩子添加可执行权限

                    # chmod +x post-receive

     然后就可以开始从本地开发了,在本地版本库工作区里开发,然后使用git push指令推送到远程裸版本库,钩子会post-receive自动生效,将文件检出到--work-tree目录里,实现同步

    写到最后    

    1》为了安全起见,可以将git用户禁止shell 登录

        # vim /etc/passwd

        将 git: x :1001:1001:,,,:/home/git:/bin/bash

    改为:

    git: x :1001:1001:,,,:/home/git:/usr/bin/git-shell

      2》》如果发现已经添加了公钥到服务器,但是还提示输入密码。

        可尝试  chmod 700 /home/git/.ssh           chmod 644 /home/git/.ssh/authorized_keys

    相关文章

      网友评论

          本文标题:liunx centos7源码安装搭建版本控制器git

          本文链接:https://www.haomeiwen.com/subject/bxifdftx.html