Linux SVN 搭建(YUM)安装

2023-11-01

原文地址:http://www.centoscn.com/CentosServer/ftp/2014/0202/2409.html

安装说明

系统环境:CentOS-6.2
安装方式:yum install (源码安装容易产生版本兼容的问题)
安装软件:系统自动下载SVN软件


Linux svn服务端配置

检查已安装版本

#检查是否安装了低版本的SVN
[root@localhost /]#rpm -qa subversion

#如果存储旧版本,卸载旧版本SVN
[root@localhost modules]#yum remove subversion

安装SVN

[root@localhost modules]#yum install subversion 

验证安装

检验已经安装的SVN版本信息
[root@localhost modules]# svnserve --version

svnserve,版本 1.6.11 (r934486)
编译于 Jun 23 201200:44:03

版权所有 (C) 2000-2009 CollabNet
Subversion 
是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。
此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。

下列版本库后端(FS) 模块可用:

* fs_base : 模块只能操作BDB版本库。
* fs_fs : 
模块与文本文件(FSFS)版本库一起工作。

Cyrus SASL 认证可用。

代码库创建

SVN软件安装完成后还需要建立SVN
[root@localhost modules]#mkdir -p /opt/svn/             #
创建SVN根目录
[root@localhost modules]#svnadmin create /opt/svn/repo         #
创建repo测试库
执行上面的命令后,自动建立repo测试库,查看/opt/svn/repo 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。

配置代码库

进入上面生成的文件夹conf下,进行配置
[root@localhost modules]#cd /opt/svn/repo/conf

用户密码passwd配置

[root@localhost password]#cd /opt/svn/repo/conf
[root@admin conf]#vim passwd
修改passwd为以下内容:

[users]
# harry = harryssecret
# sally = sallyssecret

hello = 123

aaa = 123

www = 123

用户名=密码

这样我们就建立了hello用户, 123密码

以上语句都必须顶格写左侧不能留空格否则会出错.

权限控制authz配置

[root@admin conf]#vim authz
目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容:

[groups]            #

admin = hello,www   #创建一个admin组,将用户加入到组

[/]                 #根目录权限设置(就是“svn”这个文件夹)

aaa = rw            #aaasvn下的所有版本库有读写权限

[repo:/]            #repo:/,表示对repo版本库下的所有资源设置权限

@admin = rw         #admin组的用户对repo版本库有读写权限

[repo2:/occi], ,表示对版本库repo2中的occi项目设置权限

[repo2:/occi/aaa], ,表示对版本库2中的occi项目的aaa目录设置权限  权限主体可以是用户组、用户或*,用户组在前面加@*表示全部用户。权限可以是wrwr和空,空表示没有任何权限。

以上语句都必须顶格写左侧不能留空格否则会出错.

服务svnserve.conf配置

[root@admin conf]#vim svnserve.conf

追加以下内容:

[general]
#
匿名访问的权限,可以是read,write,none,默认为read
anon-access = none
#
使授权用户有写权限
auth-access = write
#
密码数据库的路径
password-db = passwd
#
访问控制文件
authz-db = authz
#
认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字

realm = /opt/svn/repo

以上语句都必须顶格写左侧不能留空格否则会出错.

配置防火墙端口(或直接关闭防护墙)

[root@localhost conf]#vim /etc/sysconfig/iptables
添加以下内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
保存后重启防火墙
[root@localhost conf]#service iptables restart

启动SVN

svnserve -d -r /opt/svn/         #指定SVN根目录

查看SVN进程

ps -ef|grep svnserve

使用import导入文件

svn import /mnt/ file:///opt/svn/repo/-m "注释"

增加           /mnt/hgfs

提交后的版本为 1

检测SVN 端口

[root@localhost conf]#netstat -ln |grep 3690
tcp  0  0 0.0.0.0:3690    0.0.0.0:*     LISTEN

停止重启SVN

[root@localhost password]# killall svnserve //停止
[root@localhost password]# svnserve -d -r /opt/svn/repo // 
启动

如果已经有svn在运行,可以换一个端口运行
svnserve -d -r /opt/svn/ --listen-port 3391


启服务器及测试:

1,启SVN服务,并指定SVN的根目录:

[root@youxia201 test]# svnserve -d -r/opt/svn/

使用checkout导出文件

在这里特别的要注意,/opt/svn是仓库的根目录,不要和[svntest:/]目录重叠了。如果重叠是会提示错误

[root@localhost conf]# svn checkoutsvn://127.0.0.1/repo  #本机测试,必需写错127.0.0.1

认证领域: <svn://127.0.0.1:3690>/opt/svn/repo

root”的密码直接回车

认证领域: <svn://127.0.0.1:3690>/opt/svn/repo

用户名hello

hello”的密码


-----------------------------------------------------------------------

注意你的密码,对于认证域:


 <svn://127.0.0.1:3690> /opt/svn/repo


只能明文保存在磁盘上如果可能的话,请考虑配置你的系统,让 Subversion

可以保存加密后的密码。请参阅文档以获得详细信息。


你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,

来避免再次出现此警告。

-----------------------------------------------------------------------

保存未加密的密码(yes/no)?yes

取出版本 1

不让它每次输入都提示yes/on的办法

编辑vim /root/.subversion/servers   找到下行去掉#号将on改为yes上面绿色部分已提示

store-plaintext-passwords = no

---------------------------------------------------------------------------------------------------------------------

到此,SVN服务端就配置完成了


Linux svn客户端配置

检查已安装版本

#检查是否安装了低版本的SVN
[root@localhost /]#rpm -qa subversion

#如果存储旧版本,卸载旧版本SVN
[root@localhost modules]#yum remove subversion

安装SVN

[root@localhost modules]#yum install subversion 

验证安装

检验已经安装的SVN版本信息
[root@localhost modules]# svnserve --version

svnserve,版本 1.6.11 (r934486)
编译于 Jun 23 201200:44:03

版权所有 (C) 2000-2009 CollabNet
Subversion 
是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。
此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。

下列版本库后端(FS) 模块可用:

* fs_base : 模块只能操作BDB版本库。
* fs_fs : 
模块与文本文件(FSFS)版本库一起工作。

Cyrus SASL 认证可用。

SVN客户端下载文件

[root@localhost ~]# mkdir /svn

[root@localhost ~]# cd /svn/        #svn服务上提取的文件放在此目录下

[root@localhost svn]# svn checkoutsvn://192.168.233.203/repo              #svn服务器地址

输入用户名密码:hello/123


:可以使用带用户名和密码的访问:

svn co --username hello --password 123svn://192.168.233.203/repo


SVN版本库更新

svn up /svn/repo

上传文件到服务器

[root@localhost ]# touch /svn/repo/test.php        #所有的动作必须在repo版本库中完成

[root@localhost ]# svn add /svn/repo/test.php           #上传test.php文件到svn服务器

删除服务器上的文件

[root@localhost ]# svn rm /svn/repo/test.php--force

查看版本库内容

[root@localhost ~]# svn list /svn/repo/


------------------------------------------------------------------------------------------------------------------------

到此,SVN客户端就配置完成了



创建版本库:
终端输入:svnadmin create [路径]
该路径可以是相对路径,例如,当前在home/user/svn/目录下,输入svnadmin create myproject,则该版本库会被创建在home/user/svn/目录下,新建一个文件夹名为myproject,其中便是版本库的文件了。

将文件导入版本库:
终端输入:svn import [源路径] [目标版本库路径] -m [日志信息]
源路径可以是相对路径,导入时会递归导入源路径下的所有文件和文件夹,目标版本库路径需要绝对目录(反正我试验是这样的),例如版本库的目录是:home/user/svn/myproject/。则应该这样写:file:///home/user/svn/myproject/
例如将当前目录导入版本库myproject
svn import . file:///home/user/svn/myproject -m"
导入文件"

从版本库导出:
导入后原文件并未被纳入版本管理,若想获得受版本控制的文件,就需要从版本库导出
终端输入:svn co [版本库路径
例如将myproject库中的文件导出到当前目录:svn co file:///home/user/svn/myproject .



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux SVN 搭建(YUM)安装 的相关文章

  • SVN运行上下文错误:现有连接被远程主机强制关闭

    我在 Debian Wheezy 构建服务器上创建了一个 SVN 存储库 如下所示本教程 http www networkworld com article 2224093 opensource subnet use subversion
  • 如何禁用 GNOME 桌面屏幕锁定? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何阻止 GNOME 桌面在几分钟空闲时间后锁定屏幕 我已经尝试过官方手册了在红帽 https access redhat com doc
  • 为什么内核需要虚拟寻址?

    在Linux中 每个进程都有其虚拟地址空间 例如 32位系统为4GB 其中3GB为进程保留 1GB为内核保留 这种虚拟寻址机制有助于隔离每个进程的地址空间 对于流程来说这是可以理解的 因为有很多流程 但既然我们只有 1 个内核 那么为什么我
  • Linux中的CONFIG_OF是什么?

    我看到它在很多地方被广泛使用 但不明白在什么场景下我需要使用它 What is 配置 OF OF 的全名是什么 打开固件 这是很久以前发明的 当时苹果公司正在生产基于 PowerPC CPU 的笔记本电脑 而 Sun Microsystem
  • 带有 LDAP 身份验证的 SVN 不起作用

    我首先从我的设置开始 为此我们有 2 台服务器 Server1 将用于所有源代码 文件等 在 Server2 上 我们拥有所有用户信息和登录信息 两台服务器都运行在 Centos 6 4 上 现在我们要在 server1 上设置一个 SVN
  • Linux 中的动态环境变量?

    Linux 中是否可以通过某种方式拥有动态环境变量 我有一个网络服务器 网站遵循以下布局 site qa production 我想要一个环境变量 例如 APPLICATION ENV 当我在 qa 目录中时设置为 qa 当我在生产目录中时
  • 域套接字“sendto”遇到“errno 111,连接被拒绝”

    我正在使用域套接字从另一个进程获取值 就像 A 从 B 获取值一样 它可以运行几个月 但最近 A 向 B 发送消息时偶尔会失败 出现 errno 111 连接被拒绝 我检查了B域套接字绑定文件 它是存在的 我也在另一台机器上做了一些测试 效
  • Android 时钟滴答数 [赫兹]

    关于 proc pid stat 中应用程序的总 CPU 使用率 https stackoverflow com questions 16726779 total cpu usage of an application from proc
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • 尝试安装 LESS 时出现“请尝试以 root/管理员身份再次运行此命令”错误

    我正在尝试在我的计算机上安装 LESS 并且已经安装了节点 但是 当我输入 node install g less 时 出现以下错误 并且不知道该怎么办 FPaulMAC bin paul npm install g less npm ER
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两
  • os.Mkdir 和 os.MkdirAll 权限

    我正在尝试在程序开始时创建一个日志文件 我需要检查是否 log如果不创建目录 则目录存在 然后继续创建日志文件 好吧 我尝试使用os Mkdir 也os MkdirAll 但无论我在第二个参数中输入什么值 我都会得到一个没有权限的锁定文件夹
  • 安装J语言的JQt IDE,出现错误

    我一直按照这里的说明进行操作 http code jsoftware com wiki System Installation Linux http code jsoftware com wiki System Installation L
  • 使用 yum 和 pear 安装 php-soap 均失败

    我正在尝试在 Centos 6 4 服务器上安装 PHP 的 SOAP 扩展 我对包管理器 从 CLI 安装包并在 PHP 中配置它们相当不熟悉 我相当有能力管理 php ini 和其他 PHP 配置文件 soap ini 等 我尝试使用以
  • 如何在shell中输出返回码?

    我正在尝试通过调用自定义 shell 脚本sh bin sh c myscript sh gt log txt 2 gt 1 echo 该命令的输出是创建的后台进程的 PID 我想指导 bin sh保存返回码myscript sh到某个文件
  • 在 Linux 上使用多处理时,TKinter 窗口不会出现

    我想生成另一个进程来异步显示错误消息 同时应用程序的其余部分继续 我正在使用multiprocessingPython 2 6 中的模块来创建进程 我试图用以下命令显示窗口TKinter 这段代码在Windows上运行良好 但在Linux上
  • 如何授予 apache 使用 NTFS 分区上的目录的权限?

    我在一台带有 20GB 硬盘的旧机器上运行 Linux Lubutu 12 10 我有一个 1 TB 外部硬盘 上面有一个 NTFS 分区 在该分区上 有一个 www 目录 用于保存我的网页内容 它在启动时自动安装为 media t515
  • 为arm构建WebRTC

    我想为我的带有arm926ej s处理器的小机器构建webrtc 安装 depot tools 后 我执行了以下步骤 gclient config http webrtc googlecode com svn trunk gclient s
  • 在我的 index.php 中加载 CSS 和 JS 等资源时出现错误 403

    我使用的是 Linux Elementary OS 并在 opt 中安装了 lampp My CSS and JS won t load When I inspect my page through browser The console

随机推荐

  • 动态规划之矩阵连乘(C语言)

    include
  • 【YOLOv5问题记录】thop库的安装

    最近开始学习YOLOv5 踩了不少坑 总结一下问题 配置环境按照这篇教程来的 Yolov5的配置 训练 超级详细 小学生玩编程的博客 CSDN博客 训练数据集跟着炮哥的这篇 目标检测 教你利用yolov5训练自己的目标检测模型 yolov5
  • liunx如何重启mysql

    Linux如何重启MySQL Linux中重启MySQL可以使用service mysql restart命令和脚本启动方式 etc inint d mysql restart 推荐 MySQL教程 其他命令如下 一 启动 1 使用 ser
  • leetcode第一题详解

    第一题两数之和 这个题没有什么难度啊 标示的足够清楚了 1暴力解法 加法 class Solution public int twoSum int nums int target 外层循环 遍历数组nums for int i 0 i lt
  • vue动态路由

    import Vue from vue import Router from vue router import layout from components layout Vue use Router 动态路由 export const
  • 用Caffe提取深度特征

    用Caffe提取深度特征 发表于 2015 05 28 1条评论 最近做对比实验 要比较非深度的方法加上deep feature之后的效果 于是就用Caffe提了一把特征 过程不困难但是有点繁琐 姑且记录下来 留个参考 准备工作 用Caff
  • jd-gui - 打开jar出现中文乱码问题

    我们平时会使用JD GUI来直接打开别的项目的jar包 来看看源码里有什么问题 代码里都是英文注释倒还好 要是有中文的注释 可能就会发生下面的情况 乱码了 这里不像eclipse或者idea 直接在设置里配置编码格式为UTF 8即可 但是j
  • kettle增量抽取

    通过时间去增量抽取 数据源 1 新建trans转换 设置变量 step1 mysql输入 不勾选 允许建议转换 勾选中文可能会乱码 step2 设置变量 2 新建trans转换 根据变量抽取数据 step1 获取变量 step2 表输入 s
  • uni-app和web-view页面相互传参

    在uni app中 可以通过uni navigateTo和uni redirectTo等方法跳转到其他页面 并且可以通过url参数进行页面间的参数传递 而在web view页面中 可以通过url的query参数进行参数传递 下面是一个示例
  • 什么是springboot

    Spring Boot是由Pivotal团队提供的全新框架 其设计目的是用来简化Spring应用的创建 运行 调试 部署等 使用Spring Boot可以做到专注于Spring应用的开发 而无需过多关注XML的配置 Spring Boot使
  • csdn 代码样式 代码高亮 代码风格

    刚玩csdn 结果发现博客帮助里没有教这个 就写了一下 希望可以帮到一些和我一样的新手 在文章的富文本内 选择源代码后 在源代码中编辑即可 修改下文中的class可以进行多种样式风格的支持 如html c javascript java c
  • 在ubuntu 20.04中安装mmSegmentation

    注 此教程是博主的学习笔记 基于pycharm软件进行学习 如有问题可以在评论区进行评论 目录 一 在pycharm中创建object segmentation虚拟环境 二 mmSegmentation配置与安装 一 mmSegmentat
  • 腾讯云16核服务器配置大全_CVM和轻量服务器汇总

    腾讯云16核CPU服务器有哪些配置可以选择 可以选择标准型S6 标准型SA3 计算型C6或标准型S5等 目前标准型S5云服务器有优惠活动 性价比高 计算型C6云服务器16核性能更高 轻量16核32G28M带宽优惠价3468元15个月 腾讯云
  • 组合式API- 1-Setup

    参数 使用 setup 函数时 它将接受两个参数 props context 第一个参数 Props setup 函数中的第一个参数是 props 正如在一个标准组件中所期望的那样 setup 函数中的 props 是响应式的 当传入新的
  • Keil转到Eclipse遇到的几个问题

    ARM下Keil转到Eclipse后的几个问题 Keil转战到Eclipse下 首先 Eclipse的交叉工具链的环境要进行设置 其次 在Keil中的Scatter file在Eclipse下要重新编写 最后 Eclipse的调试环境要进行
  • SQL7 查找年龄大于24岁的用户信息

    描述 题目 现在运营想要针对24岁以上的用户开展分析 请你取出满足条件的设备ID 性别 年龄 学校 用户信息表 user profile id device id gender age university province 1 2138
  • 网络通信TCP/UDP

    目录 1 TCP 通信 cs 模型 socket 函数 bind 函数 listen 函数 connect 函数 accept 函数 recv 函数 send 函数 close 函数 出现的问题解决 2 UDP 通信 sendto 函数 r
  • 10 个基本的 Python 编码约定

    10 个基本的 Python 编码约定 1 使用描述性变量名 2 遵循 PEP 8 标准 3 使用文档字符串记录函数 4 避免全局变量 5 DRY Don t Repeat Yourself 不要重复自己 6 使用列表表达式 7 使用异常进
  • 串口与普通IO口的区别

    General Purpose Input Output 通用输入 输出 简称为GPIO 或总线扩展器 人们利用工业标准I2C SMBus或SPI接口简化了I O口的扩展 当微控制器或芯片组没有足够的I O端口 或当系统需要采用远端串行通信
  • Linux SVN 搭建(YUM)安装

    原文地址 http www centoscn com CentosServer ftp 2014 0202 2409 html 安装说明 系统环境 CentOS 6 2 安装方式 yum install 源码安装容易产生版本兼容的问题 安装