FreeBSD نیز مانند سایر سیستم عامل ها احتیاج به update کردن دارد . فکر می کنیم update خیلی مهمی برای سیستم عامل منتشر شده است و باید سیستم را update کنیم .در FreeBSD راه های مختلفی وجود دارد .
مانند cvsup و سپس compile نمودن kernel که خود احتیاج به توضیح زیادی دارد
یکی از ساده ترین راه ها استفاده از freebsd-update می باشد که به update به طریق binary مشهور است .
برای این کاراولین کاری که انجام می دهیم این است که دستور زیر را تایپ می کنیم
# uname -a
دستور بالا به ما می گوید ورژنی را که استفاده می کنیم چه نوعی است . مثلا نوع ۷ است یا ۸ و یا غیره . خروجی زیر را خواهیم داشت
FreeBSD xfce.mfaridi 8.0-RELEASE-p1 FreeBSD 8.0-RELEASE-p1 #0: Tue Jan 5 21:11:58 UTC 2010 info@mfaridi.com:/usr/obj/usr/src/sys/GENERIC amd64
خروجی بالا به ما می گوید FreeBSD ما از نوع 8 می باشد . کرنل آن از نوع default یا Generic است و کرنل اصلی است و عبارت p1 به ما نشان می دهد که این FreeBSD یکبار دیگر قبلا update شده است .
خوب برای update کردن دستور زیر را اجرا می کنیم
# freebsd-update fetch
با دستور بالا سیستم به سایت اصلی FreeBSD مراجعه می کند و اطلاعاتی را در مورد سیستم شما و سیستم اصلی update رد و بدل می کند و می تواند تشخیص دهد آیا update ی برای سیستم شما وجود دارد یا نه ممکن است شما با متن زیر مواجه شوید
Looking up update.FreeBSD.org mirrors... 3 mirrors found. Fetching metadata signature for 8.0-RELEASE from update4.FreeBSD.org... done. Fetching metadata index... done. Inspecting system... done. Preparing to download files... done. The following files are affected by updates, but no changes have been downloaded because the files have been modified locally: /var/db/mergemaster.mtree No updates needed to update system to 8.0-RELEASE-p1
این یعنی اینکه سیستم شما به روز است و update احتیاج ندارد .
و ممکن است خروجی مانند زیر داشته باشید
ooking up update.FreeBSD.org mirrors... 3 mirrors found. Fetching metadata signature for 8.0-RELEASE from update5.FreeBSD.org... done. Fetching metadata index... done. Inspecting system... done. Preparing to download files... done. Fetching 674 patches.....10....20....30....40....50....60....70....80....90....100....110....120....130....140....150....160....170....180....190....200....210....220....230....240....250....260....270....280....290....300....310....320....330....340....350....360....370....380....390....400....410....420....430....440....450....460....470....480....490....500....510....520....530....540....550....560....570....580....590....600....610....620....630....640....650....660....670.. done. Applying patches... done. Fetching 21 files
خوب می بینیم یک عالمه patch و update برای سیستم آمده است و سیستم دارد آنها را دریافت می کند که سپس نصب کند و ممکن است شما با این پرسش مواجه شوید
The following files will be removed as part of updating to 8.0-BETA3-p0: /etc/pf.conf /usr/share/doc/es_ES.ISO8859-1/books/handbook/LEGALNOTICE.html /usr/share/doc/fr_FR.ISO8859-1/books/handbook/x20872.html /usr/share/doc/fr_FR.ISO8859-1/books/handbook/x20918.html /usr/share/doc/fr_FR.ISO8859-1/books/handbook/x21123.html /usr/share/examples/etc/pf.conf /usr/src/etc/pf.conf The following files will be added as part of updating to 8.0-BETA3-p0: /boot/kernel/if_zyd.ko /boot/kernel/if_zyd.ko.symbols ...edited... /usr/share/examples/pf/pf.conf /usr/src/share/examples/pf/pf.conf The following files will be updated as part of updating to 8.0-BETA3-p0: /bin/ps /boot/kernel/3dfx.ko ...edited... /usr/src/usr.sbin/wpa/wpa_supplicant/driver_freebsd.c /var/named/etc/namedb/named.root
خوب می بینیم به ما می گوید که قرار است چه قسمت های update شود و چه قسمت های دچار تغییر نگردد و غیره
خوب برای اینکه update ها نصب شود دستور زیر را اجرا می کنیم
# freebsd-update install
خوب این دستور update ها و patch ها را برای شما نصب می کند و شما خروجی زیر را خواهید داشت
# Kernel updates have been installed. Please reboot
خوب باید سیستم را ریست کنیم . پس تایپ می کنیم
# reboot
و سپس دوباره دستور uname -a را تایپ می کنیم . این دفعه خروجی زیر را خواهیم داشت
FreeBSD xfce.mfaridi 8.0-RELEASE-p2 FreeBSD 8.0-RELEASE-p2 #0
Tue Jan 5 21:11:58 UTC 2010
info@mfaridi.com/usr/obj/usr/src/sys/GENERIC amd64
می بینم که FreeBSD 8 از حالت p1 به p2 ارتقا پیدا کرده است .
لازم به یاد آوری است که روش فقط برای حالت Release و کرنل Generic سیستم عامل FreeBSD مورد استفاده قرار می گیرد . برای update کردن kernel هایی که دستکاری شده انداز این روش استفاده نمی شود.
امروز دوباره freeBSD-update را برای سیستم خودم اجرا کردم . بعد از زدن دستور خروجی زیر را دیدم
The following files will be updated as part of updating to 8.0-RELEASE-p2:
/usr/src/contrib/bind9/bin/named/query.c
/usr/src/contrib/bind9/lib/dns/include/dns/types.h
/usr/src/contrib/bind9/lib/dns/masterdump.c
/usr/src/contrib/bind9/lib/dns/rbtdb.c
/usr/src/contrib/bind9/lib/dns/resolver.c
/usr/src/contrib/bind9/lib/dns/validator.c
/usr/src/etc/mtree/BSD.var.dist
/usr/src/libexec/rtld-elf/rtld.c
/usr/src/sys/cddl/compat/opensolaris/sys/vnode.h
/usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
/usr/src/sys/conf/newvers.sh
/usr/src/sys/kern/vfs_lookup.c
/usr/src/sys/netinet/ip_mroute.c
/usr/src/sys/netinet/raw_ip.c
/usr/src/sys/netinet/sctp_input.c
/usr/src/sys/netinet6/raw_ip6.c
/usr/src/sys/rpc/clnt_vc.c
/usr/src/usr.sbin/freebsd-update/freebsd-update.sh
خوب می بینم که باید دوباره update کنیم و پس دستور زیر را اجرا می کنم
# freebsd-update install
خوب حالا می بینیم که update نصب شده است.
Installing updates... done
سیستم را reboot می کنیم.