커널을 업그레이들 하려면, 다음과 같은 순서로 작업을 합니다.
- 모든 패키지가 최신으로 업그레이드 되어 있고, 잘 설치되는지 확인 : portupgrade -af
- 커널의 메이저 및 마이너 업그레이드를 위하여 패치 파일 다운로드 : freebsd-update -r 7.2-RELEASE upgrade
- 패치 적용 : freebsd-update install
- 재부팅 한 이후에 다시 남은 패치 적용 : freebsd-update install
- 패키지에 문제가 있으면, 패키지 재 설치
# portupgrade -f ruby
# rm /var/db/pkg/pkgdb.db
# portupgrade -f ruby18-bdb
# rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db
# portupgrade -af
저의 경우 다음과 같은 오류가 발생하였었습니다.
stone# freebsd-update fetch Looking up update.FreeBSD.org mirrors... 2 mirrors found. Fetching public key from update4.FreeBSD.org... failed. Fetching public key from update5.FreeBSD.org... failed. No mirrors remaining, giving up. |
원인을 분석하기 위해서 7.2 Release 버전에 대한 공개키를 받는 것에 문제가 없는지 확인합니다.
stone# fetch -vvv http://update1.FreeBSD.org/7.2-RELEASE/i386/pub.ssl scheme: [http] user: [] password: [] host: [update1.FreeBSD.org] port: [0] document: [/7.2-RELEASE/i386/pub.ssl] ---> update1.FreeBSD.org:80 looking up update1.FreeBSD.org connecting to update1.FreeBSD.org:80 requesting http://update1.FreeBSD.org/7.2-RELEASE/i386/pub.ssl >>> GET /7.2-RELEASE/i386/pub.ssl HTTP/1.1 >>> Host: update1.FreeBSD.org >>> User-Agent: fetch libfetch/2.0 >>> Connection: close >>> <<< HTTP/1.1 200 OK <<< Date: Tue, 02 Jun 2009 13:20:01 GMT <<< Server: Apache/1.3.41 (Unix) <<< Cache-Control: max-age=60 <<< Expires: Tue, 02 Jun 2009 13:21:01 GMT <<< Last-Modified: Sat, 02 May 2009 18:02:40 GMT last modified: [2009-05-02 18:02:40] <<< ETag: "702e56-320-49fc8ac0" <<< Accept-Ranges: bytes <<< Content-Length: 800 content length: [800] <<< Connection: close <<< Content-Type: text/plain <<< offset 0, length -1, size -1, clength 800 remote size / mtime: 800 / 1241287360 pub.ssl 100% of 800 B 2158 kBps freebsd-update의 디버깅을 아래와 같이 진행합니다. stone# freebsd-update -v debug -s update.FreeBSD.org upgrade -r 7.2-RELEASE Looking up update.FreeBSD.org mirrors... 2 mirrors found. Fetching public key from update5.FreeBSD.org... fetch: http://update5.FreeBSD.org/7.0-STABLE/i386/pub.ssl: Not Found failed. Fetching public key from update4.FreeBSD.org... fetch: http://update4.FreeBSD.org/7.0-STABLE/i386/pub.ssl: Not Found failed. No mirrors remaining, giving up. |
위 디버깅 정보를 보면, 공개키가 들어 있는 파일을 가져오는곳에서 문제가 발생하는 것을 알 수 있습니다.
현재 커널의 정보를 확인해 보았더니, 아래와 같았습니다.
stone# uname -a FreeBSD stone.bflysoft.kr 7.0-STABLE FreeBSD 7.0-STABLE #1: Thu Mar 20 08:52:44 UTC 2008 i386 |
서버의 릴리즈 정보에 해당하는 공개키가 없어서 문제가 발생하는 것이므로, 아래와 같이 임시적으로 서버의 버전 정보를 수정합니다.
stone# setenv UNAME_r 7.0-RELEASE stone# uname -a FreeBSD stone.bflysoft.kr 7.0-RELEASE FreeBSD 7.0-STABLE #1: Thu Mar 20 08:52:44 UTC 2008 i386 |
위와 같이 릴리즈 정보가 변경되었음을 확인한 이후에 다시 freebsd-update를 시도하여 그제서야 마이너 업그레이드가 제대로 진행이 되었습니다.
업그레이드가 진행중에 다음과 같은 메시지가 표시되면서 각종 텍스트 파일의 수정이 필요합니다.
stone# freebsd-update -r 7.2-RELEASE upgrade Looking up update.FreeBSD.org mirrors... 2 mirrors found. Fetching metadata signature for 7.0-RELEASE from update4.FreeBSD.org... done. Fetching metadata index... done. Fetching 1 metadata patches. done. Applying metadata patches... done. Fetching 1 metadata files... done. Inspecting system... done. The following components of FreeBSD seem to be installed: The following components of FreeBSD do not seem to be installed: Does this look reasonable (y/n)? y Fetching metadata signature for 7.2-RELEASE from update4.FreeBSD.org... done. The following file could not be merged automatically: /etc/defaults/periodic.conf |
버전 정보에 따라 절절히 모든 파일을 수정해 줍니다.
그리고 난 후에 install 합니다.
stone# freebsd-update install Installing updates... Kernel updates have been installed. Please reboot and run "/usr/sbin/freebsd-update install" again to finish installing updates. |
재부팅 이후에, 다시 한번 freebsd-update install하면 업그레이드가 마무리 됩니다.
참고자료
'Linux,Unix,BSD' 카테고리의 다른 글
버그질라(BugZilla)-3.4.4 설치기 (2) | 2010.02.24 |
---|---|
GnuPG(gpg) 사용하기 ; 파일/문서 암호화 프로그램 (0) | 2009.06.06 |
FreeBSD 5.5에서 autoconf 업그레이드시 오류 발생 (0) | 2009.06.01 |
qmail 가동중 25번 port(smtp) 응답이 느릴때 해결법 (0) | 2009.05.07 |
vi 명령어 모음... (5) | 2009.03.07 |