منبع اصلی نوشتار زیر در این لینک قرار دارد

نصب برنامه ها در FreeBSD

FreeBSD مانند لینوکس، سیستم عاملی مبتنی بر یونیکس و اپن سورس و آزاد می باشد. در واقع BSD شاخه ای از یونیکس اولیه بود که رایگان در اختیار دیگران قرار نمی گرفت و FreeBSD مبتنی بر BSD اولیه است که اپن سورس و رایگان در اختیار عموم قرار گرفت. در FreeBSD از مجموعه Port ها برای نصب برنامه ها استفاده می شود. پورت ها در زیر دایرکتوری usr/ports/ به صورت دسته بندی شده، قرار دارند. هر پورت  (که در زیر هر دایرکتوری قرار دارد) شامل تمامی فایل ها برای واکشی و کامپایل بسته نرم افزاری و نصب و اجرای آن بر روی سیستم است.در شکل زیر دایرکتوری های درون دایرکتوری usr/ports/ را می بینید که دسته بندی بسته های نرم افزاری را بر اساس نوع آنها نشان می دهد.

زیر هر دایرکتوری مربوط به هر بسته ی نرم افزاری، تمامی فایل های لازم برای کامپایل و اجرای آن بسته نرم افزاری بر روی سیستم وجود دارد. به طور مثال فایل های زیر برای نصب بسته اسکویید در FreeBSD در زیر دایرکتوری مربوط به آن وجود دارد.

cd /usr/ports/www/squid

ls

OUTPUT

Makefile  distinfo  files     pkg-descr

کامپایل بسته نرم افزاری بسیار ساده استف تنها کافیست دستور make install یا make install clean را در زیر دایرکتوری مربوط به بسته نرم افزاری اجرا کنید. سپس Makefile سورس کد بسته نرم افزاری را واکشی، سپس آنرا از حالت فشرده خارج و Patch ها را اعمال و آنرا کامپایل و نصب می کند. البته امکان دانلود و استفاده از پورت های جدید از FreeBSD repository بر روی سیستم شما که نسبت به آنها قدیمی تر است نیز وجود دارد. شکل زیر بخشی از فایل Makefile مربوط به اسکویید را نشان می دهد که محل واکشی سورس کد بسته نرم افزری squid را مشخص شده است :

اما چگونه محل یک بسته زیر دایرکتوری usr/ports/ را پیدا کنیم؟

برای این کار از دستور whereis به همراه نام بسته نرم افزاری استفاده می کنیم.

whereis PACKAGE_NAME

whereis squid

whereis htop

روش دیگر برای پیدا کردن پورت مربوط به بسته نرم افزاری استفاده از make search name است. توسط روش زیر نخست باید به دایرکتوری usr/ports/ رفته و سپس دستور make search name را به همراه نام بسته مورد نظر اجرا کنید. در خروجی دستور زیر path مسیر پورت مورد نظر را نشان می دهد.

cd /usr/ports

make search name=PACKAGE_NAME

OR

cd /usr/ports;make search name=PACKAGE_NAME

البته می توانید از quicksearch نیز استفاده کنید که خروجی آن خلاصه تر است :

cd /usr/ports;make quicksearch name=PACKAGE_NAME

نصب پورت توسط دستور make install

پس از پیدا کردن محل پورت بسته مورد نظر باید با دستور cd به دایرکتوری آن رفته و سپس با مجوز root دستور make install را اجرا کنید. به طور مثال برای نصب اسکویید

cd /usr/ports/www/squid

make install

پس از واکشی بسته از محل مشخص شده در فایل Makefile ممکن است که صفحه ای مانند زیر نشان داده شود که Option ها یا گزینه های پیکربندی را برای بسته انتخاب کنید. توجه کنید که با استفاده از پورت ها مانند آنچه که به طور معمول در روند کامپایل سورس کد ها انجام می دهید، نیز در روند نصب پورت صورت می گیرد. پس شکل زیر مانند آن است که در هنگام کامپایل یک بسته جلوی دستور configure/. گزینه های پیکربندی آنرا مشخص کنید.

شکل زیر که مربوط به نصب Apache 2.2 است را نشان می دهد که بسته در حال واکشی (Fetch) شدن از منبع سورس کد که در Makefile مشخص شده است.

برای پاک شدن خودکار فایل tar (سورس کد) دانلود شده به جای make install از دستور زیر استفاده کنید :

make install distclean

و برای حذف بسته نصب شده از دستور زیر استفاده کنید. به طور مثال برای حذف بسته iftop

whereis iftop

Output : /usr/ports/net-mgmt/iftop

cd /usr/ports/net-mgmt/iftop

make deinstall

اگر دستور make deinstall را اجرا کنید و بسته نصب نشده باشد خطای زیر نشان داده می شود :

iftop not installed, skipping



برچسب ها : , , , , ,