Distributor ID: Ubuntu Description: Ubuntu 22.04.1 LTS Release: 22.04 Codename: jammy
목표
서버로 사용하고 있는 리눅스 운영체제의 본체에 SVN 서버를 설치하고 노트북과 데스크탑이 저장소에 접근 + 프로젝트의 버전관리
해당 목표의 가이드 사이트
1. 아파치 설치
먼저 HTTP URL을 사용하여 svn 서버에 액세스하려면 Apache 웹 서버를 설치해야 합니다.
시스템에 이미 Apache 웹 서버가 있는 경우 이 단계를 건너뜁니다.
sudo apt-get update sudo apt-get install apache2
2. SVN 서버 설치
다음 명령을 사용하여 Subversion 패키지와 해당 종속성을 설치합니다.
또한 시스템에 Apache libapache2-mod-svn 패키지용 svn 모듈을 설치하고 재시작 합니다.
sudo apt-get install subversion sudo apt-get install libapache2-svn #안되면 보류 sudo apt-get install libsvn-dev sudo apt-get install libapache2-mod-svn sudo a2enmod dav dav_svn sudo service apache2 restart
sudo apt-get install subversion # # 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다... 완료 상태 정보를 읽는 중입니다... 완료 다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다: apg attr gnome-control-center-faces gnome-online-accounts ibverbs-providers libcdio-cdda2 libcdio-paranoia2 libcdio19 libcephfs2 libcolord-gtk1 libgfapi0 libgfrpc0 libgfxdr0 libglusterfs0 libgsound0 libgssdp-1.2-0 libgupnp-1.2-1 libgupnp-av-1.0-3 libgupnp-dlna-2.0-4 libibverbs1 libldb2 libnfs13 librados2 librdmacm1 librygel-core-2.6-2 librygel-db-2.6-2 librygel-renderer-2.6-2 librygel-server-2.6-2 libtalloc2 libtevent0 libwbclient0 mobile-broadband-provider-info network-manager-gnome python3-dnspython python3-gpg python3-ldb python3-macaroonbakery python3-markdown python3-protobuf python3-pygments python3-pymacaroons python3-talloc python3-tdb rygel tdb-tools 'sudo apt autoremove'를 이용하여 제거하십시오. 다음의 추가 패키지가 설치될 것입니다 : libserf-1-1 libsvn1 libutf8proc2 제안하는 패키지: db5.3-util libapache2-mod-svn subversion-tools 다음 새 패키지를 설치할 것입니다: libserf-1-1 libsvn1 libutf8proc2 subversion 0개 업그레이드, 4개 새로 설치, 0개 제거 및 11개 업그레이드 안 함. 2,471 k바이트 아카이브를 받아야 합니다. 이 작업 후 9,938 k바이트의 디스크 공간을 더 사용하게 됩니다. 계속 하시겠습니까? [Y/n] Y 받기:1 http://kr.archive.ubuntu.com/ubuntu jammy/universe amd64 libserf-1-1 amd64 1.3.9-10ubuntu2 [50.0 kB] 받기:2 http://kr.archive.ubuntu.com/ubuntu jammy/universe amd64 libutf8proc2 amd64 2.7.0-3 [73.9 kB] 받기:3 http://kr.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libsvn1 amd64 1.14.1-3ubuntu0.22.04.1 [1,387 kB] 받기:4 http://kr.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 subversion amd64 1.14.1-3ubuntu0.22.04.1 [960 kB] 내려받기 2,471 k바이트, 소요시간 2초 (1,104 k바이트/초) Selecting previously unselected package libserf-1-1:amd64. (데이터베이스 읽는중 ...현재 226996개의 파일과 디렉터리가 설치되어 있습니다.) Preparing to unpack .../libserf-1-1_1.3.9-10ubuntu2_amd64.deb ... Unpacking libserf-1-1:amd64 (1.3.9-10ubuntu2) ... Selecting previously unselected package libutf8proc2:amd64. Preparing to unpack .../libutf8proc2_2.7.0-3_amd64.deb ... Unpacking libutf8proc2:amd64 (2.7.0-3) ... Selecting previously unselected package libsvn1:amd64. Preparing to unpack .../libsvn1_1.14.1-3ubuntu0.22.04.1_amd64.deb ... Unpacking libsvn1:amd64 (1.14.1-3ubuntu0.22.04.1) ... Selecting previously unselected package subversion. Preparing to unpack .../subversion_1.14.1-3ubuntu0.22.04.1_amd64.deb ... Unpacking subversion (1.14.1-3ubuntu0.22.04.1) ... libutf8proc2:amd64 (2.7.0-3) 설정하는 중입니다 ... libserf-1-1:amd64 (1.3.9-10ubuntu2) 설정하는 중입니다 ... libsvn1:amd64 (1.14.1-3ubuntu0.22.04.1) 설정하는 중입니다 ... subversion (1.14.1-3ubuntu0.22.04.1) 설정하는 중입니다 ... Processing triggers for libc-bin (2.35-0ubuntu3.1) ... Processing triggers for man-db (2.10.2-1) ...
# # sudo apt-get install subversion libapache2-mod-svn libapache2-svn libsvn-dev # # 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다... 완료 상태 정보를 읽는 중입니다... 완료 E: libapache2-svn 패키지를 찾을 수 없습니다 # # sudo a2enmod dav dav_svn # # Module dav already enabled ERROR: Module dav_svn does not exist! # # apt-get install libapache2-mod-svn # # 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다... 완료 상태 정보를 읽는 중입니다... 완료 다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다: apg attr gnome-control-center-faces gnome-online-accounts ibverbs-providers libcdio-cdda2 libcdio-paranoia2 libcdio19 libcephfs2 libcolord-gtk1 libgfapi0 libgfrpc0 libgfxdr0 libglusterfs0 libgsound0 libgssdp-1.2-0 libgupnp-1.2-1 libgupnp-av-1.0-3 libgupnp-dlna-2.0-4 libibverbs1 libldb2 libnfs13 librados2 librdmacm1 librygel-core-2.6-2 librygel-db-2.6-2 librygel-renderer-2.6-2 librygel-server-2.6-2 libtalloc2 libtevent0 libwbclient0 mobile-broadband-provider-info network-manager-gnome python3-dnspython python3-gpg python3-ldb python3-macaroonbakery python3-markdown python3-protobuf python3-pygments python3-pymacaroons python3-talloc python3-tdb rygel tdb-tools 'apt autoremove'를 이용하여 제거하십시오. 제안하는 패키지: db5.3-util 다음 새 패키지를 설치할 것입니다: libapache2-mod-svn 0개 업그레이드, 1개 새로 설치, 0개 제거 및 11개 업그레이드 안 함. 96.5 k바이트 아카이브를 받아야 합니다. 이 작업 후 458 k바이트의 디스크 공간을 더 사용하게 됩니다. 받기:1 http://kr.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libapache2-mod-svn amd64 1.14.1-3ubuntu0.22.04.1 [96.5 kB] 내려받기 96.5 k바이트, 소요시간 1초 (92.3 k바이트/초) Selecting previously unselected package libapache2-mod-svn. (데이터베이스 읽는중 ...현재 227116개의 파일과 디렉터리가 설치되어 있습니다.) Preparing to unpack .../libapache2-mod-svn_1.14.1-3ubuntu0.22.04.1_amd64.deb ... Unpacking libapache2-mod-svn (1.14.1-3ubuntu0.22.04.1) ... libapache2-mod-svn (1.14.1-3ubuntu0.22.04.1) 설정하는 중입니다 ... apache2_invoke: Enable module dav_svn apache2_invoke: Enable module authz_svn
SVN 설치 확인
svn help
svn help # # usage: svn <subcommand> [options] [args] Subversion command-line client. Type 'svn help <subcommand>' for help on a specific subcommand. Type 'svn --version' to see the program version and RA modules, 'svn --version --verbose' to see dependency versions as well, 'svn --version --quiet' to see just the version number. Most subcommands take file and/or directory arguments, recursing on the directories. If no arguments are supplied to such a command, it recurses on the current directory (inclusive) by default. Available subcommands: add auth blame (praise, annotate, ann) cat changelist (cl) checkout (co) cleanup commit (ci) copy (cp) delete (del, remove, rm) diff (di) export help (?, h) import info list (ls) lock log merge mergeinfo mkdir move (mv, rename, ren) patch propdel (pdel, pd) propedit (pedit, pe) propget (pget, pg) proplist (plist, pl) propset (pset, ps) relocate resolve resolved revert status (stat, st) switch (sw) unlock update (up) upgrade Subversion은 형상관리를 위한 도구입니다. 더 상세한 정보를 위해서는 http://subversion.apache.org/ 를 방문하세요
3. SVN 저장소 만들기
다음 명령을 사용하여 이름이 myrepo 인 첫 번째 svn 리포지토리를 만듭니다 .
또한 새로 생성된 디렉터리에 필요한 권한을 설정합니다.
sudo mkdir -p /var/lib/svn/ sudo svnadmin create /var/lib/svn/myrepo sudo chown -R www-data:www-data /var/lib/svn sudo chmod -R 775 /var/lib/svn
저장소가 생성되면 자동으로 파일이 만들어 집니다.
4. Subversion용 사용자 만들기
이제 /etc/apache2/dav_svn.passwd 파일 에 첫 번째 svn 사용자를 만듭니다 .
이 사용자는 체크아웃, 커밋 프로세스를 위해 svn 저장소 인증에 사용합니다.
sudo touch /etc/apache2/dav_svn.passwd sudo htpasswd -m /etc/apache2/dav_svn.passwd "원하는 아이디" # 추가 사용자를 생성하려면 다음 명령을 사용 sudo htpasswd -m /etc/apache2/dav_svn.passwd "아이디1" sudo htpasswd -m /etc/apache2/dav_svn.passwd "아이디2"
5. Subversion으로 Apache 구성
Subversion Apache 모듈 패키지는 /etc/apache2/mods-enabled/dav_svn.conf 구성 파일을 생성합니다 .
필요한 사항을 변경하기만 하면 됩니다.
Alias /svn /var/lib/svn <Location /svn> DAV svn SVNParentPath /var/lib/svn AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user </Location>
# 재시작 sudo service apache2 restart
도메인의 리디렉션으로 SVN이 연결이 안되는 문제가 생김
Alias 부분을 주석처리 + 따로 포트를 열어서 해결
/etc/apache2/ports.conf 수정
/etc/apache2/sites-available/000-default.conf 수정
URL 연결 시 IP : 포트 로 접근
6. 저장소에 접근
Tortoise SVN 설치 및 접속의 설명 아래의 글을 참고해주세요
원하는 파일 위치에서 Checkout
URL을 통하여 연결 / 저는 리디렉션 때문에 도메인을 사용 못하고 IP로 연결했습니다.
성공하면 폴더가 체크 표시