یکی دیگر از را ه های نصب برنامه در FreeBSD استفاده از port ها می باشد و ساید بتوان گفت قوی ترین روش نصب package در FreeBSD این روش است .
این روش دارای مزایایی نسبت به pkg_add می باشد . ازجمله می توان گفت اکثر package هایی که به این طریق نصب می شوند خیلی update تر هستند و به اصطلاح به روز تر می باشند . port یک برنامه یا یک package را می توان در واقع حاوی یک سری اطلاعات درمورد آن برنامه یا package را دانست . گروهی در تیم FreeBSD وجود دارند که کار آنها تبدیل برنامه ها یا package ها به port برای FreeBSD می باشد . و به اصطلاح آن برنامه را برای FreeBSD بهینه می کنند تا با فایل ها ی کتابخانه ای FreeBSD هماهنگ بوده و به راحتی با آن کار کند. این گروه package ها را برای FreeBSD می سازند یا کاری می کنند تا با FreeBSD کار کنند و با ارتباط برقرار کردن با kernel به راحتی با سیستم هماهنگ شوند .
اگر به داخل port یک برنامه مانند Firefox نگاه کنیم به فایل های زیر بر خورد می کنیم
۱- Makefile : این فایل حاوی اطلاعاتی می باشد که به سیستم می گوید برای نصب این package در سیستم باید چه compile های انجام شود و یا به اصطلاح چه کار هایی انجام گیرد و این package در کجا نصب گردد و کار کند.
۲- distinfo : این فایل حاوی اطلاعاتی در باره نحوه دانلود package می باشد و اینکه این package باید از چه سایت یا ftp دانلود شود و اگر مثلا در اولین سایت یا ftp نبود به چه سایت یا ftp دیگر مراجعه کند . یک کار مهم دیگر این فایل است که چک می کند md5 یا sha256 فایل دانلود شده با md5 یا sha256 موجود در این فایل یکی است یا نه . اگر یکی نیود نشان می دهد که دانلود درست انجام نشده و این فایل دانلود شده , فایل مورد نظر نمی باشد و دوباره باید دانلود گردد تا برنامه با کمترین ناقصی و عیب نصب گردد.
۳- pkg-desct : این فایل حاوی اطلاعاتی در مورد این برنامه و کاربرد آن و توضیحات دیگر می باشد و اطلاعاتی را در اختیار ما قرار می دهد.
۴- pkg-plist: این فایل حاوی اطلاعاتی می باشد که به ما نشان می دهد در هنگام نصب این برنامه یا package چه برنامه یا package های دیگری نصب خواهد شد که اکثر این package ها به صورت dependency می باشد . این فایل همچنین به ما می گوید چه package های در هنگام نصب این برنامه ممکن است پاک شوند.
۵- دایرکتوری file : در بعضی از package ها پوشه یا folder ی به نام file هم در port برنامه ایجاد می گردد . در این پوشه می توان patch هایی را که برای بهبود package مورد نصب لازم است پیدا کرد . گاهی وقت ها این patch ها باید باشند تا package مورد نظر بر روی FreeBSD نصب گردد.
خوب پس تقریبا فهمیدیم port حاوی اطلاعات مهمی در مورد یک package می باشد .
هر روز به تعداد برنامه های که به FreeBSD پورت می شوند افزوده می گردد . در زمان حال با توجه به آمار سایت FreeBSD در حدود 21182 برنامه برای FreeBSD بوسیله port نویس های تیم FreeBSD پورت شده اند و با FreeBSD سازگاری پیدا کرده اند و شدیدا در حال زیاد شدن هستند .
معمولا اکثر برنامه های جدید بعد از مدتی با تلاش یک سری فرد علاقه مند به FreeBSD به port تبدیل می گردند.
برای اینکه بتوانیم از port ها استفاده کنیم باید آنها را نصب کنیم تا برنامه های مورد نیاز با استفاده از آنها نصب شود . برای نصب port راه های مختلفی وجود دارد .
۱- نصب بوسیله DVD نصاب FreeBSD . اگر مراحل نصب FreeBSD را خوانده باشید در چایی از شما پرسیده می شود آیا مایل هستید port ها را نصب کنید یا نه . خوب اگر در هنگام نصب FreeBSD این کار را انجام نداده اید به روش زیر می توانید بعد از نصب FreeBSD با استفاده از CD یا DVD سیستم عامل FreeBSD این کار را انجام دهید.
در ترمینال دستور زیر را تایپ کنید
# sysinstall
در صفحه sysinstall گزینه Configure را انتخاب کنید و Enter بزنید
در صفحه جدید گزینه Distributions را انتخاب کنید و Enter را بزنید
در صفحه جدید گزینه ports را انتخاب کنید و space را بزنید
سپس گزینه Exit را انتخاب کرده و Enter بزنید
در این مرحله DVD را به عنوان installation media انتخاب کنید
سپس گزینه Exit و سپس Enter را انتخاب کنید
و در آخر X را انتخاب کرده و از برنامه sysinstall خارج شوید.
خوب port ها با استفاده از DVD سیستم عامل FreeBSD نصب شد.
اگر به اینترنت دسترسی دارید می توانید با روش های زیر port را نصب کنید
۲- با استفاده از دستور csup
کافی است در ترمینال دستور زیر را تایپ کنید تا port از server های FreeBSD یا server های CVS متعلق به FreeBSD نصب شود
# csup -L 2 -h cvsup6.fr.FreeBSD.org /usr/share/examples/cvsup/ports-supfile
FreeBSD دارای server های متعددی برای cvs یا update کردن port ها و source های سیستم عامل FreeBSD در کشور ها ی مختلف می باشد که با توجه به محل زندگی ما می توانیم نزدیکترین server را برای update انتخاب کنیم .
با توجه به تست هایی که من انجام داده ام server های تایوان و ژاپن و فرانسه دارای سرعت بهتری برای ما می باشند که در مثال بالا ما از فرانسه استفاده کرده ایم.
لیست server های CVS مربوط به FreeBSD را می توانید در لینک زیر پیدا کنید
http://www.freebsd.org/doc/handbook/cvsup.html#CVSUP-MIRRORS
با دستور بالا port از server های CVS دانلود شده و سپس extract می شودو در شاخه /usr/ports جا می گیرد .
۳- استفاده از دستور portsnap
با استفاده از این دستور می توانید port ها را دانلود کرده و سپس استفاده کنید . این دستور port را به صورت فشرده شده دانلود نموده و سپس شماآن را extract می کنید.
برای استفاده از این دستور کافی است در ترمینال دستور زیر را تایپ کنید
# portsnap fetch
این دستور port را می گیرد که در FreeBSD 8 در حدود ۶۰ مگا بایت می باشد .
حالا دستور زیر را تایپ می کنیم
# portsnap extract
این دستور port فشرده شده را در شاخه /usr/ports برای شما extract یا از فشرده گی خارج می کند .
می دانیم به مرور زمان package های جدیدتر می شوندو package های قدیمی از رده خارج می شوند .برای نصب package های جدید تر باید port را update کنیم تا به port بفهمانیم که package جدید آمده است .برود این package را بگیرد و سپس نصب کنید . در این مورد بعدا با هم صحبت می کنیم
بعد از نصب port حالا با خیال راحت می توانیم برنامه های مورد یا package های مورد نیاز را نصب کنیم .
اگر به شاخه usr و سپس ports بروید و سپس دستور ls را اجرا کنید به folder های زیادی بر خورد می کنید . برای مثال
فولدر www و فولدرaudio و فولدر multimedia و فولدر editor را می بینیم . کافی است به فولدر multimedia برویم و دستور ls را اجرا کنیم به فولدر های زیادی برخورد می کنیم که برای مثال می توان به vlc و mplayer اشاره کرد . از اینجا می فهمیم که برنامه هایی مانند vlc و mplayer که برای دیدن فیلم و گوش دادن به موسیقی معروف هستند در این شاخه قرار دارند .
کافی است به شاخه vlc برویم و دستور زیر را تایپ کنیم
# make
این دستور برنامه vlc را برای ما دانلود می کند و سپس آن را compile می کند تا برای FreeBSD آماده شود.
بعد از make که معمولا زمان می برد و بعد از تمام شدن به خط فرمان بر می گردیم . دستور زیررا تایپ می کنیم
# make install
دستور بالا برنامه vlc را بر روی سیستم من نصب می کند.
معمولا چه در هنگام make و چه در هنگام make install در ترمینال یک سری خطو ط نمایش داده می شود که فرآیند make و make install را به ما نشان می دهد
مثلا ممکن است این فرآینده به شکل زیر نمایش داده شود
_STRFTIME -DLSOF_VSTR=\"7.2-RELEASE-p4\" -I/usr/src/sys -O2 -c node.c
cc -fno-strict-aliasing -pipe -DHASRPCV2H -DHASEFFNLINK=i_effnlink -DHASF_VNODE -DHASSBSTATE
-DHAS_KVM_VNODE -DHAS_UFS1_2 -DHAS_NO_SI_UDEV -DHAS_SI_PRIV -DHAS_SYS_SX_H -DHAS_ZFS -DHAS_V_
LOCKF -DHAS_LOCKF_ENTRY -DFREEBSDV=7020 -DHASFDESCFS=2 -DHASPSEUDOFS -DHASNULLFS -DHASIPv6
-DHAS_STRFTIME -DLSOF_VSTR=\"7.2-RELEASE-p4\" -I/usr/src/sys -O2 -c print.c
cc -fno-strict-aliasing -pipe -DHASRPCV2H -DHASEFFNLINK=i_effnlink -DHASF_VNODE -DHASSBSTATE
-DHAS_KVM_VNODE -DHAS_UFS1_2 -DHAS_NO_SI_UDEV -DHAS_SI_PRIV -DHAS_SYS_SX_H -DHAS_ZFS -DHAS_V_LOCKF
-DHAS_LOCKF_ENTRY -DFREEBSDV=7020 -DHASFDESCFS=2 -DHASPSEUDOFS -DHASNULLFS -DHASIPv6 -DHAS_
STRFTIME -DLSOF_VSTR=\"7.2-RELEASE-p4\" -I/usr/src/sys -O2 -c proc.c
cc -fno-strict-aliasing -pipe -DHASRPCV2H -DHASEFFNLINK=i_effnlink -DHASF_VNODE -DHASSBSTATE
-DHAS_KVM_VNODE -DHAS_UFS1_2 -DHAS_NO_SI_UDEV -DHAS_SI_PRIV -DHAS_SYS_SX_H -DHAS_ZFS -DHAS_V_
LOCKF -DHAS_LOCKF_ENTRY -DFREEBSDV=7020 -DHASFDESCFS=2 -DHASPSEUDOFS -DHASNULLFS -DHASIPv6
خوب بعد از make install دستور زیر را وارد می کنیم
# make clean
در هنگام make یک فولدر به نام work ایجاد می شود که محلی برای make می باشد . با دستور بالا این فولدر یاک شده و اگر چنانچه دستکاری در بعضی فایل ها برای نصب شده است پاک شده و فایل به حالت اول خود بر می گردد.
ما می توانیم ۳ دستور بالا را در یک دستور ادغام کنیم و تایپ کنیم
#make install clean
در بعضی از package ها بعد از تایپ make install clean یک صفحه آبی رنگ باز می شود و گزینه هایی را به شما نشان می دهد و از شما می خواهد که این برنامه یا package با چه config های نصب گردد . شما کافی است option های مورد نظر خود را انتخاب کرده و سپس OK را انتخاب کنید و بعد از آن مراحل نصب آغاز می گردد.