top of page
검색

Raspberry Pi 보드를 SVN server로 만들기

  • 작성자 사진: Tae Yeong Son
    Tae Yeong Son
  • 2017년 5월 22일
  • 3분 분량

[참고자료] https://www.jeremymorgan.com/tutorials/raspberry-pi/raspberry-pi-how-to-svn-server/

Raspberry Pi 보드에 SVN server를 동작시켜서 원격의 스토리지 서버로 쓸 수 있도록 해보자.

원래 SVN의 용도는 서브버전(Subversiosn)이라고 하는 소스 코드 버전관리 프로그램을 의미한다.

네트워크로 연결되어 있는 여러 컴퓨터에 같은 소스 코드를 사용하면서 공유할 수 있도록 되는 것인데

혼자서 사용하는 경우는 그냥 원격 스토리지 서버가 되는 것이니 뭐 다르게 생각 안해도 된다.

그럼 시작해 보도록 하자.

 

우선 svn 설치에 사용된 Raspbian 버전은 2016-05-27-raspbian-jessie 이미지 파일을 사용한 (raspberrypi 4.4.11+) 버전이다.

설치를 시작하기 전에 vim을 설치하였고 sudo raspi-config을 사용하여 update를 진행을 우선적으로 수행하였다.

sudo apt-get update를 수행해도 된다. 어짜피 2개가 같은 것이기 때문에 편한대로 진행을 하자.

여기서는 몇가지 변경해서 되는 작업이 있기 때문에 raspi-config를 사용하자

Update를 위해서는 8번을 선택해서 진행을 하면 되고 여기서 추가적으로 진행해야 할 것은 7번 메뉴에 있다.

A1 Expand Filesystem 메뉴는 라즈베리 파이 보드에서 사용 중인 SD 카드에 용량을 늘려주는 설정이다.

여기서 svn을 사용해야 하기 때문에 많은 용량을 사용할 수 밖에 없어 용량을 늘려줘야 한다.

메뉴를 선택하게 되면 fdisk 프로그램이 자동으로 실행이 되면서 설정이 되기 때문에 걱정없이 기다리기만 하면 된다.

df -h 명령을 수행하면 현재 사용 중인 라즈베리 파이 보드에 파일 시스템 용량과 마운트 위치를 확인할 수 있다.

여기서는 총 8G의 SD 카드를 사용하고 있으며 / 가 사용 중인 용량은 7.2G 인 것을 확인할 수 있다.

이제 늘어난 용량을 가지고 svn 서버로 만들어보자.

제일 처음 수행하는 동작은 svn 프로그램을 설치하는 것이다.

$ sudo apt-get install subversion

svn 프로그램을 설치하고 난 후 우리는 디렉터리를 생성한다.

svn 서비스를 제공하기 위한 정보들이 저장되는 저장소 디렉터리를 생성하고

svn을 통해 사용할 디렉터리 경로를 생성한다.

우선은 제일 중요한 저장소 디렉터리를 생성한다.

$ mkdir /home/pi/repos

svn 서비스에 관련된 저장소 디렉터리를 생성하고 나면 svn 명령으로 프로젝트를 생성한다.

$ sudo svnadmin create /home/pi/repos/cold

프로젝트를 생성하면 디렉터리에 몇가지 파일과 디렉터리가 생성된 것을 볼 수 있다.

이제 이 위치에서 디렉터리를 하나 더 생성한다.

지금 생성하는 디렉터리가 svn에서 사용할 경로가 되기 때문에 너무 복잡하지 않도록 한다.

$ sudo mkdir cold

생성한 디렉터리 안에 간단한 파일을 하나 만들어 놓자. 안하니까 확인도 어렵고 사용도 어렵다.

$ sudo touch readme

이제 생성한 디렉터리를 연결하여 svn 서버가 사용자에게 제공할 수 있도록 하게 설정을 해보자.

$ sudo svn import /home/pi/repos/cold/cold/ file://localhost/home/pi/repos/cold/

명령 처음에 지정하는 경로는 svn에서 사용하게 될 제일 마지막에 생성한 디렉터리 경로이다.

두 번째로 지정하는 경로는 저장소 내에 svnadmin create 로 생성한 디렉터리 경로이다.

명령을 수행하면 nano 편집기가 뜨면서 코멘트를 남길 수 있게 되는데 nano를 사용할지 모른다면

컨트롤+x키를 눌러서 종료하고 c를 선택해 계속 진행하면 된다.

Log message unchanged or not specified (a)bort, (c)ontinue, (e)dit: c Adding cold/readme

Committed revision 1.

명령이 제대로 수행이 되었다면 다음과 같은 메시지를 확인할 수 있다.

이제 다음으로 svn을 네트워크를 통해 제공하기 위한 apache 서버를 설치한다.

$ sudo apt-get install apache2 libapache2-svn

apache 서버를 설치하고 svn 서버의 설정을 수정한다.

$ sudo vi /etc/apache2/mods-available/dav_svn.conf

다음 설정파일을 열어서 해당 내용을 모두 새로 입력해도 되고

설정파일의 내용을 확인하여 코멘트 처리를 삭제해도 된다.

<Location /svn>

DAV svn

SVNParentPath /home/pi/repos

AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd # Authorization: Authenticated users only Require valid-user </Location>

설정파일 안에 해당 내용과 같이 입력하고 apache 서버를 재가동한다.

$ sudo /etc/init.d/apache2 restart

apache 서버가 재가동 되면 저장소 디렉터리의 소유자를 바꾸어서 apache 서버가 사용할 수 있도록 한다.

$ sudo chown -R www-data:www-data /home/pi/repos

이렇게 소유자를 바꾸면 ls -al 명령을 했을 때 해당 디렉터리의 소유가 바뀌어 있는 것을 확인할 수 있다.

drwxr-xr-x 4 www-data www-data 4096 May 22 10:33 repos

이제 svn을 사용할 수 있는 사용자 계정을 생성한다.

앞선 설정파일에서 허용된 사용자만 사용할 수 있도록 설정하였기 때문에 사용자를 생성해야 한다.

$ sudo htpasswd -c /etc/apache2/dav_svn.passwd [사용자명]

이렇게 사용자를 생성하면 비밀번호 설정을 위한 입력창이 생긴다. 까먹지 않도록 주의하면서 생성하자.

이제 모든 것이 완료되었다면 동작이 되는지 확인해 보도록 하자.

브라우저 주소창에 다음과 같이 입력한다.

http://[라즈베리 파이 보드 ip 주소]/svn/cold/

이렇게 되면 사용할 수 있게 된다.

 

윈도우에서 사용하기 위한 방법은 추후에 내용을 추가하겠다.

 
 
 

최근 게시물

전체 보기
리눅스 사용자 계정삭제

매번 수업서버를 재설치 했었는데 너무 비효율적인거 같아서 사용자 계정을 삭제하고 새로 만들기로 했다. 그냥 삭제하면 계정만 삭제되고 사용자의 파일들이 남기 때문에 사용자를 지우면서 해당 사용자의 파일도 같이 지우도록 옵션을 설정한다. ...

 
 
 
bottom of page