1、如何在linux上安装svn服务器
你好,centos下安装 svn 1.9.5 按照步骤一步一步装岁弊就OK 。以下是我的步骤。分享给你
安装1.9
准备工作:
1、安装编译工具包
yum install apr* autoconf automake bison bzip2 cloog-ppl compat* cpp curl curl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c++ gtk+-devel gd gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng* libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool libtool* libgomp libxml2 libxml2-devel libXpm* libtiff libtiff* libX* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils ppl telnet t1lib t1lib* nasm nasm* wget zlib-devel zlib unzip perl-ExtUtils-Embed
2、yum remove apr apr-util subversion subversion-libs #删除系统中原有的svn及依赖包
3、下载软件包
https://dist.apache.org/repos/dist/release/apr/apr-1.5.2.tar.gz
https://dist.apache.org/repos/dist/release/apr/apr-util-1.5.4.tar.gz
http://prdownloads.sourceforge.net/scons/scons-2.3.5.tar.gz
http://www.openssl.org/source/openssl-1.0.1o.tar.gz
https://www.apache.org/dist/serf/serf-1.3.9.tar.bz2
http://www.apache.org/dist/subversion/subversion-1.8.13.tar.gz
http://www.sqlite.org/2017/sqlite-amalgamation-3160200.zip
1、安装apr
cd /usr/local/src #进入软件包存放目录
tar zxvf apr-1.5.2.tar.gz #解压
cd apr-1.5.2 #进入安装目录
./configure --prefix=/usr/local/apr #配置
make #编译
make install #安装
2、安装apr-util
cd /usr/local/src
tar zxvf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --with-apr=/usr/local/乎如族apr/bin/apr-1-config
make && make install
3、安装scons
cd /橡漏usr/local/src
tar zxvf scons-2.3.5.tar.gz
cd scons-2.3.5
python setup.py install #配置安装
4、安装openssl
cd /usr/local/src
tar zxvf openssl-1.0.1o.tar.gz
cd openssl-1.0.1o
CFLAGS=-fPIC ./config --prefix=/usr/local/openssl enable-shared
make && make install
vi /etc/profile #添加系统环境变量
export PATH=$PATH:/usr/local/openssl/bin >> /etc/profile
#export PATH=$PATH:/usr/local/openssl/bin >> /etc/profile
:wq! #保存退出
source /etc/profile #使配置生效
ln -s /usr/local/openssl/include/openssl /usr/include/openssl #添加系统软连接
5、安装serf
cd /usr/local/src
tar -xf serf-1.3.9.tar.bz2
cd serf-1.3.9
scons PREFIX=/usr/local/serf APR=/usr/local/apr/bin/apr-1-config APU=/usr/local/apr/bin/apu-1-config OPENSSL=/usr/local/openssl
scons install
cd /usr/local/serf/lib
cp libserf-1.so* /usr/local/lib/ #拷贝文件到系统目录
6、安装svn
cd /usr/local/src
tar zxvf subversion-1.9.5.tar.gz
cd subversion-1.9.5
mkdir /usr/local/src/subversion-1.9.5/sqlite-amalgamation #创建sqlite-amalgamation目录
cd /usr/local/src
unzip sqlite-amalgamation-3160200.zip -d /usr/local/src/subversion-1.9.5/sqlite-amalgamation
mv /usr/local/src/subversion-1.9.5/sqlite-amalgamation/sqlite-amalgamation-3160200/* /usr/local/src/subversion-1.9.5/sqlite-amalgamation
#解压sqlite-amalgamation软件包到sqlite-amalgamation目录
cd /usr/local/src/subversion-1.9.5
./configure --prefix=/usr/local/svn --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-serf=/usr/local/serf --with-openssl=/usr/local/openssl --enable-mod-activation #配置
make #编译
make install #安装
vi /etc/profile #添加系统环境变量,添加到最后一行
export PATH=$PATH:/usr/local/svn/bin
:wq! #保存退出
source /etc/profile #使配置立刻生效
whereis libexpat.so.1 #查找文件安装目录,如下:
libexpat.so: /lib/libexpat.so.0 /usr/local/lib/libexpat.so /usr/local/lib/libexpat.so.1
vi /etc/ld.so.conf #编辑加入libexpat.so.1的目录
/usr/local/lib/
:wq! #保存退出
ldconfig #使配置生效
2、svn windows怎么连接到linux服务器上
可以通过TortoiseSVN访问。
1,TortoiseSVN,TortoiseSVN在百度中心就可以了。
2,安装TortoiseSVN,双击运行,按照提示,选择安装目录,直到安装完成。
3,安装完成后,在桌面或者其他目录下右击鼠标即可看到TortoiseSVN的菜单。
4,导出项目,右击空白处,选择TortoiseSVN - checkout
5,按提示输入主机ip及目录,如192.168.1.111/svn/test,输入服务器预设的账户名和密码。
6,检出完成后可以修改文件,进行提交和update操作。
3、怎么在linux服务器上部署svn服务器
举个例子,命令执行创建:svnadmin create /svn 需要修改配置文件,设置账号密码 启动svn服务:svnserve -d -r /svn svn://IP/svn 就是你的访问版路径 pc安装svn客户权端,通过检出或者版本库浏览器访问地址即可
4、Linux centos下安装svn服务器就这么难么
Centos下安装SVN服务器详细步骤
在保证联网的条件下,执行以下一、二操作,否则请先下载apache、svn的安装包并解压缩
1.安装apache
yum install httpd
2.安装svn
yum install subversion
yum install mod_dav_svn
3.创建SVN仓库
mkdir /home/svn
4.在SVN仓库目录下创建你要的版本库
svnadmin create /home/svn/xyz (版本库名:xyz)
5.创建用户及密码
在/home/svn/xyz/conf目录下,输入:htpasswd -c passwd xiao
第一次在创建用户密码,需加上“- c”参数
6.设置权限
编辑authz文件,设置组别人员读写权限
7.修改svnserver.conf
8.启动SVN服务
svnserve -d --listen-port 3690 -r /home/svn/xyz
9.防火墙打开3690端口
进入/etc/sysconfig,修改iptables文件
加入如下:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
10.修改apache,目的是保证http能够访问
修改/etc/httpd/conf.d/subversion.conf文件
加入如下:
LoadMole dav_svn_mole moles/mod_dav_svn.so
LoadMole authz_svn_mole moles/mod_authz_svn.so
<Location />
DAV svn
SVNParentPath /home/svn/xyz
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /home/svn/xyz/conf/passwd
AuthzSVNAccessFile /home/svn/xyz/conf/authz
Require valid-user
</Location>
11.配置SVN下目录被apache拥有
chown –R apache:apache/home/svn/xyz
12.设置apache开机启动
chkconfig httpd on
13.设置svn开机启动
(1)编写/usr/local/customshell/svn.sh,内容为svnserve –d --listen-port 3690 –r / home/svn/xyz
(2). vim /etc/rc.d/rc.local 增加一句:/usr/local/customshell/svn.sh
5、linux下svn客户端访问windows下的svn服务器
一,安装svn服务器
在Linux中安装了服务端,
$ yum install subversion
二,在Windows中安装客户端(TortoiseSVN-1.9.4.27285-x64-svn-1.9.4.msi)
三,基本的SVN服务器配置
1,新建一个目录用于存储SVN所有文件
$ mkdir /svn
2,新建一个版本仓库$ svnadmin create /svn/project
3,添加用户
要添加SVN用户非常简单,只需在/svn/project/conf/passwd文件添加一个形如“username=password”的 账号为username和密码为password
[users]
mysj = mysj
test = test
5,修改用户访问策略
/svn/project/conf/authz记录用户的访问策略,以下是参考:
[groups]
admin=mysj //将用户进行分组
user=test
[project:/] //进行授权
@admin = rw //r表示读,w表示写
@user = r
* =
6,修改svnserve.conf文件,让用户和策略配置升效.
svnserve.conf内容如下:
此处切记要注意空格,不然会导致svn配置不成功
[general]
anon-access = none
auth-access = write
password-db = /svn/project/conf/passwd
authz-db = /svn/project/conf/authz
7,启动服务器
# svnserve -d -r /svn
注意:如果修改了svn配置,需要重启svn服务,步骤如下:
$ ps -aux|grep svnserve
$ kill -9 ID号 杀死服务
$ svnserve -d -r /svn
四,在Windows系统中检出svn的文件,此时的地址也应该为 svn://Linux的ip地址/project/文件夹名(你自己创建的)。
6、linux 搭建的svn服务器怎么访问
举个例子,命令执行创建:svnadmin create /svn 需要修改配置文件,设置账号密码
启动svn服务:svnserve -d -r /svn
svn://IP/svn 就是你的访问路径
pc安装svn客户端,通过检出或者版本库浏览器访问地址即可
7、怎么在linux服务器上部署svn
1. 安装SVN服务器:
检查是否已安装
# rpm -qa subversion
安装SVN服务器
# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql
验证安装
# cd /etc/httpd/moles
# ls | grep svn
mod_authz_svn.so
mod_dav_svn.so
查看版本
# svnserve --version
2. 代码库创建:
安装完成后要建立SVN库
# mkdir -p /opt/svn/repositories
# svnadmin create /opt/svn/repositories
执行后,自动建立repositories库,查看/opt/svn/repositories文件夹包含了conf,db,format,hooks,locks,README.txt等文件,说明一个SVN库已经建立。
3. 配置版本库:
进入上面conf文件夹下,进行配置:
a. 用户密码passwd配置:
# vi + passwd //+表示光标放在文件最低端
修改passwd为一下内容:
[users]
# harry = harryssecret
# sally = sallyssecret
zhoulf=123456
b. 权限控制authz配置:
# vi + authz
设置哪些用户可以访问哪些目录,向authz文件追加以下内容:
[/]
zhoulf=rw //给该用户访问所有库的权限
或
[repositories:/project] //repository库的根目录权限
zhoulf=rw
/ 表示根目录及以下,根目录是svnserve启动时指定的,我们指定的是/opt/svn;/ 就是指对全部版本库都具有权限
repositories:/ 表示对库repositories的根目录设置权限
PS:
* 权限配置文件中出现的用户名必须已在用户配置文件中定义。
* 对权限配置文件的修改立即生效,不必重启svn。
c. 服务svnserve.con配置:
# vi + svnserve.conf
添加一下内容:
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm=/opt/svn/repositories
这里注意各标签不能错,也不能有重复,不然无法连接。
d. 配置防火墙端口(如果需要):
不一定每个人都需要设置,可以先测试后再看是否需要打开端口
# vi /etc/sysconfig/iptables
添加一下内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
保存后重启防火墙
# service iptables restart
4. 查看:
a. 启动SVN
# svnserve -d -r /opt/svn/repositories
b. 查看SVN进程
# ps -ef|grep svn|grep -v grep
root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /opt/svn/repositories
c. 检测SVN端口
# netstat -ln |grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
5. 停止重启SVN:
# killall svnserve //停止
# svnserve -d -r /opt/svn/repositories // 启动
6. 测试连接:
使用TortoiseSVN进行测试:
1. SVN服务启动后,需要使用客户端测试连接:
客户端连接地址:svn://192.168.15.231;然后,输入用户名密码;
2. 新建一个文件夹,即本地的库文件夹,右键checkout,将会得到一个隐藏文件夹.svn;
3. 在此文件夹中放入项目内容,然后右键点击commit,就可以上传本地项目了。
8、在linux下如何下载svn上的文件?
linux下载svn客户端就可以使用命令下载文件。
1、将文件checkout到本地目录
svn checkout path(path是服务器上的目录)
例如:svn checkout svn://192.168.1.1/pro/domain
简写:svn co
2、往版本库中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加当前目录下所有的php文件)
3、将改动的文件提交到版本库
svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)
例如:svn commit -m “add test file for my test“ test.php
简写:svn ci
4、加锁/解锁
svn lock -m “LockMessage“ [--force] PATH
例如:svn lock -m “lock test file“ test.php
svn unlock PATH
5、更新到某个版本
svn update -r m path
例如:
svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
简写:svn up
6、查看文件或者目录状态
1)svn status path(目录下的文件和子目录的状态,正常状态不显示)
【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】
2)svn status -v path(显示文件和子目录状态)
第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
简写:svn st
7、删除文件
svn delete path -m “delete test fle“
例如:svn delete svn://192.168.1.1/pro/domain/test.php -m “delete test file”
或者直接svn delete test.php 然后再svn ci -m ‘delete test file‘,推荐使用这种
简写:svn (del, remove, rm)
8、查看日志
svn log path
例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化
9、查看文件详细信息
svn info path
例如:svn info test.php
10、比较差异
svn diff path(将修改的文件与基础版本比较)
例如:svn diff test.php
svn diff -r m:n path(对版本m和版本n比较差异)
例如:svn diff -r 200:201 test.php
简写:svn di
11、将两个版本之间的差异合并到当前文件
svn merge -r m:n path
例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
12、SVN 帮助
svn help
svn help ci
——————————————————————————
以上是常用命令,下面写几个不经常用的
——————————————————————————
13、版本库下的文件和目录列表
svn list path
显示path目录下的所有属于版本库的文件和目录
简写:svn ls
14、创建纳入版本控制下的新目录
svn mkdir: 创建纳入版本控制下的新目录。
用法: 1、mkdir PATH…
2、mkdir URL…
创建版本控制的目录。
1、每一个以工作副本 PATH 指定的目录,都会创建在本地端,并且加入新增
调度,以待下一次的提交。
2、每个以URL指定的目录,都会透过立即提交于仓库中创建。
在这两个情况下,所有的中间目录都必须事先存在。
15、恢复本地修改
svn revert: 恢复原始未改变的工作副本文件 (恢复大部份的本地修改)。revert:
用法: revert PATH…
注意: 本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复
被删除的目录
16、代码库URL变更
svn switch (sw): 更新工作副本至不同的URL。
用法: 1、switch URL [PATH]
2、switch –relocate FROM TO [PATH...]
1、更新你的工作副本,映射到一个新的URL,其行为跟“svn update”很像,也会将
服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的
方法。
2、改写工作副本的URL元数据,以反映单纯的URL上的改变。当仓库的根URL变动
(比如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用
这个命令更新工作副本与仓库的对应关系。
17、解决冲突
svn resolved: 移除工作副本的目录或文件的“冲突”状态。
用法: resolved PATH…
注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的
相关文件,然后让 PATH 可以再次提交。
9、怎么在linux上安装svn服务端
centos 6.5
1.安装tftp软件
# yum -y install tftp*
2.修改配置文件
# vi /etc/xinetd.d/tftp
server_args = -s /tftpboot '加-c
disable = yes '改为no #默认tftp服务是关闭的。
修改后的代码:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot -c
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
修改项server_args= -s <path> -c
其中<path>处可以改为你的tftp-server的根目录,参数-s指定chroot,-c指定了可以创建文件。
4.
# vi /etc/selinux/config
SELINUX=permissive 或者 disable
5.启动tftp服务
# service xinetd start
不能启动试试关闭防火墙
# service iptables stop
linux下tftp的使用
$ tftp 192.168.x.x -c put 22.txt 从linux下上传一个文件到 ip 为192.168.x.x 远程主机下
$ tftp 192.168.x.x -c get 33.txt 从远程主机得到一个33.txt的文件
10、linux svn服务器上的文件保存在哪?
svn有两种存复储方式:BDB和FSFS,目前用制的最多的是FSFS方式,这种方式的话,一般是存储在\db\revs文件夹下,里面有一堆以版本号命名的文件,如:0、1、2、3、4......,那个就是了。
svn先把0版本的状态压缩成1个文件,然后每次版本更新时就针对变动的部分做一个压缩文件,每次都是增加一个增量包,最后在服务器上能看到文件名为从0开始到最终版本的一系列文件