1. cvs설치 여부 확인 'cvs -v' 실행
'cvs: not found'가 나타나면 설치가 되어있지 않음
2. root 로 수행
3. http://www.sunfreeware.com 에서 cvs-1.11.22-sol10-sparc-local.gz를 다운받는다.
4. gzip -d cvs-1.11.22-sol10-sparc-local.gz
5. pkgadd -d cvs-1.11.22-sol10-sparc-local
6. 저장소(Repository) 생성
# mkdir /export/home/cvs
7. 저장소(Repository) 초기화
# cvs -d /export/home/cvs init
저장소 디렉토리(/export/home/cvs) 에 CVSROOT 폴더 생성,초기화된다
8. cvs 유저 생성
# useradd cvs
# passwd cvs
cvs 그룹 추가
# /etc/group 열어서
cvs::302: #추가
# /etc/passwd 열어서 cvs계정의 그룹을 cvs(302)로
# chown -R root:cvs /export/home/cvs
# chmod -R 770 /export/home/cvs
9. cvs사용자 등록
/export/home/cvs/CVSROOT/passwd 파일 수정
--------------------------------------------------------------------------------
계정아이디:비밀번호:cvs
--------------------------------------------------------------------------------
비밀번호는 암호화되야함.
아래 명령어 수행(아파치 설치시 기본으로 설치됨)
# /usr/apache2/bin/htpasswd -nb [계정아이디] [패스워드]
10. cvs 서버 실행
지금 설치된 솔라리스9 는 xinetd 가 아닌 inetd를 쓴다.
그러므로 inetd로 CVS 접속을 허용하는 방법만을 사용한다.
우선 CVS가 사용하는 포트 번호(2401번)를 등록해야 한다.
/etc/services 또는 /etc/inet/services 에 cvspserver 2401 가 등록되어 있는지 확인한다.
존재 하지 않을 경우 추가 해준다. 아래 첨부 전 쓰기 권한 확인한다.
없으면 # chmod u+w services
cvspserver 2401/tcp # CVS client/server operations
cvspserver 2401/udp # CVS client/server operations
# chmod u-w services
11. cvs port 오픈 (solaris10 부터 inetd 설정방식이 변경됨)
# vi /tmp/inetd.conf
cvspserver stream tcp nowait root /usr/local/bin/cvs cvs --allow-root=/export/home/cvs pserver
물론 /usr/local/bin/cvs나 /export/home/cvs는 실제로 이들 명령이 위치하는
절대 경로와 cvs 홈 디렉토리로 설정한다.
# inetconv -f -i /tmp/inetd.conf
# vi /var/svc/manifest/network/cvspserver-tcp.xml
cvspserver-tcp.xml 파일에서
name='network/cvspserver/tcp' -> name='network/cvspserver'
※ 원인은 알수 없으나 안되서 졸 삽집하다 이걸 바꾸니 됨 (oo0oo)
# svccfg import /var/svc/manifest/network/cvspserver-tcp.xml
# svcadm enable svc:/network/cvspserver:default
netstat 명령을 사용하여 2401 포트가 열려 있는지 확인한다.
# netstat -an | grep 2401
※ inetconv
솔라리스 10버전부터는 inetd를 수동으로 작동하지 않고 inetconv라는 프로그램에 의해서만 inetd.conf에 넣은 엔트리를 smf를 수행할 수 있도록 한다. 그러므로 /etc/inet/inetd.conf에 인터넷에 포함할 프로토콜을 넣은 후에 inetconv를 실행하여야만 해당 항목이 인터넷에 작용한다. smf(service management facility)의 목록은 inetadm을 사용하여 확인할 수 있다.
2011년 8월 3일 수요일
2011년 8월 2일 화요일
ant를 이용한 cvs checkout + reploy
<?xml version="1.0" encoding="euc-kr"?>
<project name="teleweb-ejb" default="build" basedir="/tws_was/cvs-work">
<property name="checkout.dir" value="${basedir}/checkout" />
<property name="ejb.dir" value="/tws_was/jeus5/webhome/WebCall_deploy/" />
<property name="beans.dir" value="/tws_was/jeus5/lib/application/" />
<property name="build.dir" value="${basedir}/teleweb-lib/bin" />
<property name="lib.dir" value="${basedir}/teleweb-lib/lib" />
<path id="project.classpath">
<fileset dir="/tws_was/jeus5/lib/application/">
<include name="*.jar" />
</fileset>
<fileset dir="/tws_was/jeus5/lib/system/">
<include name="*.jar" />
</fileset>
<fileset dir="/tws_was/jeus5/lib/datasource/">
<include name="*.jar" />
</fileset>
<fileset dir="/tws_was/jeus5/webhome/deploy_home/">
<include name="*.jar" />
</fileset>
<fileset dir="${ejb.dir}/">
<include name="*.jar" />
</fileset>
</path>
<target name="build" depends="clean,checkout,compile,copy">
</target>
<target name="reboot_jeus">
<echo message="========================================" />
<echo message="restarting.. jeus" />
<echo message="========================================" />
<exec dir="/tws_was" executable="/bin/sh" >
<arg line="/tws_was/jeus5/bin/jdown" />
</exec>
<exec dir="/tws_was" executable="/bin/sh" >
<arg line="/tws_was/jeus5/bin/jboot" />
</exec>
</target>
<target name="checkout">
<mkdir dir="${checkout.dir}"/>
<cvspass cvsroot=":pserver:teleweb@192.168.22.83:/export/home/cvs" password="teleweb" />
<cvs cvsRoot=":pserver:teleweb@192.168.22.83:/export/home/cvs" package="teleweb-jsp" dest="${checkout.dir}" />
<cvs command="checkout" />
<cvs cvsRoot=":pserver:teleweb@192.168.22.83:/export/home/cvs" package="teleweb-lib" dest="${checkout.dir}" />
<cvs command="checkout" />
<!--cvs cvsRoot=":pserver:teleweb@192.168.22.83:/export/home/cvs" package="teleweb-ejb" dest="${checkout.dir}" /-->
<!--cvs command="checkout" /-->
</target>
<target name="compile">
<mkdir dir="${basedir}/bin"/>
<javac srcdir="${checkout.dir}/teleweb-lib/src/" destdir="${basedir}/bin" classpath="${toString:project.classpath}" debug="on" source="1.5" />
</target>
<target name="copy">
<!-- 1. EJB jar 파일 복사 -->
<copy todir="${ejb.dir}" overwrite="true">
<fileset dir="${checkout.dir}/teleweb-jsp/deploy_home">
<include name="**/*.jar" />
</fileset>
</copy>
<!-- 2. teleweb-lib 파일 복사 -->
<copy todir="${beans.dir}" overwrite="true">
<fileset dir="${basedir}/bin">
<include name="**/*.class" />
</fileset>
</copy>
<!-- 3. teleweb-jsp/fml 파일 복사 -->
<copy todir="/tws_was/WebCall/parm" overwrite="true">
<fileset dir="${checkout.dir}/teleweb-jsp/parm" excludes="**/*CVS*" />
</copy>
<copy todir="/tws_was/WebCall/webapp" overwrite="true">
<fileset dir="${checkout.dir}/teleweb-jsp/webapp" excludes="**/*CVS*" />
</copy>
</target>
<target name="clean">
<delete dir="${checkout.dir}"/>
<delete dir="${basedir}/bin"/>
</target>
</project>
Gentoo Linux에 CVS 설치 (with JailRoot)
1. Install
# USE="server" emerge cvs
# emerge cvsd
2. Create a CVS Jailroot
# mkdir /var/lib/cvsd
# cvs -d /var/lib/cvsd/root init
# cvsd-buildroot /var/lib/cvsd
# cd /var/lib/cvsd
# mkdir -p var/lock
# vi /etc/cvsd/cvsd.conf
--------------------------------------------------------------------------------
RootJail /var/lib/cvsd
Uid cvsd
Gid cvsd
Listen * 2401 # or whatever port you'd like it to listen on, up to you
Repos /root
--------------------------------------------------------------------------------
3. Add Users
cvsd-passwd /var/lib/cvsd/root YOUR_USER_HERE
읽기만 가능한 사용자를 만드려면 아래와 같이 진행한다.
# touch /var/lib/cvsd/root/CVSROOT/readers
# chown cvsd:cvsd /var/lib/cvsd/root/CVSROOT/readers
# vi /var/lib/cvsd/root/CVSROOT/readers
/var/lib/cvsd/root/CVSROOT/readers 파일에 내용 추가
4. 권한설정
# cd /var/lib
# chown -R cvsd:cvsd cvsd
# chmod -R 775 /var/lib/cvsd/root
5. 데몬 시작 및 자동시작 데몬으로 등록
# /etc/init.d/cvsd restart
# rc-update add cvsd default
6. Quick local test
CVSROOT=:pserver:retti@localhost:/root; export CVSROOT
* USE="server" 플래그를 사용하지 않으면 다음과 같은 에러가 발생
/var/lib/cvsd 디렉토리 삭제, unmerge 한뒤 1번 부터 다시 시작
cvs [login aborted]: unrecognized auth response from localhost: cvs: unrecognized option `--allow-root=/root'
CVS Repos 추가하기
* 환경
OS: Gentoo Linux
SW: CVS (with JailRoot 설정 포함)
/var/lib/cvsd/ 디렉토리가 JailRoot
* public 라는 디렉토리를 만들고 이를 새로운 Repos로 사용한다고 가정
1. 디렉토리 생성
mkdir /var/lib/cvsd/public
2. 디렉토리 초기화
cvs -d /var/lib/cvsd/public init
3. Repos 추가
vi /etc/cvsd/cvsd.conf
# /etc/cvsd/cvsd.conf 다음 항목을 추가
Repos /public
4. Add User
cvsd-passwd /var/lib/cvsd/public YOUR_USER_HERE
5. 읽기전용 사용자 추가 (옵션)
# touch /var/lib/cvsd/public/CVSROOT/readers
# vi /var/lib/cvsd/public/CVSROOT/readers
/var/lib/cvsd/public/CVSROOT/readers 파일에 내용 추가
6. 권한설정
chmod -R 775 /var/lib/cvsd/public
chown -R cvsd:cvsd /var/lib/cvsd/public
7. CVSD 데몬 재시작
/etc/init.d/cvsd restart
8. Quick local test
# CVSROOT=:pserver:YOUR_USER_HERE@SERVER_IP:/public; export CVSROOT
# cvs login
라벨:
cvs,
gentoo,
repository
피드 구독하기:
글 (Atom)