How to install Subversion on a shared host
리눅스에 계정으로 접속하여 아래와 같이 디렉토리를 만든다.
cd
mkdir _src
cd _src
다음으로 리눅스의 wget 명령어로 subverion 소스를 당겨 받는다.
당혹스럽겠지만 wget은 다음과 같이 치면 된다.
버전은 Subversion 소스 리스트로 부터 선택하면 된다.
Subversion을 build하기 위해서 아울러 모든 독립소스를 포함한 "subversion-deps"도 다운로드 한다.
wget http://subversion.tigris.org/downloads/subversion-1.4.6.tar.gz
wget http://subversion.tigris.org/downloads/subversion-deps-1.4.6.tar.gz
받은 다음 tar를 디렉토리에 푼다.
tar -xzvf subversion-1.4.6.tar.gz
tar -xzvf subversion-deps-1.4.6.tar.gz
cd subversion-1.4.6
자~ 다음으로 32비트 운영체제인 경우
다음과 같은 두줄로 인스톨이 가능하다.
./configure --prefix=$HOME --without-berkeley-db \
--with-ssl --with-editor=/usr/bin/vim \
--without-apxs --without-apache
make && make install
64비트 (x86_64)에서 이 작업을 한다면 큰 문제를 가지고 있다.
심지어는 종종 듀얼 32비트 (i386/i386)서버에서도 문제를 일으킨다.
arch,
uname -a
또는 cat /proc/cpuinfo
명령으로 확인하도록 하자.
그렇다면 64비트 운영체제인 경우에는
같이 다운 받은 Subversion-deps 소스에서 공유된 3가지 라이브러리를
다음과 같이 차근차근 따라하면 된다.
Build할 라이브러리는
apr, apr_util 그리고 neon이다.
명령은
cd apr
./configure --enable-shared --prefix=$HOME
make && make install
cd ../apr-util
./configure --enable-shared --prefix=$HOME \
--with-expat=builtin --with-apr=$HOME \
--without-berkeley-db
make && make install
cd ../neon
./configure --enable-shared --prefix=$HOME \
--with-libs=$HOME --with-ssl
make && make install
실행후
다음과 같이 subversion 디렉토리에서 실행한다.
--with-ssl flag는 neon에서 build했기때문에 불필요하다.
--without-apxs, --without-apache는 아파치 모듈을 인스톨하기에 앞서 처리한다.
cd ../
./configure --prefix=$HOME --without-berkeley-db \
--with-editor=/usr/bin/vim --with-apr=$HOME \
--with-apr-util=$HOME --with-neon=$HOME \
--without-apxs --without-apache
make && make install
자~ 이제 인스톨이 되었다.
svn --version
svn, version 1.4.6 (r28521)
compiled Jan 29 2008, 11:05:47
이제 저장소를 설정하고 SVN을 사용하면 되겠다....
Here are some of the errors I saw along the way:
/usr/lib/libexpat.so: could not read symbols: File in wrong format
/usr/lib/libexpat.so: could not read symbols: Invalid operation
/home/joe/_src/subversion-1.4.6/neon/src/.libs/libneon.a: could not read symbols: Bad value
이런 문제가 발생한다면 앞서 말했던 64비트 운영체제인 경우 발생할 수 있다.
64비트 설명처럼 3개의 라이브러리를 먼저 설치해보자.
[출처] [Linux] SVN Install|작성자 미르
원문:http://blog.naver.com/kimsjho/140051752939
1. 일단 설치가 필요하겠죠
필요 rpm list
apr-0.9.12-2.i386.rpm
apr-util-0.9.12-1.i386.rpm
subversion-1.4.3-1.i386.rpm
자~ rpm -ivh *.rpm 해서 설치를 해보세요~
2. svn 설치를 확인 해보죠~~
svn --version
3. 자~ 이제 svn 관리를 위한 계정을 만들어서 관리하기 위해~
adduser svnadmin
passwd svnadmin
4. svn 에는 저장소가 있어야 겠죠~~ 저장소를 만들어 봐요~~
svnadmin create my-repository
5. repository 의 환경 설정도 잊지 말아야 겠죠~
cd my-repository/conf 명령으로 이동
vi 에디터로 passwd 및 svnserve.conf 를 수정해 주어야 합니다.
passwd 에는
접근 가능하도록 하는 아이디/ 패스워드를 설정해 줄수 있습니다.
oskm = 1234
형태로 기술해 주면 id 는 oskm pw 는 1234 가 되는 것이죠
그리고 svnserve.conf 에서는
초기 파일을 열어 보면
# anon-access = read
# auth-access = write
# password-db = passwd
# realm = My First Repository
라고 된 부분들이 있습니다.
저 부분들을
anon-access = none -> anonymous user 는 아무것도 못하게 하는게 좋겠죠?
auth-access = write -> 인증 된 사용자에게 쓸 수 있는 권한을 줍니다.
password-db = passwd -> 인증을 위한 passwd 경로를 적어 줍니다. (위에서 설정 했죠?)
realm = oskm repository <- 이건 마음대로 적어주셔도 되요~
자 ~ 이제 설정이 모두 끝났습니다~~ ㅎㅎ
6. 접속을 받을 수 있도록 서버를 띄워야 겠죠??
svnserve -d -r ~/my-repository/ 를 실행 합니다~
자 이제 접속 가능한지 테스트 해보도록 하죠~
7. svn list svn://localhost/my-repository
인증하라고 메세지가 뜨나요??
아까 입력한 id / pw 를 입력하면 접속 성공입니다.
8. 이제 모든 작업은 끝입니다. 이제 사용을 해봐야 겠죠??
svn co svn://localhost/ projects
라고 하면 projects 하면 projects 에 체크아웃이 됩니다.
9. 익히 알고 계시 듯이 아래 3가지 디렉토리를 추가해 보겠습니다.
trunk
branches
tags
svn mkdir trunk branches tags 실행~
하면 아래와 같은 메세지가 출력되며, svn 서버에 반영 하기 위해서는 commit 을 해 주어야 겠죠?
A trunk
A branches
A tags
svn ci -m "init" 이라고 치면
아래와 같은 메세지가 출력됩니다.
추가 branches
추가 tags
추가 trunk
커밋된 리비전 1.
10. 이제 자유롭게 commit 하고 checkout 받아 사용 하시면 되겠네요^^~
긴글 읽어주셔서 감사하구요~
svn 설치에 어려움을 겪으시는 분들에게 조금이나마 도움이 되었으면 좋겠네요~
[출처] linux 에서 svn 서버를 구축해 보자~~|작성자 핫핫핫
Subversion Home: http://subversion.tigris.org/project_packages.html
참고자료:
[svn 구조]
[svn 설치]
먼저 subversion(svn)을 설치하자.
정상적으로 설치되었는지 확인하자.
[svn 설정 - 필수 설정]
사용자 계정 svn을 생성하고, svn 저장소를 생성하자.
아래의 경우 저장소(repository는 /svn 이다.
[root]$ chown -R root:root /svn
그리고 프로젝트폴더를 생성하자. 아래의 경우 프로젝트 이름이 project 가 된다.
권한을 설정하자. /svn/project/conf/svnserve.conf 의 주석을 제외한 부분이 아래와 같아야 한다.,
realm 은 리파지토리의 도메인명(외부에서 볼 때의 이름)이라고 할 수 있다.
anon-access = none
auth-access = write
password-db = passwd
# authz-db = authz
realm = bage
[sasl]
# use-sasl = true
#min-encryption = 0
#max-encryption = 256
계정을 추가하자. /svn/project/conf/passwd 의 내용을 모두 지우고, 아래처럼 입력.
아래의 경우 id는 bage 이며, 암호는 xxxxx 가 된다.
bage= xxxxx
* 만약 개인용 서버가 아니라면 sasl을 이용하여 인증하는 방식을 이용하자. 왜냐햐면 passwd 방식(위 방식)은 암호를 누구나 확인할 수 있어서 내 리파지토리에 다른 사람이 접근할 가능성이 높기 때문이다.
[svn 설정 - 리눅스 서비스 등록]
/etc/sysconfig/subversion 을 아래 내용으로 만들자.
OPTIONS="--threads --root /svn" 에서 /svn은 저장소 위치이다.
#
# To pass additional options (for instace, -r root of directory to # server) to the svnserve binary at startup, set OPTIONS here.
#
#OPTIONS=
OPTIONS="--threads --root /svn"
/etc/init.d/subversion 를 만들자.
SYSCONFIG= 에 위에서 만든 파일의 경로를 적는다.
#
# /etc/rc.d/init.d/subversion
#
# Starts the Subversion Daemon
#
# chkconfig: 2345 90 10
# description: Subversion Daemon
# processname: svnserve
source /etc/rc.d/init.d/functions
[ -x /usr/bin/svnserve ] || exit 1
### Default variables
SYSCONFIG="/etc/sysconfig/subversion"
### Read configuration
[ -r "$SYSCONFIG" ] && source "$SYSCONFIG"
RETVAL=0
prog="svnserve"
desc="Subversion Daemon"
start() {
echo -n $"Starting $desc ($prog): "
daemon $prog -d $OPTIONS
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
echo
}
stop() {
echo -n $"Shutting down $desc ($prog): "
killproc $prog
RETVAL=$?
[ $RETVAL -eq 0 ] && success || failure
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
RETVAL=$?
;;
condrestart)
[ -e /var/lock/subsys/$prog ] && restart
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart}"
RETVAL=1
esac
exit $RETVAL
서비스로 등록하자.
[root]$ cd /etc/init.d/
[root]$ chkconfig --add subversion && chkconfig subversion on
[svn 서버 시작(서비스모드)]
서비스를 시작하자.
서비스상태와 등록 여부를 확인하자.
[svn 접속 테스트]
클라이언트 접속 테스트를 하자.
subversive -> 추천(다음 이클립스에 포함될 예정)
subclipse -> 비추천(버그 많음)
[참고] 윈도우용 SVN 클라이언트
tortoiseSVN -> 추천(svn 폴더관리 및 cleanup에 유용함)
sasl을 이용하여 암호화 하여 저장하는 방식을 이용해 보자.
/svn/project/conf/svnserve.conf 파일에서 아래 2줄을 찾아 passwd 부분은 주석을 sasl부분은 true로 변경하자.
anon-access = none
auth-access = write
# password-db = passwd
# authz-db = authz
realm = bages
[sasl]
use-sasl = true
#min-encryption = 0
#max-encryption = 256
sasldb에 계정을 추가해야 한다. 위와 같은 경우 아래처럼 한다.
도메인이 bages 에 소속되는 계정 bage을 생성하는 명령이다.
( 만약 아래 명령이 없다고 나오면, "yum install cyrus-sasl*" 명령을 통하여 관련 패키지를 먼저 설치하자.)
[root]$ sasldblistusers2
tomcat@tomcats: userPasswd
확실히 하기 위해 passwd 파일을 아예 지워버리자.
앞으로는 sasldb를 이용하므로. ^^
이제 서버 관리자도 암호를 확인할 수 없다.
마음 편하게 svn을 사용하자.