فرض می کنیم ورژن جدیدی از firefox 3.5 صادر شده است و من دوست دارم آن را ارتقا دهم . اگر این package را از طریق port نصب کرده باشم . برای این کار باید قبلا از طریق cvsup که قبلا در مورد آن بحث شد port tree خود را update را کنیم.
برای update کردن یک package در FreeBSD را ه های مختلفی وجود دارد
۱- ساده نرین را ه است این است که به شاخه package مورد نظر برویم و دستور های زیر را اجرا کنیم
مثلا برای Firefox 3 من کار زیر را انجام می دهم
# cd /usr/ports/www/firefox3
با دستور بالا به شاخه برنامه مورد نظر می رویم . حالا تایپ می کنم
# make deinstall clean
دستور بالا برنامه مورد نظر را از روی سیستم پاک می کند
حالا دستور زیررا تایپ می کنم
# make install clean
دستور بالا برنامه مورد نظر را دوباره برای من نصب می کند .
همین طور که مشاهده کردید من برنامه قبلی را برداشتیم و برنامه جدید را نصب کردیم . این کار در بعضی موارد ممکن است درست جواب ندهد به خصوص اگر dependency های برنامه مورد نظر دچار تغییر شده باشند .
۲- با استفاده از برنامه portupgrade : با برنامه های نیز می توان port ها یا package های نصب شده را update کرد . برای استفاده ا ز این برنامه ابتدا آن را نصب می کنیم
# cd /usr/ports/ports-mgmt/portupgrade
حالا دستور نصب را تایپ می کنیم
# make install clean
بعد از نصب این برنامه دستور زیر را در ترمینال تایپ می کنیم
# pkgdb -F
این دستور port های نصب شده را scan می کند و اگر چنانچه ایرادی در پورت ها یا dependency های آنها وجود داشت آنها را تا آنجا که می تواند رفع می کند و یک دیتا بیس از آنها می سازد . بهتر است هر چند یک وقت این دستور را اجرا کنید .
حالا اگر می خواهید کل port های update نشده را update کنید کافی است در ترمینا ل تایپ کنید
# portupgrade -a
اگر این دستور را به صورت زیر تایپ کنید
# portupgrade -ai
در هنگام آپدیت از شما پرسیده خواهد شد آیا فلان package را update کنم یا نه .
اگر بخواهید فقط یک package خاص مانند firefox را update کنید وبه بقیه کاری نداشته باشد دستور زیر را تایپ می کنید
# portupgrade -R firefox3
اگر این دستور را بااستفاده از گزینه R به کار ببریم به portupgrade می گوییم تمام برنامه هایی که FireFox احتیاج دارد را نیز update کند و به اصطلاح ساده تر همراه Firefox تمام dependency هایی را که لازم است را نیز update کند.
۳- استفاده از portmanager : با استفاده از این برنامه نیز می توان package های مورد نظر را update کرد برای نصب این برنامه مراحل زیر را طی می کنیم.
# cd /usr/ports/ports-mgmt/portmanager
# make install clean
بعد از نصب برای اینکه کل package هایی را که لازم است update کند دستور زیر را در ترمینال تایپ کنید
# portmanager -u
اگر می خواهید از شما پرسیده شود که چه package های update شود از option یا گزینه i همراه با u استفاده کنید .
از portmanager می توانید برای نصب برنامه های مورد نظر خود استفاده کنید و کار هایی که make install clean انجام میدهد این برنامه انجام می دهد . مثلا برای نصب firefox 3.5 که قبلا نصب نشده است در ترمینل دستور زیررا تایپ می کنم
# portmanager www/firefox3
۴- استفاده از برنامه portmaster : یکی از قویتزین برنامه ها برای update کردن package ها به نظرم این برنامه است . مهمترین ویژه گی که دارد این است که این برنامه به هیچ گونه برنامه دیگری وابسته نیست و به اصطلاح dependency مهمی ندارد .
برای نصب این برنامه مراحل زیر را طی می کنیم
# cd /usr/ports/ports-mgmt/portmaster
# make install clean
بعد از نصب برنامه در ترمینال دستور زیر را تایپ می کنیم
# portmaster -L
دستور بالا بعد از search برنامه های شما به شما می گوید که کدام یک از برنامه های شما احتیاج به update دارد
ممکن است خروجی به شکل زیر باشد
===>>> Root ports (No dependencies, not depended on) ===>>> ispell-3.2.06_18 ===>>> screen-4.0.3 ===>>> New version available: screen-4.0.3_1 ===>>> tcpflow-0.21_1 ===>>> 7 root ports ... ===>>> Branch ports (Have dependencies, are depended on) ===>>> apache-2.2.3 ===>>> New version available: apache-2.2.8 ... ===>>> Leaf ports (Have dependencies, not depended on) ===>>> automake-1.9.6_2 ===>>> bash-3.1.17 ===>>> New version available: bash-3.2.33 ... ===>>> 32 leaf ports ===>>> 137 total installed ports ===>>> 83 have new versions available
می بینیم که package های screen و apache و bash و کلا در حدود ۸۳ برنامه نیاز به update دارد.
اگر می خواهیم تمام برنامه ها update شوند دستور زیر را در ترمینال اجرا می کنیم
# portmaster -a
و اگر می خواهیم برنامه خاصی مانند firefox3 را update کنیم دستور زیر را تایپ می کنیم
# portmaster firefox3
از portmaster نیز می توان برای نصب یک package نیز استفاده کرد . مثلا برای نصب firefox3 دستور زیر را تایپ می کنیم
# portmaster www/firefox3
من همیشه از portmaster استفاده می کنم