آپدیت کردن سیستم بوسیله freebsd-update

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 می کنیم.