liu 发布的文章

1、首先安装SVN这个软件

  apt-get install subversion

2、在home目录下创建一个名为svn的文件夹(文件夹的名字随便起)

  mkdir /kk/svn/rda8501_common

3创建数据仓库(可以根据需要创建多个)

  svnadmin create /kk/svn/rda8501_common

4、启动/停止svn网络服务

svnserve -d -r /kk/svn/rda8501_common
其中 -d 参数让 svnserve 运行在后台,-r 参数限定了数据仓库,在网络上可以访问的地址。
/kk/svn/rda8501_common指定svn数据仓库存放的目录位置
sudo killall svnserve
5、设置svn: 方式的访问权限
在每个数据仓库目录下都有一堆目录,进入 conf 并打开 svnserve.conf 这个文件,找到以下几行,
 并把前面的注解符号 ‘#’ 去掉,

  anon-access = none       //注意:anon-access = read   如果匿名可读   “TortoiseSVN”  show log会有问题。
  auth-access = write
  password-db = passwd

  realm = /kk/svn/rda8501   //配置服务器路径

其中 anon-access 和 auth-access 分别为匿名和有权限用户的权限,默认给匿名用户只读的权限。

但如果想拒绝匿名用户的访问,只需把 anon-access的read 改成 none 就能达到目的。
password-db 后的 passwd 则为定义用户名及密码的文件路径。这个文件默认跟 snvserve.conf 在
同一个目录,下面看看怎么配置

[user]
# harry = harryssecret
# sally = sallyssecret

harry 和 sally 这两行分别定义了可以对 库 进行写入的用户的用户名和密码。我们可以在下面加上
自己的用户名和密码,比如

kk = rad_kk

这样就给了用户 kk 往 repo 中写的权限。存盘退出后,svn 服务器就算正式可以运行了!

把所有需要管理的项目都放在/kk/svn这个目录下,像正常那样用 svnadmin create 命令建立数据仓库。

 

配置authz:   访问权限

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
jiangzhaowei = rw

~

checkout-检出的三种方式:

1)

  svn co file:///目录名/库名字                //局域网方式

  svn co file:///kk/svn/rda8501_common         // file 检出实例  橙色标记为 绝对路径

2)  IP方式

  svn://IP地址/仓库名称

  svn co svn://192.168.1.101/rda8501_common    // 仓库名称不能包含路径字串

  svn co svn://220.231.xx.xx/rda8501_common   // 仓库名称不能包含路径字串 

  svn co -r 356 svn://220.231.xx.xx/rda8501      //检出到版本号为 “356” 的版本

   

 checkin:第一次检入

  find . -name .svn | xargs rm -rf              //清除目录下是".svn"文件

  svn import . svn://220.231.xx.xx/rda8501_common -m " "  --no-ignore

   "--no-ignore:可选,如果希望第一次提交时,将目录的所有文件(*.o),都提交上去的话,需要次参数。

6、SVN 多项目仓库管理

# 在home/www目录下建立多个仓库
svnadmin create home/www/svn1
svnadmin create home/www/svn2
svnadmin create home/www/svn3

#建立后每个仓库下都有conf目录,可分别配置账户、权限等

#只需要启动home/www目录
svnserve -d -r home/www

#svn的url分别是
svn://127.0.0.1/svn1
svn://127.0.0.1/svn2
svn://127.0.0.1/svn3

 注意:多仓库管理,访问路径为,svn://IP地址/仓库名称      仓库名称不能包含路径字串

 

最近升级了下linode,发现svn 不能提交和更新,报svn: E000061: Unable to connect to a repository at URL这样的错误,后来查了些资料,原来是svn的端口没有打开,svn的默认端口是3690,在ubuntu里查看端口打开情况,命令是 netstat -anp,把svn服务重新启动下就可以了,命令为svnserve -d -r /home/svn

 


其大概意思是fastestmirror不能使用,fastestmirror是yum的一个加速插件,也就是说一直在判断最快镜像,由于已经指定了yum源,所以不需要些插件,可以用动禁用。

    Centons下

    其大概意思是fastestmirror不能使用,fastestmirror是yum的一个加速插件,也就是说一直在判断最快镜像,由于已经指定了yum源,所以不需要些插件,可以用动禁用。

    解决方法:

    1

    [bash]

    [root@CentOS_7 etc]# vim /etc/yum/pluginconf.d/fastestmirror.conf

    修改里面的enabled=1 修改成 enabled=0;

    1

    [bash]

    [root@CentOS_7 etc]# vim /etc/yum.conf

    修改里面的plugins=1 修改成 plugins=0

    1
    2
    3

    [bash]

    [root@CentOS_7 etc]# yum clean dbcache #删除数据库缓存
    Cleaning repos: base extras updates
    18 sqlite files removed


Linux不能上网提示ping:unknown host 检查步骤

Linux系统跟windows平台有所不同的是,为了更好的做网络服务应用。Linux下多用于网络服务器,而且操作界面是字符界面。对于新手遇到最常见的问题就是,linux不能上网DNS解析不了,提示ping:unknown host ,本例以Centos为例


Linux不能上网ping:unknown host问题怎么解决?

工具/原料

  • centos

Linux系统上网配置

  1. 1



    检查网卡配置

    出现ping:unknown host 的问题最主要是linux设置的DNS解析不了

    遇到这个问题我们先检查一下网卡的设置情况,输入ifconfig -a 可以查看当前网卡配置的IP地址


    Linux不能上网ping:unknown host问题怎么解决?

    Linux不能上网ping:unknown host问题怎么解决?

  2. 检查网卡网关设置

    对于网卡设置的IP地址,首先要确认IP是否是一个正确的网络地址。除此之外有没有设置网关,如果设置了ping一下网关看看能否正常连通

    Linux不能上网ping:unknown host问题怎么解决?

  3. 对于网卡设置网关之外,没有设置网关的网卡。还需要检查系统默认的网关,找到 /etc/sysconfig/network 配置文件如下图 (如果没有需要添加一个默认网关上去)


    Linux不能上网ping:unknown host问题怎么解决?

  4. 测试网络连通性:

    设置好网关之后,可以通过测试ping 一个公网地址,看看能否正常连接,如果能连接了,再继续下一步


    Linux不能上网ping:unknown host问题怎么解决?

    END

检查系统DNS设置



  1. 除了保证网关能正常连通之外。检查服务器DNS设置是否正确

    找到DNS设置的配置文件 /etc/resolv.conf 文件(另外网卡里面如果设置了DNS也会用网卡里面的DNS地址)



    Linux不能上网ping:unknown host问题怎么解决?

  2. 检查系统DNS设置

    服务器需要能上网,除了保证网关能正常连通之外。检查服务器DNS设置是否正确,找到DNS设置的配置文件 /etc/resolv.conf 文件(另外网卡里面如果设置了DNS也会用网卡里面的DNS地址)

    Linux不能上网ping:unknown host问题怎么解决?

  3. 特别提醒注意

    设置的DNS服务器地址,必须先测试一下能否正常连通。除此之外,必须保证是正常的能使用的DNS地址


    Linux不能上网ping:unknown host问题怎么解决?

  4. 测试域名解析ping

    按照上述方法测试都没有问题之后,咗嚛建议把网络服务重启一下,输入下图命令 service network restart

    Linux不能上网ping:unknown host问题怎么解决?

  5. 输入ping www.baidu.com 看看能否正常解析,如下图显示表示DNS设置没有问题了可以正常上网提示了

    Linux不能上网ping:unknown host问题怎么解决?

    END

其他问题和注意事项3



  1. 根据上述截图操作,咗嚛遇到一个问题。

    有的系统的resolv.conf文件配置显示的是DNS1 和DNS2 如果设置不成功

    建议按照下图设置,把dns1改成 nameserver 


    Linux不能上网ping:unknown host问题怎么解决?



  2. 主机表文件

    设置dns服务器用于域名解析和上网,但是对于某些特殊的需求我们需要让某个地址解析到特定的地址,可以通过编辑 /etc/hosts文件来实现。类型和windows下的主机头一样


    Linux不能上网ping:unknown host问题怎么解决?

    END

注意事项

  • Linux下搞定上网和解析问题,按照咗嚛的操作步骤应该没有问题的。1,检查网卡设置,2搞通网关连通性 3设置dns等即可

  • 本经验为咗嚛原创操作截图,百度经验首发。未经许可,谢绝转载!如果有疑问请给小编留言,谢谢多多支持!


最近在折腾SVN的安装和配置。尽管Google Code已经有完美的4GB空间的SVN服务,Git也有完善的Git工具,但有时候需要搭建一个私人的版本库。
  SVN其实就是Subversion,分为服务器端和客户端。本次折腾是记录在服务器端的安装过程。

 

系统环境说明如下:

操作系统:        Centos6.4 x86
SVN:             subversion-1.8.0
Apache:          httpd-2.4.6

如开启防火墙,则需添加如下列的规则以放行svn的3690端口

iptables -A INPUT -p tcp --dport 3690 -j ACCEPT
iptables save

检查是否安装了低版本的SVN

rpm -qa | grep subversion

一般返回的默认版本:

subversion-1.6.11-9.el6_4.i686

卸载旧版本SVN

yum remove subversion
rpm -e subversion --nodeps

下载、编译、安装的步骤

1、编译安装httpd-2.4.6

下载并解压依赖包apr-1.4.8、apr-util-1.5.2

wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.4.8.tar.gz
wget http://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.5.2.tar.gz
tar -zxf apr-1.4.8.tar.gz
tar -zxf apr-util-1.5.2.tar.gz

下载并解压httpd-2.4.6

wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.6.tar.gz
tar -zxf httpd-2.4.6.tar.gz

移动apr-1.4.8、apr-util-1.5.2到httpd-2.4.6的srclib目录下

mv apr-1.4.8 httpd-2.4.6/srclib/apr
mv apr-util-1.5.2 httpd-2.4.6/srclib/apr-util

编译httpd-2.4.6

cd httpd-2.4.6
./configure --prefix=/usr/local/apache --enable-so --enable-dav --enable-deflate=shared --enable-ssl=shared --enable-expires=shared  --enable-headers=shared --enable-rewrite=shared --enable-static-support  --with-included-apr --enable-modules=all --enable-mods-shared=all --with-mpm=prefork
make && make install

2、编译安装subversion-1.8.0

编译安装sqlite3.7.17

wget http://www.sqlite.org/2013/sqlite-autoconf-3071700.tar.gz
tar -zxf sqlite-autoconf-3071700.tar.gz
cd sqlite-autoconf-3071700
./configure
make && make install

下载svn源码包并安装

wget http://mirrors.tuna.tsinghua.edu.cn/apache/subversion/subversion-1.8.0.tar.gz
tar -zxf subversion-1.8.0.tar.gz
cd subversion-1.8.0
./configure --with-apr=/usr/local/apache --with-apr-util=/usr/local/apache --with-sqlite=/usr/local
make && make install

检查安装是否成功

svnserve --version

返回值:

svnserve, version 1.8.0 (r1490375)
   compiled Jul 23 2013, 21:32:09 on i686-pc-linux-gnu
Copyright (C) 2013 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/

The following repository back-end (FS) modules are available:
* fs_fs : Module for working with a plain file (FSFS) repository.
Cyrus SASL authentication is available.

代码库创建

mkdir -p /opt/svn/repositories
svnadmin create /opt/svn/repositories

执行上面的命令后,自动建立repositories库,查看/opt/svn/repositories 文件夹发现包含了conf,db,format,hooks,locks, README.txt等文件,说明一个SVN库建立完成。

配置代码库
进入上面生成的文件夹conf下,进行配置 

cd /opt/svn/repositories/conf

用户密码passwd配置

vi passwd

passwd文件的内容如下:

### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.

[users]
# harry = harryssecret
# sally = sallyssecret
test = 123456789

权限控制authz配置

vi authz

目的是设置哪些用户可以访问哪些目录,authz文件的内容如下:

### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to:
###  - a single user,
###  - a group of users defined in a special [groups] section,
###  - an alias defined in a special [aliases] section,
###  - all authenticated users, using the '$authenticated' token,
###  - only anonymous users, using the '$anonymous' token,
###  - anyone, using the '*' wildcard.
###
### A match can be inverted by prefixing the rule with '~'. Rules can
### grant read ('r') access, read-write ('rw') access, or no access
### ('').

[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe

# [/foo/bar]
# harry = rw
# &joe = r
# * =

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r

[/]
test = rw

设置[/]代表根目录下所有的资源 

服务svnserve.conf配置

vi svnserve.conf

svnserve.conf文件的内容如下:

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

启动svn服务

svnserve -d -r /opt/svn/repositories

查看SVN进程

ps -ef|grep svn|grep -v grep

返回

 

root     20850     1  0 Jul24 ?        00:00:00 svnserve -d -r /opt/svn/repositories

 

查看SVN监听的端口

netstat -ln |grep 3690

停止启动SVN

killall svnserve    #停止 
svnserve -d -r /opt/svn/repositories  #启动

目前最流行的svn客户端非TortoiseSVN莫属


前言

有时候难免会考虑的很全面,比如一开始是在这一台SVN上对代码进行版本控制,突然有一天,想换服务器了,这时候又不想重新上传,因为这样以前的版本控制记录都会不见,这是一个不好的办法


今天教大家将一台的svn迁移到另一台服务器上,并且保留原来的版本控制记录。


我将我在迁移的过程中,遇到的问题总结了一些,避免大家踩坑哈


本篇的埋坑是基于 https://blog.csdn.net/liangcl_2018/article/details/79745688 这篇文章写的,因为该大神已经写的


很详细了,就是有一些可能没有讲全,我就再将某些细节讲得细化一点,避免大家踩坑哈。


第一步:新服务器上svn的安装

1 、从远程下载SVN安装文件


          1 )  下载   subversion-1.6.11.tar.bz2   subversion-deps-1.6.11.tar.bz2  这两个文件


                  wget  http://subversion.tigris.org/downloads/subversion-1.6.11.tar.bz2


                  wget  http://subversion.tigris.org/downloads/subversion-deps-1.6.11.tar.bz2


           2) 解压


                tar  jxvf  subversion-1.6.11.tar.bz2


                tar  jxvf  subversion-deps-1.6.11.tar.bz2

 


第一个坑,提示 wget command not found



那是因为没有安装wget,大家只要安装一下就就可以啦


输入命令:yum -y install wget 如下图所示,wget及其依赖将会被安装




第二个坑,提示资源 not found

       小编用wget  http://subversion.tigris.org/downloads/subversion-1.6.11.tar.bz2 这个试过了,可能是http://subversion.tigris.org/上的svn不提供下载了,所以会提示资源找不到,大家最好用yum安装svn的方式


输入命令:yum -y install subversion  (忘记截图了,所以这里就暂时不放了,反正看到很长的一串就差不多了)


查看是否真正的安装正确,可以通过 svn --version 的命令来看,如图




 

2、安装好SVN后,就顺手在新服务器上建一个svn仓库


最好和原来的仓库名字一样,我不知道不一样的话,到时候会不会不匹配这样,这个希望大家有时间测试一下,因为我这是公司的机器,就暂时不测试啦


命令:svnadmin  create  /opt/svn/lxhwsvn


表示在 opt/svn  的文件夹下面,建一个叫做lxhwsvn 的仓库。


第二步:旧服务器上的svn迁移到新服务器上

我用的是第一种方式,大家文件很大的时候,几百G的那种,最好用第二种方式,不然用第一种的话,速度会很慢的


采用dump的方式进行迁移


1、dump出旧服务器上的svn库


通过命令   svnadmin dump lxhwsvn/ > 1115.dump  


lxhwsvn/    表示旧服务器上SVN代码库目录 ,因为我的2414.dump已经创建了,这里我就以1115代替,反正名字大家可以自定义随便取,


大家在dump的时候,一定要cd 切换到 旧服务器上svn的目录,不然会报找不到 lxhwsvn这个库


如图所示:




2、使用 scp(secure copy)命令,将dump出来的文件从旧服务器传到 新服务器上。


然后我用scp从就旧服务器发送文件到新服务器的时候,


使用命令  scp -v  2414.dump  root@xx.xxx.xx.xx:/opt/svn  的时候 


(这段在旧服务器上执行,xx.xxx.xx.xxx表示新服务器上的ip地址,要将旧服务器上的2414.dump发送到新服务器上的 opt/svn 目录下)


输入密码后,死活的发送不过去,不知道是什么原因,可能是路径的问题


然后我就换了一种方式,从新服务器上去接收旧服务器上的文件,就可以了


命令:scp -v  root@jj.jjj.jj.jjj:/opt/svn/2414.dump  /opt/svn,然后输入旧服务器的密码,等待发送完就可以下一步啦


(这段在新服务器上执行,jj.jjj.jj.jjj表示旧服务器上的ip地址,将旧服务器上的2414.dump发送到新服务器的 opt/svn目录)




这里的 scp -r 或者 -v 是scp命令的参数,具体可以戳这里:linux scp 命令语法介绍


我在这里放一张截图,方便大家看




第三个坑,由于传输的文件太大了,传输到一半,居然断开连接了

我的心咯噔了一下,等了这么久,居然给我这么个消息




所以大家最好就不要用scp传输文件了,不仅速度慢,而且会timeout


我们时间是宝贵的,所以我这里就采用ftp传输了,这样会相对而言快一点,也是最好的方法






然后就等待吧,从旧服务器上下载下来之后,再上传到新的服务器,和你创建的那个svn仓库  同级目录下,


如图所示




 


3、将 dump 文件 load 进 新服务的仓库中


cd 切换到 你上传到新服务器的2414.dump文件和仓库的那个文件夹(最好上传到和仓库在同一个目录下,这样路径方便,不用写很长的路径了,)


svnadmin load lxhwsvn < 2414.dump


将 2414.dump   < ( 写入 ) 到 新服务器上的lxhwsvn的这个仓库中


如果见到如下图这样的形式,就是在load中了,就等待吧




 


4、启动新机器的SVN服务


 svnserve -d -r lxhwsvn


或者


svnserve -d -r /opt/svn


这两者上面一个是指定启动某个仓库,


下面这个是启动多个仓库,具体区别可以戳链接:SVN启动教程


 


 5、查看  SVN服务是否 启动


   ps -ef |  grep svn  




这样就完成啦,大家可以连接svn试试,看看能不能进你刚建的svn仓库


如果还是不能进,可能是因为svn监听的端口没有开启,




svn的默认端口是3690,


你可以通过下面这个命令,看一下是否开启啦,如果没有开启,联系管理员进服务器后台开启3690端口,开启了3690端口后,记得再次重启一下SVN,步骤是先kill 掉SVN,然后再启动,这样就可以连接SVN啦


查看某一端口的连接数量,比如3690端口


netstat -pnt |grep :3690 |wc


 


第三步:更换自己IDE工具上的SVN路径

       将自己的IDE工具上的SVN路径改成新的SVN服务器上的路径,这样才能继续以前的版本控制,继续进行代码迭代开发,因为这个教程我之前已经写过了 ,包括Myeclipse和Idea 工具的SVN更换路径教程,具体教程请戳链接:https://blog.csdn.net/qq_27471405/article/details/79028383


 


其他可能会用到的命令


查看svn安装在哪个目录:


rpm -ql subversion-1.7.14-14.el7.x86_64




 


大家觉得这篇文章能够帮助你解决问题的话,还希望点个赞


因为顺手的一个赞是对作者最大的鼓励


参考文章:


https://blog.csdn.net/liangcl_2018/article/details/79745688


感谢原作者的分享,让技术人能够更快的解决问题

————————————————

版权声明:本文为CSDN博主「小小鱼儿小小林」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_27471405/article/details/84068242