2011년 8월 22일 월요일

linux] fedora CD 만들던 시절... 오래된 지식


Rebuilding Fedora Core 3 CD's
원문 :
http://bipolar.longbros.com/index.php?p=29&more=1&c=1&tb=1&pb=1#more29
당장은 쓸모가 없더라도 알아두면 좋은 내용이어서 링크 걸어 놉니다. 원저자는 여러대에 fedora를 인스톨 해야 하는데 cd 인스톨을 한 후에 최신의 업데이트된 패키지의 양이 만만치 않아서 아예 인스톨 cd를 최신의 패키지들로 다시 만드는 아래의 방법을 생각했다고 하는군요.
1) 작업 디렉토리(~/fedora-rebuild 같은) 를 만든다.
2) 다음의 패키지를 설치한다. ("yum install packagename" 해서 설치한다.)

* anaconda
* anaconda-images
* anaconda-help
* anaconda-runtime

3) 위의 1에서 만들었던 디렉토리로 이동한 후, 다음을 수행한다.

export PYTHONPATH=/usr/lib/anaconda
export PATH="$PATH:/usr/lib/anaconda-runtime"
export FCBASE=`pwd`
mkdir -p $FCBASE/fedora/i386
mkdir -p $FCBASE/fedora/SRPMS

4) 한번에 하나씩 원본의 FC3 ISO를 마운트 한 후, 그 안에 들어있는 파일들을 $FCBASE로 복사한다. 다음의 명령으로 한다.

mount -o loop /path/to/iso /iso/mountpoint
cd /iso/mountpoint
tar -cf - * | ( cd $FCBASE/fedora/i386/ ; tar -xpf - )
cd $FCBASE
umount /iso/mountpoint

5) 원본의 RPM의 복사가 다 끝났으면, 이제 새로이 갱신된 RPM들을 받아 기존의 것을 대체한다. 원한다면 이 때 나만의 패키지를 추가할 수도 있다.
6) 모든 old cd install file들을 삭제한다.
find $FCBASE/fedora -name TRANS.TBL -exec rm -f {}
7) hdlist file을 만든다.
genhdlist $FCBASE/fedora/i386
8. 8) package order file을 생성하고, 날짜를 찍자.
$FCBASE/pkgorder $FCBASE/fedora/i386 i386 | tee $FCBASE/fedora/pkgfile.`date +%Y-%m-%d`
"Ignoring" or "Removing" 에러 메세지는 신경쓰지 마시길...
9) installation files을 다음의 buildinstall 명령으로 업데이트 한다.

buildinstall --pkgorder $FCBASE/fedora/pkgfile.`date +%Y-%m-%d` \
--version 3 --product 'Fedora Core' --release 'Fedora Core 3' \
--prodpath Fedora $FCBASE/fedora/i386

ease string:
export RELEASE="Fedora Core 3 (Heidelberg) with updates to $(date '+%Y-%M-%d %H:%m')"
11) old cd directory들을 삭제한다.
rm -rf $FCBASE/fedora/i386-disc[1-9]
12) 배포된 FC3의 splittree.py script는 제대로 작동을 안한다. Fix가 포함된 CVS 버전을 여기서 다운받는다. http://www.longbros.com/benjamin/files/splittree.py /usr/lib/anaconda-runtime/scripts에 있는 것을 대체하던지, 새로이 다운 받은 곳에서 13에서 처럼 수행을 시킨다.
13) Run splittree.py to split the RPM's and install files into individual cd's: (각각의 cd로 나눠넣기 위해서 이다.)

splittree.py --arch=i386 --total-discs=5 --bin-discs=4 --src-discs=1 \
--release-string=$RELEASE \
--pkgorderfile=$FCBASE/fedora/pkgfile.`date +%Y-%m-%d` \
--distdir=$FCBASE/fedora/i386 --srcdir=$FCBASE/fedora/SRPMS \
--productpath=Fedora

첫번째 cd를 위해서 다음을 수행한다. 그래야 인스톨 가능한 모든 패키지들이 어느 cd에 있는지 알게 할 수 있다.

rm -f $FCBASE/fedora/i386-disc1/Fedora/base/hdlist*
genhdlist --productpath=Fedora \
--withnumbers --fileorder \
/root/fedora-rebuild/fedora/pkgfile.2004-11-15 \
$FCBASE/fedora/i386-disc[1234]

15) $FCBASE/fedora안에 있는 각각의 i386-disk* 들이 인스톨 cd 이다. 이 디렉토리들은 새 iso 이미지가 되도록 준비가 된 상태이며,
http://www.longbros.com/benjamin/files/makecds.sh
이 스크립트를 이용하면 된다. (단, 스크립트 수행전에 각자에 맞게 수정을 하라.)

댓글 없음:

댓글 쓰기

국정원의 댓글 공작을 지탄합니다.

UPBIT is a South Korean company, and people died of suicide cause of coin investment.

 UPBIT is a South Korean company, and people died of suicide cause of coin. The company helps the people who control the market price manipu...