Linux安装,使用
Linux安装Server
安装
进入Linux命令行,执行 yum install -y subversion
结束后执行 svn --version
验证是否安装成功
创建并配置版本库
执行 mkdir -p /var/svn/repository
-p 是指创建多级目录
进入repository目录,执行 mkdir project-finance
,mkdir project-ebank
创建了两个目录。代表两个具体的项目
此时只是创建了2个目录而已,我们还需要把他变成svn的版本仓库
- 先执行
svnadmin create /var/svn/repository/project-ebank
命令,让svn管理ebank项目目录 ,并且在这个目录下生成了svn的配置文件。图中描述的钩子程序会在使用Jenkins的时候介绍
开机自启一 CentOS6
查询svn服务名称:chkconfig|grep svn
名称为svnserve
此时svn的服务不是开机自启动的,执行chkconfig svnserve on
命令设置为开机自启动,
当然了此时svn服务并没有启动,只是设置他为开机自启动而已
修改配置文件
然后需要配置svn的可执行文件的一些信息,进入cd /etc/rc.d/init.d
找到svn服务的可执行文件进行修改。注意备份!
执行命令vim /etc/rc.d/init.d/svnserve
进入配置文件修改,找到args将其内容复制一行粘贴进行修改,并且将原先的内容注释掉如下图:
修改之前的内容
args="--daemon --pid-file=${pidfile} $OPTIONS"
修改之后的内容
args="--daemon --root [版本库根目录] --listen-port [指定端口号] --pid-file=${pidfile} $OPTIONS"
svnserve服务的默认端口为3690,我们给他改成了3355,在修改之前可以先查看3355端口是否被占用
#使用命令:
netstat -anp|grep [端口号]
启动
#使用命令:
service svnserve start
使用
检出
提交
创建hellosvn.txt文件 ,将其添加到版本库,再将其提交到svn版本库,如果不打开匿名访问是提交不了的,为了方便将其打开
vim hellosvn.txt
svn add hellosvn.txt
svn commit -m 注释 hellosvn.txt。
# 会提示认证失败,为了方便我将匿名访问打开
查看服务器端文件内容
查看版本库的文件svn list svn://localhost:3355/project-ebank
更新操作
作用:把服务器端文件所产生的所有修改下载到本地
命令:svn update [文件名]
权限设置
svn的权限控制主要分配在版本库的Conf文件夹下的三个文件中
svnserve.conf
最终可以设置为:
anon-access = none #不允许匿名用户访问,之前我设置为write意思是允许匿名用户访问,具备读写权限
auth-access = write #通过验证的用户可以读和写
password-db = passwd #用户与密码对应的数据保存在passwd文件中
authz-db = authz #权限的信息保存在文件authz中
最终设置的内容:
passwd
主要用于创建用户和角色 格式:用户名 = 密码
authz
分配权限,可以给个人或者用户组授予权限
用户组权限可以一次分配多个工作目录,新加成员只需要添加到用户组,比如是开发,加入到开发组权限中,一个用户可以有多个组,便于维护
个人权限需要每次给固定用户分配到固定的目录读写权限,新加用户需要找到对应的目录,如果需要多目录权限,还需要重复添加
[groups] #用户组
g_admin = admin #分配admin用户在g_admin组中
g_java = zhangsan,lisi #分配张三,李四用户在g_java组中
[/] #[/]表示是svn根目录,标签后的用户拥有根目录权限
@g_admin = rw #分配给g_admin用户组根目录的读写权限
admin = rw #分配读写权限给admin用户,为单个用户分配权限
* = r #其余没有分配权限的所有用户拥有读的权限
[/code/java] #[/code/java]是svn下的源码存放路径
@g_java = rw #分配java源码路径的读写权限给java组的人
zhangsan = rw #分配读写权限给zhangsan 用户,为单个用户分配权限
lisi = rw #分配读写权限给lisi 用户,为单个用户分配权限
Eclipse连接服务端
Eclipse连接服务端,此时我已经把端口还原到3690了。所以仓库直接录入svn://192.168.24.133/project-ebank
。这个project-ebank是基于我们之前配置的svn仓库位置来的,之前配置的是/var/svn/repository/
开机自启二 CentOS7
编辑svn service 配置文件
/etc/sysconfig/svnserve
然后在命令行输入
systemctl enable svnserve.service
下一步重启即可,然后查看是否启动
1. reboot
2. ps aux|grep svnserve
关闭selinux
为什么要关闭selinux?
我在Linux上安装了SVN服务器,设置了自动启动之后。再客户端访问SVN服务器报错。
Permission denied
svn: Unable to connect to a repository at URL 'svn://192.168.20.128/jenkins'
svn: 不能打开文件“/var/svn/workspace/jenkins/format”: 权限不够
什么是selinux?
安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。
SELinux 主要由美国国家安全局开发。2.6 及以上版本的 Linux 内核都已经集成了 SELinux 模块。
SELinux 的结构及配置非常复杂,而且有大量概念性的东西,要学精难度较大。很多 Linux 系统管理员嫌麻烦都把 SELinux 关闭了。
掌握 SELinux 的基本概念以及简单的配置方法是每个 Linux 系统管理员的必修课。但是由于学艺不精,并且较为麻烦就把他先关闭了吧!
查看selinux状态
[root@localhost ~]# getenforce
Enforcing //enforceing代表开启,
[root@localhost ~]# getenforce
Permissive // permissive代表警告
[root@localhost ~]# getenforce
Disabled //disabled代表关闭
暂时关闭
暂时关闭,重启之后就会失效
[root@localhost ~]# setenforce 0 //关闭
[root@localhost ~]# getenforce
Permissive
[root@localhost ~]# setenforce 1 //开启
[root@localhost ~]# getenforce
Enforcing
通过修改配置文件永久生效
修改/etc/selinux/config 文件,将SELINUX=enforcing改为SELINUX=disabled。修改配置文件需要重启机器。
配置CentOS使用root用户直接免密登录
vim /etc/gdm/custom.conf
#在[daemon]下输入
AutomaticLoginEnable=true
AutomaticLogin=root #登录的用户
配置好之后重启即可生效