linux怎么安装svn服务器?linux安装svn服务器的两种方式
操作环境:CentOS 7.2 64位
(资料图片)
第一种:采用压缩包安装:比如你们公司服务器上安装软件有自己的规定,一般会采用压缩包安装。
第一步:SVN服务器端压缩包下载
下载地址:http://mirrors.cnnic.cn/apache/subversion/
我下载的是subversion-1.8.19版本,下载好的压缩包置于目录 /usr/local/java/svn 下(根据大家实际需要自行选择存放目录)。
第二步:解压,进入解压后的文件
在/usr/local/java/svn目录下执行下面两个命令:
[]# tar -zxvf subversion-1.8.15.tar.gz
[]#cd subversion-1.8.19/
第三步:编译并安装
A.在/usr/local/java/svn/subversion-1.8.19目录下执行下面命令:
先执行命令:# ./configure,看看有没有报错,
(1)如果没有报错则跳过下面的B步骤;
(2)如果有报错则看下面的B步骤安装依赖包,每安装完一个依赖包,就要在# ./configure 命令后面追加 --with参数并再次运行加了with参数的configure命令。
如果我只安了一个apr依赖包,那么就执行命令: []#./configure --with-apr=/usr/local/apr命令; 如果我安了apr和apr-util,那么就执行命令: []#./configure --with-apr=/usr/local/apr –with-apr-util=/usr/local/apr 命令;
如果下面的依赖包全安了,就执行下面的命令:
[]#./configure --with-apr=/usr/local/apr –with-apr-util=/usr/local/apr –with-serf=/usr/local/serf –with-openssl
B.如果报错,提示缺少某某依赖包,缺什么就在此步B中找到相应依赖包下载下来放到/usr/local/java/svn/dependPackage目录下,解压并安装。:
1、 缺少apr模块(1.5.1) 官网URL:http://apr.apache.org/ 安装命令: []# tar zxvf apr-1.5.1.tar.gz []# cd apr-1.5.1 []# ./configure --with-apr=/usr/local/apr []# make && make install 2、 缺少apr-util模块(1.6.1) 官网URL:http://apr.apache.org/ 安装命令: []# tar zxvf apr-util-1.6.1.tar.gz []# cd apr-util-1.6.1 []# ./configure --with-apr=/usr/local/apr []# make && make install
3.如果报错:fatal error: expat.h: No such file or directory 解决方法如下: yum install expat-devel
4、 sqlite-amalgamation-3230100 官网URL:http://www.sqlite.org/download.html 解压到subversion目录下,解压后目录名为sqlite-amalgamation: []# unzip sqlite-amalgamation-3230100.zip -d …/subversion-1.8.15 []# mv …/subversion-1.8.15/sqlite-amalgamation-3230100 …/subversion-1.8.10/sqlite-amalgamation 5、 缺少zlib模块(1.2.11) 官方网站:http://www.zlib.net/ 安装命令: []# tar zxvf zlib-1.2.11.tar.gz []# cd zlib-1.2.11 []# ./configure []# make && make install 6、 缺少openssl模块(1.0.1h) 官方网站:http://www.openssl.org/ 安装命令: []# tar zxvf openssl-1.0.1h.tar.gz []# cd openssl-1.0.1h []# ./config []# make &&make install 7、 缺少expat模块(2.1.0) 官方网站:http://sourceforge.net/projects/expat/files/expat/2.1.0/ 安装命令: []# tar zxvf expat-2.1.0.tar.gz []# cd expat-2.1.0 []# ./configure []# make &&make install 8、 缺少serf模块(1.2.1) 官网URL:http://serf.googlecode.com/files/serf-1.2.1.tar.bz2 由于google官网受限,很难下载该模块。CSDN共享的下载地址: http://download.csdn.net/detail/attagain/8071513 说明: (1)1.8版本之前的需要加neon,1.8版本之后弃用neon而改使用serf; (2)这里使用的是serf-1.2.1,据subversion 1.8版本使用serf-1.3.0会有异常 安装命令: []# tar xjvf serf-1.2.1.tar.bz2 []# cd serf-1.2.1 []# ./configure []# make && make install
C.在/usr/local/java/svn/subversion-1.8.19目录下执行下面命令:
[]# make && make install
第四步:SVN版本库的建立
A.我选择的目录是 /home/svn/作为SVN版本库的根目录,命令为:
[]# mkdir /home/svn
B.比如,现在我有一个名为“project”的项目需要用SVN做版本管理,那么我可以在svn根目录下建立一个 /project目录,我最终目的想让项目托管到/project目录下。接下来我需要新建这个目录:/home/svn/project
,命令为: []# mkdir -p /home/svn/project
C.然后需要将/project目录设定为版本库,命令如下:
[]# svnadmin create /home/svn/project
D.设定/project目录为版本库后,会发现/project目录下会多出以下文件:
第五步:svn服务器的相关配置:
svn的配置主要就是对conf目录下的三个文件配置:svnserve.conf、passwd、authzs。
A.对着三个配置文件的讲解
a.svnserve.conf文件讲解[general]配置段中配置行格式: <配置项> = <值> ,常用的配置项是以下5项:
(1)anon-access控制非鉴权用户访问版本库的权限。取值范围为”write”、”read”和”none”。即”write”为可读可写,”read”为只读,”none”表示无访问权限。 缺省值:read (2)auth-access控制鉴权用户访问版本库的权限。取值范围为”write”、”read”和”none”。即”write”为可读可写,”read”为只读,”none”表示无访问权限。 缺省值:write (3)password-db 指定用户名口令文件名。除非指定绝对路径,否则文件位置为相对conf 目录的相对路径。 缺省值:passwd (4)authz-db 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。除非指定绝对路径,否则文件位置为相对conf目录的相对路径。 缺省值:authz (5)realm 指定版本库的认证域,即在登录时提示的认证域名称(就是个作为提示用的,不用太纠结)。 b.passwd文件讲解用户名口令文件,该文件名在文件svnserve.conf中指定,缺省为同目录下的passwd。
该文件仅由一个[users]配 置段组成。 [users]配置段的配置行格式如下: <用户名> = <口令> ,注意:配置行中的口令是未经过任何处理的明文。 例:用户名口令文件conf/passwd的内容如下,配置了两个用户,用户名分别为”quanran”和”dongxuening”。其中”quanran”用户的口令为”111111”,”dongxuening”用户的口令为”222222”: [users] quanran = 111111 dongxuening = 222222
c.authzs文件讲解权限配置文件,该文件名也在文件svnserve.conf中指定,缺省为同目录下的authz。 该配置文件由一个[groups]配置段和 若干个版本库路径权限段组成。
[groups]配置段中配置行格式如下: <用户组> = <用户列表> 用户列表由若干个用户组或用户名构成,用户组或用户名之间用逗号”,”分隔,引用用户组时要使用前缀”@”(如:引用用户组”all”要使用字符 串”@all”)。
版本库路径权限段的段名格式如下: [<版本库名>:<路径>] 如版本库abc路径/tmp的版本库路径权限段的段名为”[abc:/tmp]”。 可省略段名中的版本库名。若省略版本库名,则该版本库路径权限段对所有版本库中相同路径的访问控制都有效。如:段名为”[/tmp]”的版本库路径权限段 设置了所有引用该权限配置文件的版本库中目录”/tmp”的访问权限。
版本库路径权限段中配置行格式有如下三种: <用户名> = <权限> <用户组> = <权限>
= <权限> 其中,”*”表示任何用户;权限的取值范围为”、’r’和’rw’,”表示对该版本库路径无任何权限,’r’表示具有只读权限,’rw’表示有读写权 限。 注意:每行配置只能配置单个用户或用户组。
例3:权限配置文件conf/authz的内容如下: [groups] g_admin = admin,zhangsan
[admintools:/] @g_admin = rw
=
[test:/home/zhangsan] zhangsan = rw
= r
B.言归正传!开始配置!
(1)配置svnserve.conf [general] anon-access = none auth-access = write password-db = passwd authz-db = authz 备注:vi命令编辑svnserve.conf,insert进入编辑模式,放开以上选项,ESC :wq保存。设置非鉴权用户无权访问、设置鉴权用户可读写、口令及权限配置参照conf目录下passwd和authz的配置。 重要提醒!!:首行不可以留空,要顶行,否则会造成SVN识别为配置错误。 (2)配置passwd
[users] rokay = 123456 备注:配置了一个用户为“rokay”,密码为“123456”的用户。 (3)配置authz [groups] g_admin = rokay
[/] @g_admin = rw *=
备注:配置了一个管理员群组“g_admin”,包含用户“rokay”; “[/]”表示对根目录“trunk”的权限配置。 配置了“g_admin”群组对于该目录下的权限为“rw“(读、写)权限。
= 配置了除群组”g_admin“外的其他用户均无权访问。 注意:也可以用“,”分隔多个用户或者@+群组名称的方式配置多用户,参看上方说明。 (4)综上,就完成了对三个文件也就是svnserve的配置了。
第六步:启动svn服务
输入命令:# svnserve -d -r /home/svn 注意:/svn目录为版本库的根目录,所以路径仅到/svn即可。
此时,SVN服务器的配置以及版本库已经建立完成!
第七步:SVN Windows客户端访问
访问地址:svn://[服务器IP地址]/[项目名称];
例如:svn://123.206.73.117/project/
输入已授权的用户信息登录即可访问资源位置。 同样的,可以通过右击项目[team]—[share],输入以上URL将项目共享至新建的SVN版本库中。
注意:上述地址中没有”/svn”这一级目录,”/svn”为版本库根目录,不用输入!!!
第八步:新建多个版本库
若要在/svn目录下添加新的版本库,直接新建相应的目录,然后设置为版本库,最后配置即可,不需要重新运行svnserve -d -r /home/svn,也不需要把该命令应用到/svn目录下你所新建的目录,如果因为误操作执行了以上命令,会导致资源库不可用,再次运行svnserve -d -r /home/svn也会报:“不能绑定服务器套接字 地址已在使用”的错误字样“(若已至此,删除掉新建的资源库,并用ps -ef | grep svnserve查看进程,kill -9 [进程号] 杀掉,重新执行svnserve -d -r /home/svn,再次新建资源库,直接配置即可使用)
比如在/svn目录下另外新建一个project2的资源库,命令如下: []# mkdir -p /home/svn/project2 []# svnadmin create /home/svn/project2 :# 在次配置当前版本库的三个配置文件:svnserve.conf、passwd、authzs。 (不需再运行svnserve -d -r /home/svn !!!)
第九步:一切搞定,OK啦!
=第二种:yum安装方式。优点:简单,一键安装,不用手动配置环境变量等。缺点:安装位置为yum默认=
一、yum安装subversion
1. 安装subversionyum install subversion
2. 查看安装版本,检查安装是否成功svnserve --version,我装的版本为 1.7.14
3. 查看安装位置rpm -ql subversion
二、创建版本库
1.创建用于存放版本库的目录,比如我准备在/home下创建版本库mkdir -p /home/svn/
2.创建svn版本库,指定为刚才创建的目录svnadmin create /home/svn/porject
3.创建完后,版本库目录下会生成一些文件,进入conf目录下。conf目录中authz文件是权限控制文件,passwd是帐号密码文件,svnserve.conf是SVN服务配置文件。
修改svnserver.conf文件: [general] anon-access = none #匿名用户可读 auth-access = write #授权用户可写 password-db = passwd #使用哪个文件作为账号文件 authz-db = authz #使用哪个文件作为权限文件
4.修改passwd文件,加入用户,格式就是“用户名=密码”,如:
quanran = 11 dongxuening = 22
5.修改authz文件,加入用户权限:
[/]
quanran = rw
dongxuening = r
这就表示quanran 用户对版本库根目录有读写权限(即最高权限了),而dongxuening 用户对版本库目录只有读的权限。
6.svnserve.conf里面常用的配置有设置匿名用户(默认可读)、授权用户(默认读写)的读写权限,以及指定账号文件(默认passwd)、权限文件(默认authz)的路径等。看起来应该默认值就够了,但实际使用发现还是得手动把相关注释打开,不知道是什么原因。
7.启动svn版本库svnserve -d -r /home/svn/
其中,-r的作用是设置根目录路径,比如我这样设置后在访问时输入svn://x.x.x.x/就会直接到我的svn目录下(当然在svn目录下是找不到版本库的),如果想访问版本库则输入svn://x.x.x.x/Code即可。
换句说话,如果启动版本库时命令为svnserve -d -r /home/svn/,则访问svn://x.x.x.x/就能直接到版本库内。
三、常见问题
1.注意打开端口的访问权限。svn服务的默认端口为3690,比如我部署在阿里云服务器上,必须先在阿里云控制台打开3690端口的外部访问权限。
2.关闭svn服务的方式是杀掉进程,kill pid或者pkill svnserve———————————————— 版权声明:以上文为CSDN博主「全冉」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_23167527/article/details/80182317
解决SVN 无法连接到服务器问题
问题描述:
1、由于目标计算机积极拒绝,无法连接 2、由于连接方在一段时间后没有正确答复或连接
解决方法
1、svn 未启动,启动svn: svnserve -d -r ‘svn的仓库路径’ 2、防火墙原因,开放svn端口: 添加3690端口
问题描述
报No repository found in … …错误
解决方法
1、原因是svn指定运行仓库路径错误 2、查看svn进程:ps -aux|grep svn
root 28813 0.0 0.0 166804 936 ? Ss 11:50 0:00 svnserve -d -r /mnt/svnroot 29456 0.0 0.0 112640 960 pts/0 S+ 13:14 0:00 grep --color=auto svn
如果 svnserve -d -r /mnt/svn 指定的仓库路径与实际仓库路径不匹配,杀掉该进程后重新指定正确的仓库路径 3、本人服务器实际仓库路径是 /mnt/svn/repos,杀死进程:kill -9 28813 4、重新启动SVN,指定正确SVN仓库路径:svnserve -d -r /mnt/svn/repos 5、查看svn进程:ps -aux|grep svn
root 28813 0.0 0.0 166804 936 ? Ss 11:50 0:00 svnserve -d -r /mnt/svn/reposroot 29456 0.0 0.0 112640 960 pts/0 S+ 13:14 0:00 grep --color=auto svn
访问SVN成功! ———————————————— 版权声明:本文为CSDN博主「止木」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/u011050607/article/details/79456915
linux操作防火墙,添加服务、端口
操作防火墙,添加或删除端口,需要root权限。
查看防火墙状态:systemctl status firewalld active(running):开启状态,正在运行中 inactive(dead):关闭状态,未在运行开启防火墙:systemctl start firewalld,没有任何提示,表示开启成功关闭防火墙:systemctl stop firewalld添加mysql服务到防火墙,并加载 firewall-cmd --permanent --zone=public --add-service=mysql firewall-cmd --reload打开防火墙的udp 8089端口 firewall-cmd --zone=public --add-port=8089/udp --permanent #添加端口(–permanent表示永久生效,没有此参数重启后失效)firewall-cmd --reload 这个命令必须运行,才能加载成功查看udp 8089端口是否添加成功,查询端口开启情况 firewall-cmd --zone=public --query-port=8089/udp 删除防火墙8086端口 firewall-cmd --zone=public --remove-port=8086/tcp --permanent firewall-cmd --reload
标签:
相关推荐:
最新新闻:
- 【热闻】如何在Windows上清除/刷新DNS缓存?全平台详细教程
- 手机上网需要做哪些事儿?手机上网的关键流程_每日头条
- 16比9尺寸是多少厘米?液晶显示器16比9计算公式 焦点短讯
- 天天新消息丨怎么在线压缩视频文件?视频压缩方法分享
- 如何在代码中设置WIFI静态IP?设置WIFI静态IP流程:当前热议
- 环球热资讯!怎样美容?最全面的美容大法
- 全球快看:qq扩列功能怎么找不到了?2021新版功能在哪?
- 天天微速讯:如何定期清洗油烟净化器?详细步骤来了
- 头条:支付宝和微信免费提现有什么不同?支付宝和微信免费提现的区别
- 如何免费压缩PDF文件?这几个方法帮你搞定_世界聚焦
- hdmi接口有什么用?笔记本电脑常见接口科普
- 酷派大神9976A怎么刷机?酷派大神9976刷机教程:独家
- 【干货】PLC之间的通信怎么入门?PLC之间的通信怎么学?:世界新消息
- 笔记本电脑wifi怎么连接?联想小新air12教程-天天即时看
- 怎么在电脑上玩口袋妖怪新世代手游?口袋妖怪新世代电脑版玩法攻略|环球今日讯
- 步步高工具高通版刷机救砖教程(安装驱动)
- linux怎么安装svn服务器?linux安装svn服务器的两种方式
- 如何操作现货原油期货?操作流程步骤
- 获取ajax里面的数组内容——实现异步列表
- nmap扫描工具怎么使用?nmap扫描工具简单使用教程
- 《哥斯拉大战金刚2:新帝国》前导预告发布
- 类银河战士恶魔城《动物井》还将登陆Switch
- 今日热文:特斯拉Model3价格跌破4万美元
- 又一款国民神车来了 定价仅为5.39万|环球讯息
- 今日热文:生态才是关键 运动的终点在朋友圈
- iPhone14 128GB只要4919元
- 环球速递!董宇辉自曝发一条广告给1000万:这钱不能挣
- 《伊苏10》公布新角色及三种特殊能力 环球资讯
- 全球观天下!NVIDIA显卡降价开启:RTX 4090居然破发
- 开发者称《浩劫前夕》发行前将举行Beta测试
- 【世界新视野】钞能力真香?宝马高管大呼我们的家在中国
- 18万买特斯拉Model 3?官方紧急辟谣想得美
- 小米11青春版8+256G只要1319元 世界最新
- 天天看热讯:小米13 Ultra首销破10万?秘密就是价格定低了
- 新增武器技能《神之亵渎2》2023年夏季全平台发售
- 罗素兄弟《惊天营救3》有望立项 欲打造系列宇宙
- 第三方展示蜘蛛侠主题定制rtx4070 红蓝配色经典logo
- 观热点:《新无主之地:传说》D加密被移除 历时约半年
- 胆小慎入!《潜伏5:红门》首曝港版中字预告 世界新要闻
- 环球观点:《星球大战绝地:幸存者》PS5版超147GB
- 硬盘减负难!曝《星战绝地幸存者》PS5版大小为147G
- PS三档会员新福利:试玩2小时《迪士尼无限飞车》_讯息
- 《红霞岛》新角色预告:武器发明家 花式杀僵尸-快讯
- 外媒:游戏中黑人女主比例正在上升 但仍有增长空间
- 买来收藏!近半数玩家选择《王国之泪》实体版
- 初心如磐,奋楫笃行,共赢数字化未来
- 移动游戏的魅力壹号本PC掌机与你相约ZOL“武汉潮好玩”嘉年华_当前看点
- 当前热议!《魔戒:咕噜》开发商为付费精灵语DLC辩护:只有真爱粉才懂
- 精选!新《仙剑奇侠传》电视剧过审 杨雨潼何与等主演
- 焦点快报!开发者爆料暴雪人才流失严重:高层无视意见独断专行
- 天玑9200+跑分曝光:137万分
- iPhone 14频繁重启 遭大规模用户投诉:每日时讯
- iPhone 15接口处曝光 竟然还是Lightning?
- 100%自研技术!国产龙芯CPU进驻国家重点工程
- 46只权益类基金产品一季报出炉 业绩表现分化权益仓位相差较大
- 微软计划自研人工智能芯片 欲与英伟达竞争:看点
- 《暗黑破坏神4》将于明天公布新情报 会有“大秘密”揭露
- 《圣斗士星矢》真人版幕后花絮:解密武打拍摄过程!
- 每日热议!从江加榜景区正式启动运营,票价是……
- 天天百事通!李佳琦隐退,她突然上位
- 天玑9200+跑分超136万,创安卓跑分纪录,性能碾压 环球最资讯
- 环球今亮点!2023 Q1全球智能手机市场排行出炉:三星夺冠、小米成国产第一
- 颜值也是战斗力:EVA联名款ROG电竞路由不可错过
- 上海车展:KEDE克蒂汽车携首发车型重磅亮相:天天快看
- 荣耀MagicBook 14 2023笔记本今晚开售:13代酷睿、首发4999元|天天即时
- 随矿潮结束 英特尔宣布停产比特币挖矿芯片_最新资讯
- 小米13 Ultra被抢购一空!雷军:备货非常困难
- 环球快报:《铁甲小宝》重制蟑螂恶霸登场!黄蓝配色略显黯淡
- 色彩静物如何深入塑造教学写生
- PSP超级机器人大MX图文攻略_psp机器人大战mx主角超级系和真实系有什么区别?哪个好
- 高端超龙散热加持!微星发布RTX 3060 Ti SUPER 3X_当前观点
- 选购不指北:老房改造可以购买集成灶吗?
- 去往中国最美的8个原始森林_天天快消息
- 当前热讯:三星智能戒指Galaxy Ring曝光,健康追踪精度比手表更准
- 仅109元,480GB 铨兴SATA3.0固态硬盘 全球热推荐