🔍 YUM 패키지로 설치

✒️ yum install subversion

 

"cannot find a valid baseurl for repo base/7/x86_64"

위의 오류가 발생하는 경우 아래 명령어로 ip할당후 재실행한다

✒️ ifup /etc/sysconfig/network-scripts/ifcfg-enp0s3

 

🔍  파일 설정

계정공유 파일 밑에 svn 저장소폴더(mkdir 명령어 사용)를 먼저 생성해야한다.

✒️ vi /etc/sysconfig/svnserve

OPTIONS="--threads --root /home/계정폴더명/svn"

위의 내용을 기입한다.

 

 

🔍 활성화 설정

✒️ service svnserve start로 시작시 서비스가 안올라오는경우 selinux 권한 문제로

✒️ setenforce 0  (setenforce를 통해 Permissive 로 변경)

✒️ getenforce : permissive 인지 확인

 

getenforce란?

"getenforce" Linux 운영체제에서 SELinux(Security-Enhanced Linux) 현재 상태를 확인하는 명령어입니다. SELinux 일반적인 Linux 보안 기능을 보완하는 기능으로, 보안 정책을 적용하여 시스템의 보안을 강화합니다.

getenforce 명령어는 현재 시스템의 SELinux 상태를 확인합니다. 출력 결과는 "Enforcing", "Permissive" 또는 "Disabled" 하나가 나옵니다. "Enforcing" 상태는 SELinux 활성화되어 있으며 엄격한 보안 정책을 적용하는 상태를 나타내고, "Permissive" 상태는 SELinux 활성화되어 있지만 경고만 내보내고 엄격한 보안 정책을 적용하지 않는 상태를 나타냅니다. 마지막으로 "Disabled" 상태는 SELinux 비활성화된 상태를 나타내며, 보안 정책이 적용되지 않습니다.

보안을 강화하고 SELinux 사용할 경우, getenforce 명령어를 통해 SELinux 상태를 확인하고 문제를 해결할 있습니다.

 

✒️ systemctl list-unit-files | grep svnserve (svn enabled/disabled 상태확인)

만약 disabled가 뜨면, systemctl enable svnserve.service 으로 enable로 활성화를 시켜준다.

 

systemctl list-unit-files | grep svnserve?

"systemctl list-unit-files | grep svnserve" 명령어는 systemd 서비스 관리자를 사용하여 현재 시스템에서 svnserve 서비스가 활성화되어 있는지 확인하는 명령어입니다.

systemctl Linux 시스템에서 서비스를 관리하는 사용되는 명령어이며, list-unit-files 옵션은 현재 시스템에서 사용 가능한 모든 systemd 유닛 파일 목록을 출력합니다. 목록은 모든 유닛 유형, 서비스, 타이머, 소켓, 장치 등을 포함합니다.

grep 출력된 목록에서 특정 문자열 또는 패턴을 검색하는 사용되는 명령어입니다. 명령어에서는 grep svnserve 사용하여 출력 목록에서 svnserve라는 문자열이 포함된 행만 필터링합니다.

결과적으로, 명령어는 현재 시스템에서 svnserve 서비스 유닛 파일이 있는지 확인합니다. 출력 결과가 있으면 해당 서비스가 활성화되어 있으며, 결과가 없으면 해당 서비스가 비활성화되어 있거나 시스템에서 사용할 없는 상태일 있습니다.

 

✒️ sestatus (SELinux 상태확인)

✒️ service svnserve status (svnserve 서비스 유닛 파일 상태 확인 =>active 뜨면 된다.)

 

🔍 SVN 프로젝트 설정하기

 

👍 새로만든 SVN 폴더로 이동한 후 demo 저장소명 생성

 

✒️ svnadmin create --fs-type fsfs demo(demo는 저장소명)

svnadmin Subversion 서버 관리를 위한 도구 하나로, 서버의 리포지토리를 생성, 복사, 삭제, 수정, 확인 등을 수행할 있습니다.

"--fs-type fsfs" 옵션은 파일 시스템(FS) 형식으로 "fsfs" 사용하겠다는 것을 나타냅니다. "fsfs" Subversion에서 사용하는 파일 시스템 형식 하나로, 파일 단위로 변화를 저장하므로 서버 장애 발생 손상된 파일만 복구할 있습니다. 방식은 안정적인 파일 시스템 형식으로 알려져 있습니다.

결과적으로 명령어는 "demo"라는 이름의 Subversion 리포지토리를 생성하고, 리포지토리에 "fsfs" 파일 시스템 형식을 사용하겠다고 설정합니다. 이렇게 생성된 리포지토리는 다른 Subversion 클라이언트들이 코드를 저장하고 공유할 있습니다.

 

👍 demo 저장소 안에 config 설정하기

✒️ vi authz (authz 파일 설정) 

주의사항 : [/] 까지 같이 기입해줘야한다.

 

✒️ vi passwd(passwd 파일 설정)

계정명 = passwd

 

✒️ vi svnserve.conf (svnserve.conf  파일 설정)

# 아래 4가지 설정을 풀어준다.

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

 

✒️ svn checkout svn://localhost/demo

"svn checkout svn://localhost/demo" Subversion(SCVN) 소스 코드 관리 시스템에서 로컬호스트에서 실행 중인 Subversion 서버에 접속하여 "demo"라는 이름의 리포지토리에서 최신 소스 코드를 받아오는 명령어입니다.

"svn checkout" Subversion 클라이언트에서 사용하는 명령어로, 지정한 Subversion 서버에 접속하여 소스 코드를 다운로드합니다. "svn://localhost/demo" Subversion 서버의 주소와 리포지토리의 이름을 지정하는 것으로, "svn://" Subversion 프로토콜을 사용하여 서버에 접속하겠다는 것을 나타내고, "localhost" 서버가 실행 중인 로컬 호스트를 나타냅니다. "demo" 접속할 리포지토리의 이름입니다.

 

결과적으로, 명령어는 로컬호스트에서 실행 중인 Subversion 서버에 접속하여 "demo"라는 이름의 리포지토리에서 최신 소스 코드를 받아옵니다. 이렇게 받아온 코드는 로컬 머신에서 수정, 컴파일, 빌드 등의 작업을 수행한 다시 서버에 업로드하여 버전 관리를 수행할 있습니다.

실행결과

 

🔍 방화벽 설정

✒️ firewall-cmd --permanent --zone=public --add-port=3690/tcp

✒️ firewall-cmd --reload

✒️ firewall-cmd --list-ports

 

✒️ netstat -na | grep 3690 (포트열려있는지 확인)

 

👍 윈도우 로컬에서 네트워크 확인하기

 

윈도우 파워쉘에서 telnet 127.0.0.1 [포트번호]

 

로컬호스트에서 실행 중인 포트번호 관련 서버에 Telnet 클라이언트를 사용하여 접속하려고 시도합니다. 만약 포트번호 관련 서버가 정상적으로 실행 중이라면, Telnet 클라이언트는 포트번호 관련 서버 프로토콜을 사용하여 서버와 통신하고 명령어를 입력할 수 있습니다.

 

🔍 포트포워딩 설정

vm 에서 호스트, 게스트 ip와 호스트, 게스트 포트 알맞게 지정

 

🔍 확인하기

윈도우 로컬에 운영되는 이클립스에서 svn 연동이 잘 되는지 확인해보자

 

👍 open perspetive > svn 선택, url, 유저, password 설정한다.

finish를 하면 svn 연동 서버가 생긴다.

👍 연결하고자 하는 프로젝트를 우클릭하고 아래 사진과 같이 선택한다.

프로젝트가 여러개일 경우 share projects를 선택한다.

생성한 svn과 연결을 하면 프로젝트옆에 svn 주소가 뜬다.😊😊

 

🔍 svn, 이클립스 설정

👍 svn 연동제외파일 설정

window > preference > team > Ignored Resources 선택

add pattern >.project , .classpath, .settings , */target/** 추가

 

👍 svn 파일명 설정

window > preference > team > svn > label decorations 선택

폴더, 파일란에 {date} {author}을 추가하면 프로젝트에 리비전 및 여러정보가 써진다😊😊

 

 

+ Recent posts