레이블이 cvs인 게시물을 표시합니다. 모든 게시물 표시
레이블이 cvs인 게시물을 표시합니다. 모든 게시물 표시

2011년 8월 3일 수요일

솔라리스10에 cvs server 설치하기

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월 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