RockyLinux에 SVN을 이관설치할 일이 생겼다. 아직 플젝 투입 전이라 외부에서 겸사겸사 테스트해보느라 쓰는 글.

대충 환경은 다음과 같다. Windows PC에 docker로 RockyLinux8.10을 올리고, 여기에 svn을 설치해서 Windows에서 테스트 해보는 식으로 진행해보았다.

기본적인 명령어는 생략하고, SVN 위주로 작성해본다.

 

Windows 11 Pro
Docker - RockyLinux 8.10
JDK - OpenJDK 1.8

 

1. SVN 설치

yum install -y subversion

[root@82559cbe0973 /]# yum install -y subversion
Rocky Linux 8 - AppStream                                             5.8 kB/s | 4.3 kB     00:00
Rocky Linux 8 - AppStream                                             7.5 MB/s |  11 MB     00:01
Rocky Linux 8 - BaseOS                                                7.8 kB/s | 4.3 kB     00:00
Rocky Linux 8 - BaseOS                                                5.7 MB/s | 6.0 MB     00:01
Rocky Linux 8 - Extras                                                4.7 kB/s | 3.1 kB     00:00
Rocky Linux 8 - Extras                                                 22 kB/s |  14 kB     00:00
Dependencies resolved.
======================================================================================================
 Package               Arch        Version                                       Repository      Size
======================================================================================================
Installing:
 subversion            x86_64      1.10.2-5.module+el8.7.0+1065+42200b2e         appstream      1.1 M
Installing dependencies:
 apr                   x86_64      1.6.3-12.el8                                  appstream      128 k
 apr-util              x86_64      1.6.1-9.el8                                   appstream      105 k
 libserf               x86_64      1.3.9-9.module+el8.7.0+1065+42200b2e          appstream       59 k
 subversion-libs       x86_64      1.10.2-5.module+el8.7.0+1065+42200b2e         appstream      1.5 M
 utf8proc              x86_64      2.6.1-3.module+el8.7.0+1065+42200b2e          appstream       72 k
Installing weak dependencies:
 apr-util-bdb          x86_64      1.6.1-9.el8                                   appstream       24 k
 apr-util-openssl      x86_64      1.6.1-9.el8                                   appstream       26 k
Enabling module streams:
 subversion                        1.10

Transaction Summary
======================================================================================================
Install  8 Packages

Total download size: 3.0 M
Installed size: 10 M
Downloading Packages:
(1/8): apr-util-1.6.1-9.el8.x86_64.rpm                                1.4 MB/s | 105 kB     00:00
(2/8): apr-util-openssl-1.6.1-9.el8.x86_64.rpm                        985 kB/s |  26 kB     00:00
(3/8): apr-util-bdb-1.6.1-9.el8.x86_64.rpm                            186 kB/s |  24 kB     00:00
(4/8): libserf-1.3.9-9.module+el8.7.0+1065+42200b2e.x86_64.rpm        1.7 MB/s |  59 kB     00:00
(5/8): apr-1.6.3-12.el8.x86_64.rpm                                    479 kB/s | 128 kB     00:00
(6/8): subversion-libs-1.10.2-5.module+el8.7.0+1065+42200b2e.x86_64.r 8.5 MB/s | 1.5 MB     00:00
(7/8): subversion-1.10.2-5.module+el8.7.0+1065+42200b2e.x86_64.rpm    5.9 MB/s | 1.1 MB     00:00
(8/8): utf8proc-2.6.1-3.module+el8.7.0+1065+42200b2e.x86_64.rpm       1.0 MB/s |  72 kB     00:00
------------------------------------------------------------------------------------------------------
Total                                                                 3.5 MB/s | 3.0 MB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                              1/1
  Installing       : apr-1.6.3-12.el8.x86_64                                                      1/8
  Running scriptlet: apr-1.6.3-12.el8.x86_64                                                      1/8
  Installing       : apr-util-bdb-1.6.1-9.el8.x86_64                                              2/8
  Installing       : apr-util-openssl-1.6.1-9.el8.x86_64                                          3/8
  Installing       : apr-util-1.6.1-9.el8.x86_64                                                  4/8
  Running scriptlet: apr-util-1.6.1-9.el8.x86_64                                                  4/8
  Installing       : libserf-1.3.9-9.module+el8.7.0+1065+42200b2e.x86_64                          5/8
  Running scriptlet: libserf-1.3.9-9.module+el8.7.0+1065+42200b2e.x86_64                          5/8
  Installing       : utf8proc-2.6.1-3.module+el8.7.0+1065+42200b2e.x86_64                         6/8
  Installing       : subversion-libs-1.10.2-5.module+el8.7.0+1065+42200b2e.x86_64                 7/8
  Running scriptlet: subversion-libs-1.10.2-5.module+el8.7.0+1065+42200b2e.x86_64                 7/8
  Installing       : subversion-1.10.2-5.module+el8.7.0+1065+42200b2e.x86_64                      8/8
  Running scriptlet: subversion-1.10.2-5.module+el8.7.0+1065+42200b2e.x86_64                      8/8
  Verifying        : apr-1.6.3-12.el8.x86_64                                                      1/8
  Verifying        : apr-util-1.6.1-9.el8.x86_64                                                  2/8
  Verifying        : apr-util-bdb-1.6.1-9.el8.x86_64                                              3/8
  Verifying        : apr-util-openssl-1.6.1-9.el8.x86_64                                          4/8
  Verifying        : libserf-1.3.9-9.module+el8.7.0+1065+42200b2e.x86_64                          5/8
  Verifying        : subversion-1.10.2-5.module+el8.7.0+1065+42200b2e.x86_64                      6/8
  Verifying        : subversion-libs-1.10.2-5.module+el8.7.0+1065+42200b2e.x86_64                 7/8
  Verifying        : utf8proc-2.6.1-3.module+el8.7.0+1065+42200b2e.x86_64                         8/8

Installed:
  apr-1.6.3-12.el8.x86_64
  apr-util-1.6.1-9.el8.x86_64
  apr-util-bdb-1.6.1-9.el8.x86_64
  apr-util-openssl-1.6.1-9.el8.x86_64
  libserf-1.3.9-9.module+el8.7.0+1065+42200b2e.x86_64
  subversion-1.10.2-5.module+el8.7.0+1065+42200b2e.x86_64
  subversion-libs-1.10.2-5.module+el8.7.0+1065+42200b2e.x86_64
  utf8proc-2.6.1-3.module+el8.7.0+1065+42200b2e.x86_64

Complete!

 

2. SVN 저장소 디렉토리 생성 및 저장소 생성

2-1. mkdir [저장소 디렉토리]

정해진 규칙은 크게 없어보이나, 나는 루트 디렉토리에 만들어주었다.

[root@82559cbe0973 /]# mkdir svn
[root@82559cbe0973 /]# ls
bin  etc   lib    lost+found  mnt  proc  run   srv  sys  usr
dev  home  lib64  media       opt  root  sbin  svn  tmp  var

 

2-2. svnadmin create [저장소 디렉토리]

해당 명령어를 입력하면 별다른 메시지가 출력되지는 않지만, 디렉토리에 들어가보면 SVN 관련 파일이 생성되어있음을 확인할 수 있다.

[root@82559cbe0973 /]# svnadmin create /svn
[root@82559cbe0973 /]# cd svn
[root@82559cbe0973 svn]# ls
README.txt  conf  db  format  hooks  locks

 

3. SVN 설정 변경 

3-1. SVN 구동설정 변경

conf 디렉토리 하위의 svnserve.conf 파일을 변경해준다.

[root@82559cbe0973 svn]# cd conf
[root@82559cbe0973 conf]# ls
authz  hooks-env.tmpl  passwd  svnserve.conf
[root@82559cbe0973 conf]# vi svnserve.conf

 

설정 파일이 매우 길어서 찾아서 변경하는것이 빠르다.

각 파라미터별로 주석이 되어있는 것들을 찾아 주석을 해제한다.

주의할 점은 단순히 주석만 삭제할 것이 아니라, 각 파라미터 앞의 공백문자열(스페이스바)도 제거해주어야 한다. 이걸로 삽질을 몇시간이나 했던지;

(중략)
[general]
anon-access = read
auth-access = write
password-db = passwd
realm = My First Repository
(생략)

 

3-2. SVN 계정 생성

SVN에 접속가능한 계정을 생성한다. 계정별 권한도 부여가 가능한데 이건 좀 더 나중에.

알아보니까 리눅스에서는 VisualSVN이 지원되지 않아서, 직접 계정별 권한을 생성해줘야 한다고 한다 -_-;

conf 디렉토리 하위의 passwd 파일을 변경해준다.

[root@82559cbe0973 conf]# vi passwd

(중략)
[users]
# harry = harryssecret
# sally = sallyssecret
# 아이디 = 비밀번호
test = test12!@ 

나는 test 계정에 test12!@ 비밀번호로 설정해주었다.

 

4. SVN 구동 및 확인하기

svn 구동은 다음과 같은 명령어로 수행한다. 

svnserve -d -r [저장소 디렉토리] --listen-port [사용포트] --log-file [로그디렉토리/파일명]

로그 및 포트를 변경하지 않는다면 해당 부분의 옵션은 사용하지 않아도 무방하다.

[root@82559cbe0973 conf]# svnserve -d -r /svn --listen-port 18081 --log-file /svn/svnserve.log

SVN에 왜 기본 로그를 사용하지 않는지는 조금 의문이긴 한데, 아무튼 해당 로그 디렉토리에 가보면 구동에 성공했다 뭐다 별로 표시도 안난다.

그러니까 직접 Windows PC 에서 SVN에 접속해보자.

 

SVN 툴로는 TortoiseSVN을 많이 사용한다. 난 이미 설치가 되어있다.

Windows 탐색기에서 요렇게 Repo-Browser를 실행한다.
svn 접속주소를 설정한다.

docker에서 띄웠으니 localhost 로 작성하고, docker는 18081로 포트포워딩 된 상태이다. 위에서 SVN은 18081로 커스텀포트를 지정했으니 이렇게 설정하고 접속하면 된다.

만약, svn 포트를 지정하지 않았다면 (버전에 따라 다르지만) 3690 포트를 사용하게 된다. 그렇다면 docker도 포트포워딩을 3690으로 해줬어야 같은 환경에서 접속이 가능할 것이다.

 

접속에 성공한 모습

정상적으로 접속에 성공하면 별다른 메세지 없이 바로 실행된다. 겸사겸사 위에서 띄워둔 로그를 보면 뭔가 길게 잔뜩 있다.

163 2024-08-14T00:50:20.194435Z 172.17.0.1 - svn open 2 cap=(edit-pipeline svndiff1 accepts-svndiff2 absent-entries depth mergeinfo log-revprops) / SVN/1.14.3%20(x64-microsoft-windows) TortoiseSVN-1.14.7.29687
163 2024-08-14T00:50:20.195027Z 172.17.0.1 - svn get-latest-rev
163 2024-08-14T00:50:20.195658Z 172.17.0.1 - svn stat /@0
163 2024-08-14T00:50:20.196204Z 172.17.0.1 - svn get-latest-rev
163 2024-08-14T00:50:20.196747Z 172.17.0.1 - svn get-lock /
164 2024-08-14T00:50:20.201736Z 172.17.0.1 - svn open 2 cap=(edit-pipeline svndiff1 accepts-svndiff2 absent-entries depth mergeinfo log-revprops) / SVN/1.14.3%20(x64-microsoft-windows) TortoiseSVN-1.14.7.29687

(생략)

 

이제 커밋을 해보자. 잘 올라가는지.

 

5. SVN 커밋

제대로 하려면 IDE 세팅하고 직접 소스코드 커밋도 해보고 그랬을텐데, 내가 하려는 것은 SVN 디렉토리 백업이 정상적으로 동작하는지를 보려는 것이기 때문에 이 과정은 생략했다. 그냥 파일 커밋을 하고 이게 디렉토리로 복붙해도 잘 되는지만 보면 되니까.

SVN Repo-Browser에서 마우스 오른클릭 후 Add File를 선택한다. 그 후에 아무거나 파일을 선택해서 커밋하면 된다.

메뉴 띄우고
대충 파일 아무거나 넣고, 커밋메시지 공들여 작성해준다. 이것도 백업되는지 확인해봐야 하니까.

깜빡하고 계정정보 입력하는 부분을 캡쳐하지 못했는데, 위의 3-2. SVN 계정 생성 에서 생성한 계정 정보를 입력하면 된다. 그럼 커밋 완료. 서버로그도 같이 확인한다.

 

SVN Repo-Browser 에 Commit 된 모습

163 2024-08-14T00:50:20.194435Z 172.17.0.1 - svn open 2 cap=(edit-pipeline svndiff1 accepts-svndiff2 absent-entries depth mergeinfo log-revprops) / SVN/1.14.3%20(x64-microsoft-windows) TortoiseSVN-1.14.7.29687
163 2024-08-14T00:50:20.195027Z 172.17.0.1 - svn get-latest-rev
163 2024-08-14T00:50:20.195658Z 172.17.0.1 - svn stat /@0
163 2024-08-14T00:50:20.196204Z 172.17.0.1 - svn get-latest-rev
163 2024-08-14T00:50:20.196747Z 172.17.0.1 - svn get-lock /
164 2024-08-14T00:50:20.201736Z 172.17.0.1 - svn open 2 cap=(edit-pipeline svndiff1 accepts-svndiff2 absent-entries depth mergeinfo log-revprops) / SVN/1.14.3%20(x64-microsoft-windows) TortoiseSVN-1.14.7.29687
164 2024-08-14T00:50:20.202276Z 172.17.0.1 - svn get-latest-rev
164 2024-08-14T00:50:20.202793Z 172.17.0.1 - svn stat /@0
165 2024-08-14T00:50:20.207001Z 172.17.0.1 - svn open 2 cap=(edit-pipeline svndiff1 accepts-svndiff2 absent-entries depth mergeinfo log-revprops) / SVN/1.14.3%20(x64-microsoft-windows) TortoiseSVN-1.14.7.29687
(생략)

 

대충 업로드가 다 되었다. 이로써 기본적인 SVN 설치, 설정, 연동까지 수행했다.

블로그 이미지

김생선

세상의 모든것을 어장관리

,