اپدیت کردن package های نصب شده

فرض می کنیم ورژن جدیدی از 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 استفاده می کنم