۱۳۹۰ اسفند ۱۴, یکشنبه

نصب پکیج‌ها در دبیان به روش کامپایل

درود

بعداز مدتی که کاملا وبلاگم تعطیل بود (به علت لوکال شدن نوشته‌هام!) دویاره اومدم تا یه پست جدید اضافه کنم!
یکی از مزایای توزیع جنتو که به شخصه چند وقته درگیرش هستم نصب پکیج‌های جدید از روی سورس به صورت کاملا کامپایل هست که این توزیع رو قدرتمند ، پایدار و البته خاص می‌کنه !
این مورد رو نقص دیگر توزیعاتی که بر مبنای نصب پکیج‌های از پیش آماده شده‌ی باینری در مخازنشون هستن معرفی می‌کنند . البته اگر کمی دقیق‌تر نگاه کنیم در همان توزیعات هم می‌شه با دانلود پکیج‌ها از سرو‌ر‌هاشون و کامپایل اون‌ها به این خواسته برسیم اما اگر باز هم دقیق‌تر شویم مشکلی که در این روش وجود داره به وضوح(البته اگر تجربه کرده باشیم!) قابل دیدن هست.
در قسمت شرح ویژگی توزیع جنتو به این نکته اشاره کردم که کامپایل به صورت کامل انجام می‌شه یعنی تمامی پیش‌نیازها هم در صورت نیاز دانلود و کامپایل می‌شن (هیچ‌کجای این توزیع از فایل باینری خبری نیست!)! این مزیت در جنتو، مشکلی هست در دیگر توزیعات که در حالتی‌که از روش دستی برای کامپایل استفاده شود ممکن است پیش‌نیازهای آن پکیج به طور کامل با پکیج‌ اصلی مچ(هماهنگ) نباشند و این مهم باعث بروز مشکل در اجرای هرچه بهتر برنامه‌ها و گاها خراب نصب شدن آن‌ها می‌شود.

این مشکل در توزیعات دبیان بیس(تا اونجایی که بنده اطلاع دارم!) تا حدود زیادی حل شده هست و ابزار خط‌فرمانی apt به ما در نصب پکیج‌ها به صورت تقریبا کاملا کامپایل[س.۱] کمک ‌می‌کنه! کلیت این روش رو در زیر شرح خواهم داد:
جهت دسترسی به کدهای منبع برنامه‌ها می‌بایست از مخازن زیر استفاده کرد که با deb-src از مخازنی که به فایل‌های باینری دسترسی دارند جدا می‌شود، برای نمونه در debian-testing این مخزن برای پکیج‌های اصلی بدین صورت می‌باشد و می‌بایست در فایل لیست مخازن در مسیر etc/apt/sources.list اضافه شود :

deb-src http://ftp.debian.org/debian/ testing main contrib non-free

برای نصب یک پکیج(در این نمونه ابزار دانلود تورنت transmission) از سورس، ابتدا با استفاده از دستور زیر تمامیه پیش‌نیازهای بسته دانلود و نصب می‌شن :

# apt-get build-dep transmission
سپس به پوشه‌ای که برای این کار ساخته شده رفته و از دستور زیر استفاده می‌کنیم،این دستور سورس خود برنامه را دانلود و در صورت نیاز (ویژگی b-) شروع به کامپایل آن با استفاده از کد منبع دانلود شده می‌کند:
#cd ~/Desktop/trans-src/ 
#apt-get source -b transmission
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    NOTICE: 'transmission' packaging is maintained in the 'Git' version     control system at:
    git://git.debian.org/git/collab-maint/transmission.git
    Need to get 3,877 kB of source archives.
در صورت استفاده از آپشن(ویژگی) b- عملیات کامپایل به صورت خودکار و پس از دانلود سورس انجام خواهد شد.
پس از اجرای دستورات فوق شما در دایرکتوری موردنظر فایل‌هایی با پسوند deb. خواهید داشت که برای توزیع شما و البته هماهنگ با سیستم شما تولید شده‌اند. در مرحله آخر می‌بایست  از دستور زیر استفاده کرده و تمامی پکیج‌های ساخته شده را نصب کنید:

#dpkg -i *.deb

 استفاده از این روش برای نصب پکیج‌ها از سورس، بسیار بهتر از روش دستی بوده، چرا که عملیات کامپایل بوسیله فایل دانلود شده با فرمت debian.tar.bz2 هماهنگ با توزیع مورد استفاده خواهد شد(در اینجا دبیان) .


======
س.۱ :سوالی که برای من در این موضوع پیش‌آمد این بود که در مرحله نصب پیش‌نیازها (build-dep) پکیج‌هایی که نصب می‌شوند از فایل‌های باینری استفاده می‌کنند و نصب می‌شوند یا از طریق سورس و کامپایل! [پ.۵]

======
پ.۱ : برای اطلاعات بیشتر می‌توانید از لینک و یا لینک استفاده کنید.
پ.۲ : تمامی موارد ذکر شده در توزیع debian-testing تست شده، پس در صورت استفاده از توزیع دیگری در صورت نیاز کمی تغییر در موارد فوق بدیهی خواهد بود.
پ.۳ : با ویژگی s- می‌توانید تمامی دستورات apt را شبیه‌سازی کنید، بدون انجام هیچ کاری.
پ.۴ : گاها هزینه نصب پکیج از سورس کمی بالا خواهد بود، برای نمونه دانلود سورس‌ها و پیش‌نیازها ویا نصب آن‌ها که زمان و البته منابع سیستمی بالایی را به کار می‌گیرد!
پ.۵ : (البته به طور قطع مشخص است که از فایل‌های باینری برای نصب پیش‌نیازها استفاده ‌مشود و تنها برای نصب خود پکیج اصلی از سورس و عملیات کامپایل!)

هیچ نظری موجود نیست:

ارسال یک نظر