사이드바 영역으로 건너뛰기

[FreeBSD] cvsup-bin을 이용한 System Upgrade

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가 많이 다릅니다. 버젼을 올리시는 업그레이드의 경우 make-world/make-world.html target=_blank>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를 원하시는 분은 직접 작성하여 사용하시기 바랍니다.

 


 

출처 : http://goosia.com/


진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크