Free-BSD 기반으로 구성된 FreeNAS에서 원본 패키지를 가져와서 컴파일하여 make install 이 조금 곤란한다. ( 관련된 프로그램들이 전혀 없기 때문. 컴파일러라든가, make 바이너리라든가..).그래서 반쯤 포기했는데, 우연히 FreeNAS Forum에서 해당 Thread를 찾아 이를 소개한다.
요는 Free-BSD에서 제공하는 pkg_add 명령어를 사용하는 것이다.
(기타 기능 확장도 이 pkg_add 라는 것을 사용하여 추가하여 하는 것들이 대부분이다. )



FreeNAS 에서 SVN 서버 실행하기 ( HOW-TO )

무엇보다도 이 모든 내용은 http://www.h-i-r.net/2008/03/sysadmin-sunday-subversion.html 의 도움이 컸다. 이 웹페이지에서 SVN 서버를 동작하는 방법, 구하는 방법등을 모두 설명하고 있다.

테스트를 목적으로 필자는 Virtual Machin(VMWare)에 FreeNAS를 설치했다. 현재 VM의 호스트는 Windows Vista 이다.

기본적으로 두대의 장치를 가지고 있다고 생각하면 된다.

FreeNAS : 192.168.1.1 : 이것은 FreeNAS(0.69.2)가 설치된 가상 머신으로 Full Install 되어 있다.
Host : 192.168.1.2 : 이것은 현재 Vista가 동작 중인 본인의 PC 이다.

귀찮은 작업을 줄이려면, 먼저 SSH를 활성화하도록 한다. 그래야 명령어들을 직접 복사하면서 작업할 수 있다. putty 같은 것으로 연결한 뒤, 사용자 ID와 암호를 넣도록 하자.

Shell에 들어갔으면 다음 명령어를 입력한다.
pkg_add -r subversion
잠깐 동안 각종 관련 Package 들을 자동으로 다운로드 받으면서 설치할 것이다.

설치가 완료되었으면 Subversion의 저장소로 사용될 경로를 만들어주도록 한다.
여기서는 /var/svn/repositories 을 사용하도록 하겠다.

mkdir -p /var/svn/repositories

이제 SVN 서버를 실행할 것이다. 이 실행 할 때 사용되는 파라미터들을 먼저 보도록 하자.

  • -d : 데몬 모드
  • --listen-port : 외부에서 연결을 할 때 사용될 포트 번호.  사용자 별로 다양한 포트번호들을 사용하는데, 여기서 명확하게 잡아주는 게 좋다.
  • --listen-host : 호스트 이름. 이 부분이 없으면 제대로 동작하지 않는 것 같다. 여기서는 지금 필자의 환경에 맞추어서 192.168.1.1 로 설정한다.
  • -r : 저장소에 대한 경로를 설정한다.

자 이제 위의 파라미터 값들을 넣고 실행해 보도록 하겠다.

/usr/local/bin/svnserve -d --listen-port 3690 --listen-host 192.168.1.1 -r /var/svn/repositories

SNV 서버를 실행한 뒤, 실제로 사용할 저장소 부분을 생성하도록 한다.

/usr/local/bin/svnadmin create /var/svn/repositories/hir-test/

이 명령을 사용하면 몇가지의 설정 파일들과 저장소를 생성하게 된다. FreeNAS를 기본적으로 설치하였다면, Shell에서 이 파일을 설정하기 힘들다. 대신 Web GUI에 접속해서, 메뉴의 advanced -> file editor를 이용해 다음 파일을 띄우도록 하자.

/var/svn/repositories/hir-test/conf/svnserve.conf

주석 처리된 다음 항목들의 풀어 주도록 하자.

anon-access = read
auth-access = write
password-db = passwd

다음 파일을 읽어오도록 하자.

/var/svn/repositories/hir-test/conf/passwd

이제 다음과 같이 사용자와 암호를 넣어주도록 하자.

test = test
자 이제 모든 준비가 완료되었다. 서버는 이미 모든 동작이 준비되었다.
이제 호스트 컴퓨터(내 Vista 컴퓨터)에서 SVN 클라이언트를 사용하여 접속하여 테스트해보도록 한다. ( http://www.sliksvn.com/ 에서 명령어 기반의 클라이언트를 받을 수 있다. ). 자 이제 작업을 할 폴더를 먼저 선정하여 그 위치로 이동하도록 하자.
(예를 들자면, cd c:\temp\test )

자 이제 저장소와 작업할 자신의 폴더와 연결하는 작업을 하도록 한다.

svn checkout svn://192.168.1.1:3690/hir-test/

이러면 revision 0로 해서 check-out이 걸릴 것이다.
자 그러면 hir-test 라는 폴더가 생성되는데 그 디렉토리로 들어가도록 하자.

cd hir-test

이제 이 디렉토리 안에 파일을 하나(예를  들자면, test.txt 같은 것)를 만들어 주도록 하며, 다음과 같은 명령어를 넣어보록 하자.

svn stat

그러면 아래와 같은 내용이 보일 것이다.

state : ? test.txt

이 test.txt 라는 파일은 아직 서버의 저장소에 저장되지 않은 파일이라는 의미로 이 파일을 저장소에 넣으려면 다음과 같은 명령어를 넣어주어야 한다.

svn add test.txt

자 svn stat 명령어를 다시 실행해서, 이제 내용이 정상적으로 등록되었는지 보도록 한다. 이제 이 모든 작업을 완료하려면, 저장소로 변경된 모든 내용을 commit 하도록 요청하는 작업을 해야 한다. 이 commit은 다음과 같이 하면 된다.

svn commit --message : "my firest test"

이제 사용자 아이디와 암호를 넣어주시면 state : commited revision 1이 라는 것을 볼 수 있다.

다른 위치에서 이와 같은 형태로 작업을 해보면, 이제 서버에서 변경된 내용을 그대로 받아서 확인해 볼 수 있다.











728x90

+ Recent posts