커피닉스, 시스템 엔지니어의 쉼터 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
* HanIRC의 #coffeenix 방
[ 장비 및 회선 후원 ]
HOME > Unix/Linux 처음 시작하기 > FreeBSD, OpenBSD (*BSD) 도움말
검색 : 사이트 WHOIS 웹서버 종류


  cvsup-bin을 이용한 SYSTEM UPGRADE (글 이상민) 작성일 : 2004/01/11 23:09
 
  • 글쓴이 : 좋은진호 ( http://coffeenix.net/ )
  • 조회수 : 8964
          [ 이전화면 / 수정 ]   비밀번호 :     인쇄용 화면
      FreeBSD에서 CVSup으로 시스템 업드레이드하는 방법을 설명한다.

    출처 : Goosia, http://www.goosia.com/board/view.php?id=FreeBSD&no=42

    ----------------------------------------------------------------------------
    제  목 : cvsup-bin을 이용한 SYSTEM UPGRADE 권법
    작성자 : Goosia Lee (이상민)
    작성일 : 2000-12-12 13:49:36
    ----------------------------------------------------------------------------
    CHATTING을 하다보니 요즘 새로 프비를 설치 하시는 분이 많아 졌습니다.
    다아~~준호님의 책이 발간되서 그런가 봅니다.
    그런데 다들 아시리라 생각했던 cvsup을 모르시는 분들이 많이 있었습니다.
    우메..이 좋은 기능을...ports때문에 프비를 쓰는 사람이 무지무지 많은데 말이져.
    그래서 프비의 cvsup-bin에 대해서 알아보겠습니다.

    STEP 1: 패키지 설치.
    cvsup-bin 을 설치 하셔야 됩니다.
    두가지 방법이 있습니다.
    !첫번째방법 : sysinstall을 이용하여 Configure -- Packages -- CDROM/FTP -- net -- cvsup-bin 을 설치한다.
    여기서 CDROM/FTP 는 설치 시디롬을 가지고 있으신분은 CDROM을 이용하시고 랜으로 연결되신분은 FTP를 선택하여 ftp~ftp6까지 본인의 위치에서 가장 빠른 서버를 선택하셔서 진행하시면 되겠습니다.

    # /stand/sysinstall

    !두번째 방법 : ports를 이용한 설치 방법이 되겠습니다.
    # cd /usr/ports/net/cvsup-bin
    # make install clean
    위에 진행한 방식대로 root로써 진행하시면 설치가 됩니다.
    설치가 되었는지 확인 할 방법은 pkg_info 를 이용하십시요.

    자! 이제 패키지 설치는 다 되었습니다.
    그럼 설정을 변경하여 내 위치에서 가장 빠르고 좋은 방법을 선택하며 설정화일을 변경해 보겠습니다.

    STEP 2: 설정 변경

    우선 /etc/make.conf 를 만들어야 합니다. /etc/defaults/make.conf 가 기본설정입니다. 프비는 cvsup을 하게 되면 /etc/defaults/make.conf 를 확인합니다. 그리고 설정을 적용한 후 /etc/make.conf의 설정을 오버레잇합니다. 그러므로 동일 설정이 있다면 /etc/make.conf 가 후에 적용되기 때문에 실질적인 적용이 되겠죠. 이쁘게 만들어야 합니다.
    어떻게? 잘!!!
    우선 /etc/defaults/make.conf 를 모두 한번 자세히 읽어보시고 제가 말씀 드리는 작업을 진행하시면 좋겠습니다.

    참고로 /etc/default/make.conf는 수정하지 마십시요..(특히 병록이 -0-;;)

    제가 사용하는 make.conf입니다.
    =================/etc/make.conf=====================
    USA_RESIDENT=NO
    CFLAGS= -O -pipe -Wall
    COPTFLAGS= -O -pipe -Wall
    INSTALL= install -C
    SUP_UPDATE= yes
    SUP= /usr/local/bin/cvsup
    SUPFLAGS= -g -L 2 -Z -h cvsup.kr.freebsd.org
    NO_SENDMAIL=TRUE
    PORTSSUPFILE= /cvsup/ports-supfile
    DOCSUPFILE= /cvsup/doc-supfile
    SUPFILE= /cvsup/stable-supfile
    =================cut here===========================

    첫줄은 미국내에 없다라는 옵션입니다. 많은 곳에서 이 설정을 보니까 미국내에 없으신분들은 꼭 해주세요. 라이센스 문제니 뭐니 해서 미국내에 없는 옵션이 편합니다.
    2,3 줄은 컴파일 옵션입니다. 무슨 내용인지 궁금 하신분은 man gcc 하세요. ;)
    SUP에 들어가는 값은 cvsup-bin 패키지를 설치했을때 설치되는 cvsup이라는 바이너리의 위치입니다. STEP 1처럼 진행하셨다면 언제나! 항상! /usr/local/bin/cvsup에 있습니다. 확인 방법은
    # pkg_info -L `pkg_info | grep cvsup-bin | awk '{print $1}'`
    로 확인 가능합니다. 뭐 저렇게 기냐구염? 저렇게 않하실라면 cvsup-bin의 버젼을 아시고 계시다면 pkg_info -L cvsup-bin-16.1 이렇게 적어 주면 되는데요. 모르실 경우 pkg_info로 cvsup-bin패키지의 풀네임을 확인하시고 pkg_info -L 패키지명.. 이런식으로 해야 그 패키지에 포함된 파일들의 위치와 이름을 볼 수 있습니다.
    아아..쓸때없는 설명 무지 깁니다. :-)

    SUPFLAGS= -g -L 2 -Z -h cvsup.kr.freebsd.org
    여기서 -g는 그래픽옵션을 빼는 거구 -L 2 는 출력되는 로그의 레벨입니다. 0으로 주면 조용합니다. -Z는 압축하지 말라는 옵션입니다. 그러니까 cvsup서버에서 소스 받아올때 압축 하지 않구 그냥 받아서 하겠다는거져. -h는 cvsup서버입니다. 국내에는 cvsup,cvsup2.kr.freebsd.org의 두개의 미러가 있습니다.

    훔훔..그 아래줄은 제가 센드멜을 따로 가져다가 컴팔해서 쓰기 때문에 소스업데이트 할때 센드멜은 하지 말라는 옵션인데 만일 저 옵션을 뺀다면 제가 닥질해서 다시 설치한 센드멜이 디포트로 되버립니다. -_-;
    센드메일은 프비의 베이스입니다. 기본 소스라고 해야되나?

    다음은 3줄은 제가 업데이트 하는 내용들입니다.
    솔직히 저 3개면 충분합니다. 저 많은 파일은 /usr/share/examples/cvsup에 있습니다.
    doc-supfile : /usr/doc 의 내용을 새로 업그레이드 합니다.
    ports-supfile : /usr/ports 의 내용을 새로 업그레이드 합니다.
    stable-supfile : /usr/src 의 내용을 새로 업그레이드 합니다.

    위에 위치는 제가 옮겨서 설치한 위치입니다.
    나중에 업그레이드 하다가 보면 /usr/share/examples/cvsup/* 내용들이 변할지도 모른다는...변하는지 아닌지에 대해서는 자세히 모르겠습니다.
    하지만 원본은 남겨두는 습관이 있어서요.
    님들도 옮겨서 하시기 바랍니다.

    이제 supfile설정에 대해서 살펴 보겠습니다.
    doc-supfile의 경우 저의 설정은 이렇습니다.
    =============doc-supfile====================
    *default host=cvsup.kr.FreeBSD.org
    *default base=/usr
    *default prefix=/usr
    *default release=cvs tag=.
    *default delete use-rel-suffix
    #*default compress
    doc-all
    =============================================
    주석문이 쭈우욱 있고 내용들이 많습니다.
    하지만 이거면 충분합니다.
    압축의 경우 make.conf에서 실행시 -Z 옵션 주고 하시면 압축하지 않습니다.
    하지만 직접 디렉토리에 방문해서 update 를 할때는 설정 파일을 참조 하기 때문에 뺐습니다. 제가 압축을 하지 않는 이유는 시피유는 딸리고 네트웍은 빠르기 때문입니다. ;)

    이번에는 ports-supfile입니다.
    ===================ports-supfile====================
    *default host=cvsup.kr.FreeBSD.org
    *default base=/usr
    *default prefix=/usr
    *default release=cvs tag=.
    *default delete use-rel-suffix
    #*default compress
    ports-all
    ====================================================
    역시 이거면 됩니다.
    ports를 업글하실때 chinese와 japanese 패키지를 올리기 싫으신분은 아래에 카테고리 별로 열거된 태그를 이용해 주시기 바랍니다.
    #ports-all # ports-all을 막고
    ports-base
    ports-archivers
    ports-astro
    ...
    #ports-chinese #중국시장을 겨냥한 포트
    ...
    #ports-japanese #일본
    ...
    #ports-russian #러시안
    ...
    #ports-vietnamese #베트남
    ...
    ports-x11-wm

    위와 같이 하셔도 됩니다. 전 그냥 받습니다만 막을까 생각중입니다.
    현재 설치된 포트도 제거하고 ;-)

    이번엔 stable-supfile입니다.
    ================stable-supfile======================
    *default host=cvsup.kr.FreeBSD.org
    *default base=/usr
    *default prefix=/usr
    # change "RELENG_4" to "RELENG_3" or "RELENG_2_2" respectively.
    *default release=cvs tag=RELENG_4
    *default delete use-rel-suffix
    #*default compress
    #src-all
    src-base
    src-bin
    src-contrib
    src-etc
    #src-games
    src-gnu
    src-include
    src-kerberos5
    src-kerberosIV
    src-lib
    src-libexec
    src-release
    src-sbin
    src-share
    src-sys
    src-tools
    src-usrbin
    src-usrsbin
    src-crypto
    src-eBones
    src-secure
    src-sys-crypto
    ====================================================

    다 똑같습니다. 그러나 하나 다른게 있죠.
    버젼입니다.
    제가 사용하는 FreeBSD는 4.x 시리즈 입니다.
    그렇기 때문에 *default release=cvs tag=RELENG_4 를 사용합니다.
    3.x를 사용하시는 분은 RELENG_3 을 2.2 를 사용하시는분은 RELENG_2_2 를 입력하시기 바랍니다. 현재 프비 3.x대를 쓰시는 분이 stable-supfile에 버젼 체크 부분에 RELENG_4 를 쓰시게 되면 프비 버젼이 3.x에서 4.x로 올라가 버립니다. 각 버젼별로 /etc의 설정과 /dev가 많이 다릅니다. 버젼을 올리시는 업그레이드의 경우 http://www.nothing-going-on.demon.co.uk/FreeBSD/make-world/make-world.html 에 있는 문서를 참조 하시기 바랍니다.
    위에 제 컴의 시피유가 않좋은 관계로 (펜티엄3 500 싱글) 하나라도 빼는게 make world 시간을 단축하는 요인이므로 위와 같이 사용합니다. :-(

    와!! 이제 설정이 끝났습니다.
    이제 업그레이드 하는 법을 살펴 보죠.

    STEP 3: 적용하기.
    1. ports를 최신 패키지 목록으로 변경하겠습니다.
    # cd /usr/ports
    # make update
    끝입니다. 이러면 쫘아아아악 업그레이드 상황이 표시 됩니다.

    2. Documentation Update(최신 문서로 새로 고침)
    # cd /usr/doc
    # make update

    3. System-Base Update
    3-1. 소스만 올리기: 이 경우 /etc/make.conf에 지정한 supfile이 다 적용됩니다.
    # cd /usr/src
    # make update

    3-2. 바이너리까지 컴파일하여 전체 시스템 올리기(stable로)
    # cd /usr/src
    # make world
    ( make world == make buildworld + make installworld )
    위 3-2와 같이 수행 후에 반드시 커널을 다시 컴팔하여 리붓해주어야 완벽한 업그레이드 시스템이 되는것을 명심하시기 바랍니다.
    커널과 베이스 바이너리간의 충돌이 야기 됨.

    supfile에 대한 설명.(다음은 /usr/share/examples/cvsup/README 의 내용입니다.)
    To maintain the sources for the FreeBSD-current release, use:

    standard-supfile Main source tree

    ports-supfile Ports collection

    To maintain the sources for the FreeBSD-stable release, use:

    stable-supfile Main source tree

    To maintain a copy of the CVS repository containing all versions of
    FreeBSD, use:

    cvs-supfile Main source tree and ports collection

    To maintain a copy of the FreeBSD bug database, use the file:

    gnats-supfile FreeBSD bug database

    IMPORTANT: Before you use any of the supfiles in this directory,
    you will need to edit in an appropriate "host" setting. See:

    http://www.freebsd.org/handbook/mirrors.html

    for an up-to-date list of public CVSup mirror sites.

    자질구레하게 글은 많았지만 해줄껀 별로 없습니다.
    빨리 하시고 싶으신 분을 위해 빠른 설치 권법에 대해 쓰겠습니다.

    :Quick Install
    (다음을 복사하여 쉘스크립으로 만든후 실행하십시요)
    #----------------------cvsup_setting_goosia--------------------
    SPORT = /usr/ports
    SSRC = /usr/src
    SDOC = /usr/doc
    MAKECONF = /etc/make.conf
    CVSDOC = /cvsup/doc-supfile
    CVSPORTS = /cvsup/ports-supfile
    CVSSTABLE = /cvsup/stable-supfile

    cd $SPORT/net/cvsup-bin
    make install clean
    echo "USA_RESIDENT=NO" > $MAKECONF
    echo "CFLAGS= -O -pipe -Wall" > $MAKECONF
    echo "COPTFLAGS= -O -pipe -Wall" >> $MAKECONF
    echo "INSTALL= install -C" >> $MAKECONF
    echo "SUP_UPDATE= yes" >> $MAKECONF
    echo "SUP= /usr/local/bin/cvsup" >> $MAKECONF
    echo "SUPFLAGS= -g -L 2 -Z -h cvsup.kr.freebsd.org" >> $MAKECONF
    echo "NO_SENDMAIL=TRUE" >> $MAKECONF
    echo "PORTSSUPFILE= /cvsup/ports-supfile" >> $MAKECONF
    echo "DOCSUPFILE= /cvsup/doc-supfile" >> $MAKECONF
    echo "SUPFILE= /cvsup/stable-supfile" >> $MAKECONF

    mkdir /cvsup
    echo "*default host=cvsup.kr.FreeBSD.org" > $CVSDOC
    echo "*default base=/usr" >> $CVSDOC
    echo "*default prefix=/usr" >> $CVSDOC
    echo "*default release=cvs tag=." >> $CVSDOC
    echo "*default delete use-rel-suffix" >> $CVSDOC
    echo "*default compress" >> $CVSDOC
    echo "doc-all" >> $CVSDOC
    echo "*default host=cvsup.kr.FreeBSD.org" > $CVSPORTS
    echo "*default base=/usr" >> $CVSPORTS
    echo "*default prefix=/usr" >> $CVSPORTS
    echo "*default release=cvs tag=." >> $CVSPORTS
    echo "*default delete use-rel-suffix" >> $CVSPORTS
    echo "*default compress" >> $CVSPORTS
    echo "ports-all" >> $CVSPORTS
    echo "*default host=cvsup.kr.FreeBSD.org" > $CVSSTABLE
    echo "*default base=/usr" >> $CVSSTABLE
    echo "*default prefix=/usr" >> $CVSSTABLE
    echo "#*default release=cvs tag=RELENG_3" >> $CVSSTABLE
    echo "*default release=cvs tag=RELENG_4" >> $CVSSTABLE
    echo "*default delete use-rel-suffix" >> $CVSSTABLE
    echo "*default compress" >> $CVSSTABLE
    echo "src-all" >> $CVSSTABLE
    #----------------------cut here--------------------------------

    위의 스크립은 STEP1,2를 진행한 것입니다.
    업그레이드 되는 것은 doc,ports,stable_source입니다.
    stable소스가 아닌 standard를 원하시는 분은 직접 작성하여 사용하시기 바랍니다.

    그럼 이만 권법을 마치겠습니다.

    Homepage: http://goosia.com/
    E-Mail : goosia@goosia.com
    Name : Goosia Lee (이상민)
      커피닉스 카페 최근 글
    [06/16] [질문]SAN 스위치 브로드케이드 dcx8510-4 장비관련입니다.
    [04/22] Re: 영화속에 컴퓨터 이야기 ~스워드피쉬(2001)
    [10/20] Cross Compiler 깔
    [07/14] SSL АО
    [04/26] Re: 도스화면 원격조종 여부
    [04/25] 도스화면 원격조종 여부
    [10/30] Cshell에서 난수 설정
    [10/23] 공항철도주식회사 SE 구인 件
    [01/26] Re: wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/25] wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/11] 특정 안드로이드 WebView 버전에서 SSL 문제 (WebView 버그)
    [08/01] DNS forwarder (전달자) 서버를 통해서 쿼리하면 역방향을 받아오질 못합니다.
    [05/16] (주)후이즈 시스템엔지니어 (경력자) 모집
    [02/15] [AWS] Cloudfront edge 확인하기
    [01/20] Mobile Service/eCommerce 기업에서 Server / Java / PHP 개발자 구인
      New!   최근에 등록한 페이지
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      오픈캐스케이드 캐드 (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI를 활용한 리눅스 서버관리
      DNS 설정 검사
      nagiosgraph 설치 방법
      Slony-I 설치 방법 (postgresql replication tool)
      Qmail기반의 Anti spam 시스템 구축하기
      clusterssh

    [ 함께하는 사이트 ]




    운영진 : 좋은진호(truefeel), 야수(yasu), 범냉이, sCag
    2003년 8월 4일~