centos安装git服务端和svn服务端

  • git服务端

首先确保有ssh,centOS自带opensshcss

1.查看ssh版本html

ssh -V

2.安装gitgit

确保在root用户下执行该命令shell

$su root
#yum install -y git

验证是否安装成功,输出git version ....则成功vim

git --version

3. 添加git的管理帐户,添加该帐户以后,在后面须要禁止该帐户远程登陆,不然会有安全隐患。安全

// 如下也为root帐户
#useradd git // 添加git帐户
#passwd git // 为git用户设置密码

#cd /home && ls -al // 查看/home下的目录,添加用户则默认会有一个git的目录,而且用户和组都为git

4.使用过GitHub都知道ssh的公钥,咱们搭建本身的私人git服务端,须要将客户端的私钥保存到服务端bash

#su git  // 切换git用户
$cd /home/git
$mkdir .ssh
$cd /home/git/.ssh
$touch authorized_keys    // 保存公钥的文件
$ chmod 700 /home/git/.ssh/     // 设置权限
$ chmod 600 /home/git/.ssh/authorized_keys

5.将客户端的私钥上传服务器服务器

  在用户主目录下会有一个.ssh的隐藏文件夹,文件夹下有id_rsa和id_rsa.pub两个文件。若是没有请百度ssh

将id_rsa.pub上传至服务器,并使用svn

$cat id_rsa.pub >> authorized_keys

写入认证文件。

6.服务器建立测试git仓库

// 切换到git帐号
$ su git // 进入git帐号的用户主目录。

$ cd /home/git  // 在用户主目录下建立 test.git仓库的文件夹

$ mkdir test.git  && cd test.git  // 在test.git目录下初始化git仓库

$ git init --bare
Initialized empty Git repository in /home/git/test.git/

此时,客户端就能够clone或者remote add此仓库了

6.客户端测试链接git仓库,在客户端执行

$ mkdir demos && cd demos
$ git init
$ touch a.txt
$ echo 'xxxx.com' >> a.txt

$ git add .
$ git commit -m 'the first commit'

# 把当前仓库跟远程仓库添映射
$ git remote add origin git@xxxx.com:test.git

# 把当前仓库push到远程仓库。
$ git push -u origin master

7.禁用客户端shell登陆

在/home/git下建立git-shell-commands,而且目录为git帐户

$ su git
$ mkdir /home/git/git-shell-commands

修改/etc/passwd文件

$ vim /etc/passwd

# 能够经过 vim的正则搜索快速定位到这行,  命名模式下  :/git:x

# 找到这句, 注意1000多是别的数字
git:x:1000:1000::/home/git:/bin/bash

# 改成:
git:x:1000:1000::/home/git:/bin/git-shell

# 最好不要直接改,能够先复制一行,而后注释掉一行,修改一行,保留原始的,这就是经验!!!
# vim快捷键: 命令模式下:yy复制行, p 粘贴  0光标到行首 $到行尾 x删除一个字符  i进入插入模式 
# 修改完后退出保存:  esc进入命令模式, 输入::wq!   保存退出。

若是有其余小伙伴要链接git服务器,仅须要把他的公钥也添加到authorized_keys便可。

GIT服务端的安装参照博客:http://cnblogs.com/fly_dragon/p/8718614.html


 

  • SVN服务端

  使用命令:

yum install subversion

便可完成svn服务端的安装。

  检查安装:

svnserve --version

使用上面的命令检查版本。

  配置版本库:

默认项目在/var/svn下。我想放在/home/svn目录下,须要编辑svn的配置文件

[root@localhost home]# vi /etc/sysconfig/svnserve

# OPTIONS is used to pass command-line arguments to svnserve.
#
# Specify the repository location in -r parameter:
OPTIONS="-r /home/svn"

   建立本身的版本库(项目名:testProject):

svnadmin create /home/svn/testProject

建立以后,在/home/svn目录下有testProject的文件夹

  配置版本库的用户名和密码,在testProject下的conf目录有这些配置文件

vi /home/svn/testProject/conf/passwd

该文件中是密码的配置,格式是“用户名” = “密码”

[users]
# harry = harryssecret
# sally = sallyssecret
user1 = 123456
user2 = 123456

  配置版本库的权限:

vi /home/svn/testProject/conf/authz

在文件末尾加上用户的权限,通常用户有根目录的权限

[/]
user1 = rw
user2 = rw

  修改版本库的配置:

[general]
anon-access = none                     #控制非鉴权用户访问版本库的权限
auth-access = write                    #控制鉴权用户访问版本库的权限
password-db = passwd                   #指定用户名口令文件名
authz-db = authz                       #指定权限配置文件名

  启动版本库:

svnserve -d -r /home/svn/

  中止svn:

killall svnserve

  同步:  

  不能直接在版本库中存文件,svn中将存的是压缩事后的文件,不能直接将文件拷贝到服务端的版本库文件目录下。须要先同步空的版本库到本地,而后将文件add到SVN,而后commit。

相关文章
相关标签/搜索