برنامه های مختلفی در دنیای BSD وجود دارد که به شما اجاره می دهد بتوانید کارهای بسیاری با سیستم خود انجام دهید. OpenBSD هم از این قانون پیروی می کند. راه هایی بسیار ساده در این سیستم عامل برای نصب برنامه های مختلف قرار گرفته که کار کاربر را دراین زمینه ساده می کند. یکی از این قابلیت های بسیار خوب به port معروف است که از ساختار OpenBSD برای نصب به صورت کامل پیروی می کند.

هدف نهایی سیستم port ایجاد بسته های باینری است که این بسته دیگر نیازی به کامپایل شدن ندارد و در زمان و هزینه به شما کمک می کند و بسیار ساده و با استفاده از یک فرمان، نصب و یا پاک می شوند. به این نکته توجه کنید که برنامه هایی که از طریق این سیستم ها نصب می شوند مثل خود سیستم عامل OpenBSD که بر امنیت تاکید دارد شاید امن نباشد. در نصب برنامه ها دقت کنید و همیشه در سایت برنامه مریوطه به دنبال ایرادهای امنیتی باشید.

 

مدیریت Package:

بسته ها فایل های از قبل کامپایل شده ای هستند که به راحتی با استفاده از برنامه هایی که با pkg* شروع می شوند قابل مدیریت هستند. برای شروع به شرح مختصری از سه فرمان مهم این بخش می پردازیم:

۱٫(pkg_add(1: این فرمان برای نصب و به روزرسانی بسته ها مورد استفاده قرار می گیرند.

۲٫(pkg_delete(1: این فرمان بسته های نصب شده را پاک می کند.

۳٫(pkg_info(1: این فرمان اطلاعاتی در مورد بسته های نصب شده را به شما نشان می دهد.

به منظور اجرای صحیح، مثلا برنامه X خودش به دو برنامه Y و Z نیاز دارد که نصب شده است در نتیجه برنامه X وابسته است به این دو برنامه، در نتیجه YوZ می شوند وابستگی به X . به نوبه خود برنامه Y به دو برنامه دیگر نیاز دارد و برنامه Z هم برای راه اندازی شدن به یک برنامه دیگر نیاز دارد به این ترتیب یک درخت وابستگی ایجاد می شود. هر بسته نرم افزاری به .tgz ختم می شود. این بسته ها در واقع شامل یک سری اطلاعات اضافه هم هستند که برنامه pkg_add(1) به خاطر دلایل زیر از آن استفاده می کند:

۱٫ چک کردن تفاوت ها: بسته نصب شده هیچ تداخلی با بسته ها و یا فایل های دیگر نداشته باشد.

۲٫وابستگی ها: به صورت خودکار برنامه هایی که برنامه به آن نیاز دارد را دریافت می کند و قبل از نصب برنامه بسته های وابسته را نصب می کند.

۳٫ اطلاعات هر بسته در مسیر /var/db/pkg/ به صورت پیش فرض قرار می گیرد این کار باعث می شود تا وابسته های بسته قبل از خود آن بسته پاک شود و کمک می کند که به صورت تصادفی توسط کاربران دیگر هم بسته پاک نشود.

راحت تر کردن کار با استفاده از PKG_PATH:
با استفاده از متغییر PKG_PATH کار شما آسان می شود و به برنامه pkg_add(1) مسیر می دهد تا بتواند از آن مسیر فایل های خود را دریافت و نصب کند. در زیر در این مورد مثال هایی مشاهده می کنید:

دریافت کردن بسته ها از طریق CD:
برای این منظور cd دستگاه خود را به شاخه زیر mount کنید و بعد فرمان زیر را اجرا کنید:

$ export PKG_PATH=/mnt/cdrom/5.0/packages/`machine -a`/

دریافت بسته از طریق سرورهای FTP:
آدرس ذکر شده در مثال زیر یک آدرس فرضی است و شما می توانید برای خود یک سرور FTP راه اندازی کنید و فایل های برنامه را در مسیر دلخواه قرار دهید و به صورت زیر فرمان را اجرا کنید:

$ export PKG_PATH=ftp://your.ftp.mirror/pub/OpenBSD/5.0/packages/

یک پیشنهاد خوب این است که این مسیر را در فایل ~/.profile قرار دهید. شما می توانید چند مسیر را با استفاده از / از هم جدا کنید تا اگر بسته مربوطه در یک مسیر وجود نداشت برنامه نصب به صوت خودکار مسیر بعدی را چک کند.

پیدا کردن بسته ها:
مجموعه زیادی از بسته های از پیش کامپایل شده در دسترس است. مسیرهای زیر را نگاهی کنید:

یکی از این مسیرها در cd وجود دارد البته باید این CD را از طریق سایت خریداری کنید، در غیر این صورت این فایل ها در CD وجود ندارد و شما باید مسیر بعدی را چک کنید.

مسیر بعدی ftp سرور پروژه OpenBSD این مسیر به صورت /pub/OpenBSD/5.0/packages است.

اگر شما از سیستم port استفاده می کنید با استفاده از فرمان زیر می توانید جستجو انجام دهید:

$ make search key=rsnapshot

البته این فرمان ها به صورت کامل در ادامه توضیح دااده می شود.

نصب بسته های جدید:
برای نصب کردن برنامه جدید باید از برنامه pkg_add استفاده کنید. مثالی از این برنامه در زیر نمایش داده شده:

$ sudo pkg_add -v screen-4.0.3p1
parsing screen-4.0.3p1
installed /etc/screenrc from /usr/local/share/examples/screen/screenrc | 71%
screen-4.0.3p1: complete

در مثال بالا از سویچ -v استفاده شده تا مقدار بیشتری خروجی برای شما نمایش داده شود. از سیستم عامل ۳٫۹ به بعد OpenBSD یک حالت تعاملی به برنامه pkg_add اضافه شد که این حالت با استفاده از سویچ –i فعال می شود این حالت در مثال زیر توضیح داده شده:

$ sudo pkg_add -i screen
Ambiguous: screen could be screen-4.0.3p1 screen-4.0.3p1-shm screen-4.0.3p1-static
Choose one package
۰:
۱: screen-4.0.3p1
۲: screen-4.0.3p1-shm
۳: screen-4.0.3p1-static
Your choice: 1
screen-4.0.3p1: complete

لیست کردن بسته های نصب شده:
برای مشاهده کردن بسته های نصب شده از برنامه pkg_info استفاده کنید خروجی این برنامه را در مثال زیر مشاهده می کنید:

$ pkg_info
aterm-0.4.2p1 color vt102 terminal emulator with transparency support
bzip2-1.0.4 block-sorting file compressor, unencumbered
expat-2.0.0 XML 1.0 parser written in C
fluxbox-0.9.15.1p0 window manager based on the original Blackbox code
gettext-0.14.6 GNU gettext
imlib2-1.3.0 image manipulation library
jpeg-6bp3 IJG’s JPEG compression utilities
libiconv-1.9.2p3 character set conversion library
libltdl-1.5.22p1 GNU libtool system independent dlopen wrapper
libungif-4.1.4p0 tools and library routines for working with GIF images
libutf8-0.8 provides UTF-8 locale support
mutt-1.4.2.2i tty-based e-mail client
pcre-6.4p1 perl-compatible regular expression library
png-1.2.14p0 library for manipulating PNG images
screen-4.0.3p1 multi-screen window manager
tcsh-6.14.00p1 extended C-shell with many useful features
tiff-3.8.2p0 tools and library routines for working with TIFF images
tin-1.8.2p0 threaded NNTP and spool based UseNet newsreader

بروزرسانی بسته های نصب شده:
برای بروزرسانی بسته های نصب شده از سویچ -u در برنامه pkg_add استفاده کنید در زیر یک مثال در این مورد مشاهده می کنید:

$ sudo pkg_add -u unzip
unzip-5.52p0 (extracting): complete
unzip-5.52 (deleting): complete
unzip-5.52p0 (installing): complete
Clean shared items: complete

فقط به این نکته توجه کنید که این سویچ به متغیر PKG_PATH متکی است. اگر این متغیر تعیین نشود کار بروزرسانی انجام نمی شود.

پاک کردن بسته های نصب شده:
برای پاک کردن بسته های نصب شده کافی است که نام بسته مورد نطر را در مقابل فرمان pkg_delete قرار دهید برای پیدا کردن نام بسته از فرمان pkg_info استفاده کنید. یک مثال در این مورد در زیر نمایش داده شده است:

$pkg_delete screen
screen-4.0.3p1: complete
Clean shared items: complete