기본 콘텐츠로 건너뛰기

centos7 svn(subversion) 설치 및 설정

 

 안녕 하세요.

오랫만에 centos 7 에 svn 을 설치 하려 합니다.

프로젝트를 진행을 위해 개발 서버를 설정 중에 Oracle 11g, 12c를 설치 하고 

형상관리를 위해 git과 svn 중 고민을 하다..

그냥 svn을 설치 하기로 했습니다.


그럼 svn 설치를 시작 하도록 하죠!!

svn 또는 svn --verstion 을 입력 합니다.

 - svn 이 설치가 안되 있을 경우

설치가 안되어 있다면 우선 설치를 해야 합니다.

yum install subversion 

를 입력하여 설치를 합니다.  중간 중간 질문이 나오면 Y 를 입력 하여 주세요!

( 중략 )

설치가 완료 되었습니다.

다시 하면 svn --version 을 입력 하면

svn 버전이 1.7.14 로 설치가 되었네요. 


다음은 저장소를 만들어 볼께요

저는 최상위 경로에 svn 이라는 폴더를 만들고, 해당 폴더로 이동 합니다.

]# mkdir /svn

]# cd svn

svnadmin을 이용 하여 저장소를  생성 합니다

svnadmin create --fs-type fsfs 저장소 명

]# svnadmin create --fs-type fsfs project1


저장소 생성이 완료 되었습니다.
다음으로는 svn 서비스를 위하여 /etc/sysconfig/svnserve 파일을 만들어 데몬을 실행하겠습니다.
방법은 2가지 정도로 생각 할 수 있는데요
우선 첫번째 방법!

echo 'OPTIONS="--threads --root 저장소의 최상위 디렉토리"' > /etc/sysconfig/svnserve

]# echo 'OPTIONS="--threads --root /svn"' > /etc/sysconfig/svnserve
를 입력합니다


두번째 방법 입니다.
vi 편집기로 파일을 생성하고

OPTIONS="--threads --root /svn"

입력후 저장 합니다.


데몬 파일이 완성 되었습니다.

svn 의 시작,중지,상태를 service svnserve start/status/stop 명령어로 실행 할수 있다.



다음은 svnserve.conf 파일을 수정 하겠습니다.
svnserve.conf 파일은 간단히 말해서 svn 인증 설정 파일 이라 생각 하시면 됩니다.

우선 svnserve.conf  파일의 경로는 /svn/저장소 명/conf/svnserve.conf  에 위치 합니다.


원본 파일을 보관하고 새로 생성 합니다.

그리고 아래 해당 설정을 입력 하고 저장하고 닫습니다.

[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = project1 Repository


----------------------------------------------------------------------------------------------------
#권한
#- none : 없음, read : 읽기, write : 쓰기 

[general]
#익명 접근의 권한은 none 없음
anon-access = none 
#인증 접근의 권한은 write 읽기/쓰기
auth-access = write
#사용자 패스워드 저장 파일 위치
password-db = passwd
#인증 접근의 권한 설정 파일 위치
authz-db = authz
#프로젝트 명칭
realm = project1 Repository
----------------------------------------------------------------------------------------------------



다음은 svn의 유저와  패스 워드를 설정 하겠습니다.
위에서 입력한 것과 같이 유저/패스워드 정보는 passwd 파일 입니다.

원본 파일 보관후 새로 파일을 생성 하겠습니다.

]# mv passwd passwd.old
]# vi passwd


저는 유저를 총 3명 추가 하도록 하겠습니다. 추가 방법은 아래와 같습니다. 
유저=비밀번호 식으로 입력 하시면 됩니다.

[users]
admin=admin
user1=user1
user2=user2


이제 사용자 추가 완료되었습니다. 그럼 세부 권한을 줘야 합니다. 어떤 어떤 권한을 부여 하느냐에 따라 A 유저는 읽기권한만, B 유저는 쓰기 및 읽기 권한을 부여 할수가 있습니다.
저는 읽기, 쓰기 권한을 모든 유저에게 부여 하도록 하겠습니다.


원본파일을 보관후 새로운 파일을 생성 하겠습니다

]# mv authz authz.old
]# vi authz


[/]
admin=rw
user1=rw
user2=rw



다음으로는 방화벽 설정을 하겠습니다.
SVN 은 3690 포트를 사용 합니다.

]# vi /etc/firewalld/zones/public.xml

<port protocol="tcp" port="3690" />

을 추가 하고  방화벽을 중지 시키고 재 시작을 합시다.

]# systemctl stop firewalld
]# systemctl start firewalld


다른 방법으론 
firewall-cmd --permanent --add-port=3690/tcp
firewall-cmd --reload


방화벽 설정이 끝났습니다!

이제 얼마 남지 안았어요! 조금만더 힘을 내도록 합시다.

그럼 SVN 서비스를 시작 합니다.


]# service svnserve start
]# ps –ef | grep svnserve
]# netstat –anp | grep svnserve
]# service svnserve status

##### service svnserve start/stop/status/restart

정상 적으로 실행 되었습니다. 
매번 컴퓨터를 끄고 킬때마다 실행을 해줘야 한다면 귀찮겠죠? 
서비스를 자동시작 등록 합니다!

]# chkconfig --list svnserve
]# chkconfig svnserve on
]# chkconfig --list svnserve


저는 이런 문구가 떳는데요. 그냥 이것 저것 서비스가 많다 보니 확인 하려면 
 
]# systemctl list-unit-files
 
를 입력하여 직접 확인 하라는 말 같군요! 확인 합시다!

 ( 중 략 )


svnserve.service                                              enabled 라고 되어 있네요!


다음은 svn 에 접속 되는지 확인 해보도록 할께요

   svn co svn:// ip 또는 도메인주소/저장소 

]# svn co svn://127.0.0.1/project1
or 
]# svn checkout svn://127.0.0.1/project1

을 입력 합니다.


.... 저는 오류가 발생했습니다. 허 가  거 부  에러 입니다.
에러를 해결 하도록 하겠습니다.
이 에러는 selinux 설정이 활성화 되어 있을때 발생 하는 오류 입니다.
간단히  selinux 를 disabled 로 만들어 버리면 해결 되겠지만 ..
그랬을 경우 보안이.. 안된다는점을 인지 합시다.

]# chcon -R -t svnserve_content_t /svn/project1

를 입력 합니다.


yum install vim

 vi .bash_profile


맨 아래에

SVN_EDITOR=/usr/bin/vim
export SVN_EDITOR


파일 적용 source ~/.bash_profile


생성 branchestagestrunk/
svn mkdir svn://127.0.0.1/project1/branches
svn mkdir svn://127.0.0.1/project1/tages
svn mkdir svn://127.0.0.1/project1/trunk

svn list svn://127.0.0.1/project1













































댓글

이 블로그의 인기 게시물

우분투[ubuntu] 런처(윈도우 메뉴)에 아이콘 추가 하기.

안녕하세요.  KANO 입니다. 오늘은 간단하게 우분투 바로가기 아이콘 생성을 해 볼 건데요. 우분투 혹은 리눅스 사용자들은 프로그램을 설치 하지 않고, 프로그램을 실행해야 하는 프로그램들이 있습니다 . 예) 이클립스. 등등.. 이것을 조금 편하게 할 수 없을까? 생각하다가 저도 만들어 보는 시간을 갖으면서 글을 적어 봅니다. 제가 등록할 프로그램은 Pycharm 2017.03 버전인데요. 우분투에서 우분투 소프트웨어 관리자에서 추가가 가능 하긴 합니다..( _ _ )   현재 런쳐 메뉴의 프로그램에는 Pycharm이 보이지 않는데요. 아이콘 등록을 위하여 터미널을 열어서 명령어로 실행할 수 있게 만들어 봅시다  sudo ln -s  실행 파일 경로,  symlink 경로 입니다.  실행파일 경로만 바꿔 주시면  될 것 같네요.. ㅎㅎ 그럼 한번 실행을 해보도록 하죠~ 정상적으로 실행이 되네요.  그럼 이제 아이콘을 생성해보도록 합니다. 아이콘 생성 방법은 2가지 인데요 우선 첫번째 방법을 이용해 보도록 하죠. .desktop 파일을 생성 하는 방법입니다. 런처 아이콘 경로에  만들려는 이름.desktop 을 생성합니다. 저는 pycharm 이라서 Pycharm.desktop 이라고 vi 편집기를 이용하여 파일을 생성 할께요. vi 편집기가 열리면 다음과 같이 적어 주세요.  [Desktop Entry] Version =x.y    #프로그램 버전 (안 적어도 무방합니다.) Name=프로그램 이름 Comment=프로그램 설명 Exec=프로그램 실행 명령어 #저는 pycharm.sh 를 입력했습니다. Icon=아이콘 경로 Terminal=false #터미널 실행 여부 입니다. (True : 실행, F...

[linux] ubuntu 16.04 메뉴, 런처 없어짐.. (hide menu, luncha...)

우분투 사용을 하다가 보면 가끔 필요 없는 프로그램 을 삭제 해야 할 때 가 있다. ex) sudo apt-get remove --purge XXXXXXX 삭제를 하고 제부팅을 하면.. 하하하하하하~~!!! 메뉴 어디갔나요?;;;;ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 멘탈이 나갈거같네요..\ 우선 아는데로 쳐보기로 합니다.. sudo apt-get install ubuntu-desktop sudo apt-get install unity-control-center sudo apt-get install unity-control-center-signon sudo apt-get install gnome-control-center-unity sudo reboot 여기서 해결이 되나요??';  저는 안되서 구글링을... Enter the following commands:- Ctrl+Alt+F1 login there with username and password WARNING! THE FOLLOWING COMMAND WILL TERMINATE YOUR ACTIVE SESSION! try: sudo service lightdm restart If restarting lightdm doesn't fix the problem, install aptitude and then install unity : sudo apt-get install aptitude sudo apt-get update && sudo aptitude -f install && sudo aptitude dist-upgrade sudo aptitude install unity Read the outputs carefully. If you do have broken dependencies, aptitude will give you the "solution" of NOT installing u...

[심심] Oracle 초성검색 함수 만들기

 안녕하세요!  오랫만에 돌아온 카노 입니다. 오늘은 너무 심심해서 오라클(DB) 를 갖고 초성 찾기 함수를 만들어 볼 생각 입니다. 예) fn_korinitialkeyword('홍길동') return : ㅎㄱㄷ select * from 테이블 where fn_korinitialkeyword(직원명컬럼) like '%ㅎㄱㄷ%' 이런식으로 검색이 되도록 만들 꺼에요~ 함수 코드는  function fn_korinitialkeyword( str in varchar2) return varchar2 is    returnStr varchar2(100);     cnt number := 0;     tmpStr varchar2(10); begin        if str is null then       return '';       end if;              cnt := length(str);        for i in 1 .. cnt       loop         tmpStr := substr(str,i,1);                        returnStr := returnStr ||       case when tmpStr < 'ㄱ' then substr(tmpStr, 1, 1)             when ascii('ㄱ') <= ascii(tmpStr) and ascii(tmpStr) <=...