sun's longitude:263 03 52.71 
· 자유게시판 · 묻고답하기 · 알파문서 · RPMS list
· 사용자문서 · 팁/FAQ모음 · 리눅스Links · 자료실
· 서버정보 · 운영자 · Books/FAQ · FreeBSD
/board/read.php:소스보기  
FreeBSD
FreeBSD study ....
[*** 쓰기 금지단어 패턴 ***]
글 본문 중간에 업로드할 이미지를 추가하는 방법 : @@이미지이름@@
ex) @@foo.gif@@
20 번 글: FreeBSD 소스 업데이트
글쓴이: 산이 [홈페이지] 글쓴날: 2006년 06월 12일 10:01:26 월(오전) 조회: 5943
[FreeBSD 4.x 소스 업데이트]

-- san2(at)linuxchannel.net
-- 2004.08.25

반드시 순서를 지킬 것

http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.
html

--

0. cvsup 설치

shell> cd /usr/ports/net/cvsup && make install clean
shell> rehash (csh 이라면)

1. cvsup 으로 소스 받기

- stable-supfile : 같은 major 넘버 업데이트
- standard-supfile : 보안 업데이트만

-- /usr/share/examples/cvsup/standard-supfile 파일 편집 ----
...
*default host=cvsup.kr.FreeBSD.org
...
## 4.x 에서 4.10 으로
## 만약 같은 버전(4.9)의 보안패치만 하고 싶은 경우는 RELENG_4_9
##
default release=cvs tag=RELENG_4_10
...
src-all
...
---------------------------------------------------------

shell> cvsup -g -L 2 -h cvsup2.kr.freebsd.org
/usr/share/examples/cvsup/standard-supfile

-g      Don't use the GUI (implied if $DISPLAY is not set)
-L n    Verbosity level for "-g" (0..2, default 1)

/usr/src 에 소스를 fetch 하기 때문에 약 400~1G 정도 여유 공간이
필요함


2. 준비 및 확인

shell> vi /etc/make.conf (컴파일 옵션 및 맞춤커널 이름 설정,
KERNCONF?=custom)
shell> mount -u -o async,noatime /usr (빠른 컴파일을 위해서)
shell> cd /usr/obj; chflags -R noschg *; rm -rf *
shell> cd /usr/src; make clean
shell> cd /usr/src/sys/i386/conf (맞춤 커널 설정)
shell> ln -s GENERIC custom

*참고) 커널 설정
--------------------------------------------------
-device         atkbd0  at atkbdc? irq 1 flags 0x1
+device         atkbd0  at atkbdc? irq 1 flags 0x0

-device         ed0     at isa? disable port 0x280 irq 10 iomem 0xd8000
-device         ex
-device         ep
-device         fe0     at isa? disable port 0x300
+#device        ed0     at isa? disable port 0x280 irq 10 iomem 0xd8000
+#device        ex
+#device        ep
+#device        fe0     at isa? disable port 0x300

-pseudo-device  sl      1       # Kernel SLIP
-pseudo-device  ppp     1       # Kernel PPP
+#pseudo-device sl      1       # Kernel SLIP
+#pseudo-device ppp     1       # Kernel PPP

-pseudo-device  faith   1       # IPv6-to-IPv4 relaying (translation)
+#pseudo-device faith   1       # IPv6-to-IPv4 relaying (translation)
--------------------------------------------------

3. 핵심소스 빌드(make buildworld)

shell> cd /usr/src
shell> make -DNOCLEAN -j 4 buildworld

-DNOCLEAN 옵션은 `no clean' 을 의미(컴파일 실패시)

시간이 오래 걸림


4. 커널 빌드(make buildkernel)

shell> cd /usr/src
shell> make -DNOCLEAN -j 4 buildkernel


5. 커널 설치(make installkernel)

shell> cd /usr/src
shell> make -DNOCLEAN -j 4 installkernel


6. 재부팅 및 커널 테스트

shell> shutdown -r now (or `reboot')
...
shell> uname -a


7. 싱글모드로 재부팅

shell> reboot
...
: boot -s (loader prompt)


8. mergemaster -p (Pre-buildworld mode)

shell> mergemaster -p; // `d' --> <Enter> 순으로 입력


9. 핵심소스 설치(make installworld)

shell> cd /usr/src
shell> make -DNOCLEAN -j 4 installworld


10. mergemaster (/etc 변경)

shell> mergemaster


11. /dev 변경

shell> ( cd /dev && sh MAKEDEV all )


12. /stand 업데이트

shell> ( cd /usr/src/release/sysinstall && make all install )


13. 재부팅

shell> reboot


14. 동일한 버전의 여러대를 업데이트할 때(예)

 - MASTER : 192.168.10.3
 - SLAVE  : 192.168.10.4 192.168.10.5

1) MASTER -- NFS server : 위의 12 과정을 모두 마친 상태에서

-- /etc/exports ------------------------------------------------------
/usr/src /usr/obj -maproot=root -network=192.168.10.0 -mask=255.255.255.0
----------------------------------------------------------------------
(파일이 없다면 직접 생성)

만약 /usr/src /usr/obj 가 각각 다른 파티션이라면

-- /etc/exports ------------------------------------------------------
/usr/src -maproot=root -network 192.168.10.0 -mask 255.255.255.0
/usr/obj -maproot=root -network 192.168.10.0 -mask 255.255.255.0
----------------------------------------------------------------------
(만약 /usr/src 또는 /usr/obj 가 다른 파티션으로 링크되었다면
실제 해당 파티션의 디렉토리로 적어줘야 함)

-- /etc/rc.conf ------------------------------------------------------
nfs_server="yes"
nsf_server_flags="-u -t -n 4"
----------------------------------------------------------------------

-n 4 는 동시에 4개의 컴퓨터에서 공유를 허용함

or

shell> nfsd -u -t -n 4
shell> mountd -r (mount daemon 을 의미)

/etc/exports 파일을 고쳤다면,

shell> kill -s HUP `cat /var/run/mountd.pid`


2) SLAVE -- NFS client

-- /etc/fstab ---------------------------------------------------------
192.168.0.3:/usr/src	/usr/src	nfs	rw	2	2
192.168.0.3:/usr/obj	/usr/obj	nfs	rw	2	2
-----------------------------------------------------------------------

후 재부팅함

or

shell> mv /usr/src /usr/src.orig
shell> mv /usr/obj /usr/obj.orig
shell> mkdir /usr/src /usr/obj
shell> mount -t nfs -o rw 192.168.0.3:/usr/src /usr/src
shell> mount -t nfs -o rw 192.168.0.3:/usr/obj /usr/obj
shell> mount -p (확인)


3) 소스 및 커널 설치(5,8,9,10 번 항목 내용을 그대로)

shell> cd /usr/src
shell> make installkernel
shell> make installworld
shell> mergemaster
shell> ( cd /dev && sh MAKEDEV all )
shell> ( cd /usr/src/release/sysinstall && make all install )

4) 원래대로 복구 및 재부팅

shell> cd /
shell> umount /usr/src && rm -rf /usr/src
shell> umount /usr/obj && rm -rf /usr/obj
shell> mv /usr/src.orig /usr/src
shell> mv /usr/obj.orig /usr/obj
shell> reboot


EOF

 
이전글 : apache1.3.31 log duration patch
다음글 : Re: FreeBSD 커널 옵션  
 from 222.106.218.166
JS(Redhands)Board 0.4 +@

|글쓰기| |답장쓰기| |수정|
|이전글| |다음글| |목록보기|
인쇄용 

apache lighttpd linuxchannel.net 
Copyright 1997-2024. linuxchannel.net. All rights reserved.

Page loading: 0.02(server) + (network) + (browser) seconds