گاه نوشته های مهدی بیاضی

tail -f /dev/mind > blog

گاه نوشته های مهدی بیاضی

tail -f /dev/mind > blog

طبقه بندی موضوعی

۲ مطلب با کلمه‌ی کلیدی «compile» ثبت شده است

بحث بسته های باینری نصب نرم افزار در FreeBSD از سالیان دور محل بحث و مقایسه های بسیاری بوده. افراد مختلف با دلایل و اهداف متفاوت دو روش Port (نصب از روی سورس برنامه ها) و روش باینری (*_pkg) رو بررسی کرده اند. خیلی ها روش استفاده از سیستم port یا نصب نرم افزار با استفاده از سورس رو ترجیح می دهند. دلایل مختلفی هم وجود داره. اولا این بسته های سورس یا همون سیستم port فری بی اس دی معمولا به روز هست. یعنی آخرین تغییرات رو می شه داخلشون پیدا کرد در حالی که سیستم باینری و سرور های اون با یک تاخیر به روز می شوند و ممکنه آخرین نسخه هارو نداشته باشند. از طرفی با کامپایل یک برنامه می شه تغییراتی در روند کامپایل و حتی سورس برنامه ایجاد کرد. اینطوری دست کاربران حرفه ای بازتر هست تا برنامه هایی بهینه شده تر با نیاز های خودشون داشته باشند. اما برخی مواقع هدف و نیاز کاربر از سیستم نصب نرم افزار سادگی و سرعت هست ! اینجا هست که ابزار های مدیریت بسته وارد می شوند. از سال ها پیش اکثر توزیع های لینوکس ابزار های مختلف و قدرتمندی برای این منظور توسعه داده اند. برای مثال سیستم apt-get در ابونتو یا yum در فدورا و ...

از سالیان بسیار گذشته با استفاده از دستوراتی چون pkg_add امکان نصب بسته های باینری از پیش کامپایل شده در FreeBSD فراهم بوده اما این دستورات قدیمی هستند و کاستی های زیادی دارند و نیاز های فعلی یک کاربر رو برآورده نمی کنند. این شد که در اواخر سال ۲۰۱۲ تیم توسعه دهنده FreeBSD یک سیستم جدید برای مدیریت بسته های باینری با نام pkgng ارائه کرد. این سیستم شبیه به سیستم apt-get ابونتو بوده و کارکرد مشابهی دارد.

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

# echo "WITH_PKGNG=yes" >> /etc/make.conf
# pkg2ng

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

خط دوم هم اطلاعات همه بسته های قبلی نصب شده رو به سیستم جدید منتقل می کنه.

اگر این دستور اجرا نشد مطمئن بشه نسخه جدید از FreeBSD دارید یا بسته مربوط به pkgng رو نصب کردید.

حالا با استفاده از دستور pkg در ترمینال می تونید از سیستم مدیریت بسته جدید FreeBSD لذت ببرید !

این سیستم ویژگی های جدید بسیاری داره و کار رو خیلی راحتتر می کنه. مخصوصا برای پورت های عادی مثل emacs یا ...

همینطور می شه به امکان نصب مستقیم یک بسته داخل یک Jail و جستجوی ساده و ... اشاره کرد.

۰ موافقین ۰ مخالفین ۰ ۱۴ آبان ۹۲ ، ۱۷:۲۱
مهدی بیاضی

امروز داشتم بسته جدید Postfix رو روی آخرین نسخه پایدار Freebsd (نسخه ۹.۲) نصب می کردم. همه چیز خوب پیش می رفت تا اینکه در مراحل آخر کامپایل یک مشکل عجیب پیش اومد. وقتی سیستم نصب تلاش می کرد کاربر جدیدی با نام postfix بسازه این خطا داده شد:

pw: user 'postfix' disappeared during update

نکته جالب اینکه بعد از این مشکل امکان ساخت یا حذف این کاربر وجود نداشت ! برای ساختن کاربر خطای زیر:

pw: user 'postfix' already exists

و برای حذف این خطا داده می شد:

# pw deluser postfix
pw: no such user `postfix'

مراحل نصب هم که دیگه پیش نمی رفت. اما راه حل این مشکل زیاد سخت نیست. کافی هست که فایل /etc/passwd دوباره ساخته بشه. برای این کار دستور زیر باید اجرا بشه:

# pwd_mkdb -p /etc/master.passwd
۰ موافقین ۰ مخالفین ۰ ۳۰ مهر ۹۲ ، ۱۶:۵۲
مهدی بیاضی