انواع بسته های نرم افزاری در محیط لینوکس

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

بسته‌های نرم‌افزاری کار نصب نرم‌افزارهای کاربردی را در لینوکس آسان کرده‌اند. دیگر لازم نیست برای نصب هر نرم‌افزار، کاربر کدهای منبع را دریافت کرده، آنها را کامپایل نموده و نصب کند. کاری که بسیاری از کاربران از انجام آن ناتوان هستند.

همانطور که متوجه شدید، بسته‌های نرم‌افزاری حاوی برنامه‌های قابل اجرا و آماده برای نصب هستند. ممکن است در اینترنت به انواع مختلفی از بسته‌های نرم‌افزاری برخورد نمایید که البته همه آنها حاوی نرم‌افزارهای آماده برای نصب نیستند که جلوتر درباره آنها توضیح خواهم داد. پر کاربردترین بسته‌های آماده نصب نرم‌افزارهای کاربردی، بسته‌های نوع rpm و deb هستند. در این مقاله ما به بررسی بسته‌های نرم‌افزاری با فرمت rpm و مدیریت آنها خواهیم پرداخت و در مقاله جداگانه‌ای، مدیریت بسته‌های deb را که مخصوص لینوکس debian و توزیع‌های مبتنی بر آن است را بررسی خواهیم کرد.

درک نامگذاری و فرمت بسته های نرم‌افزاری

وقتی بسته ای را از اینترنت دانلود می‌کنید، می‌بینید که از یک نام، تعدادی شماره، نقطه، gz و tar تشکیل شده است. خوب اینها چه معنی دارند؟ ابتدا این اعداد و حرفها پیچیده به نظر می‌رسند در صورتی که اگر برایتان شرح داده شوند، بسیار ساده هستند. پس از مدتی به این شیوه نامگذاری عادت خواهید کرد. بیشتر بسته های نرم‌افزاری لینوکس از قاعده نامگذاری GNU استفاده می‌کنند. مثال‌های زیر فرمت‌های گوناگون بسته های نرم‌افزاری را نشان می‌دهد :

mycoolapp-4.2.3.i386.rpm
mycoolapp-4.2.3.tar.gz
mycoolapp-4.2.3.src.tar.gz
mycoolapp-4.2.3.bin.SPARC.tar.gz
mycoolapp-4.2.3.bin.ELF.static.tar.gz

این مثالها بسته های مختلف یک نرم‌افزار هستند. نام این بسته نرم‌افزاری mycoolapp است. پس از نام بسته ، شماره نسخه آن که 4.2.3 است قرار دارد. اولین شماره شماره اصلی یا major، دومین شماره شماره فرعی یا minor و آخرین شماره شماره وصله یا patch است. پس از شماره نسخه، نقطه ای قرار دارد که بعد از آن بخش های انتخابی قرار دارند که نشانگر محتوای بسته و چگونگی فشرده سازی آن هستند.

خط نخست یک بسته نرم‌افزاری rpm را نشان می‌دهد. rpm مخفف Redhat Package Manager است. i386 که قبل از rpm قرار دارد، نشان دهنده این است که بسته حاوی نرم‌افزار اجرایی برای کامپیوترهای PC معمولی است. فرمت rpm که ابتدا توسط Redhat ارائه شد، اکنون تبدیل به یک استاندارد برای پخش بسته های نرم‌افزاری لینوکس شده است. ببیشتر توزیع‌های لینوکس مانند ردهت، زوزه، ماندریک و... از این سیستم بسته بندی نرم‌افزار استفاده می‌کنند.

rpm در مقابل کد منبع

بسته هایی که بصورت فرمت rpm ارائه می‌شوند به سادگی قابل نصب بوده و برداشتن آنها نیز به سادگی امکان پذیر است. برای مدیریت بسته‌های rpm هم ابزارهای گرافیکی و هم ابزارهای متنی وجود دارند. در صورتی که در دنیای لینوکس تازه کار هستید، همیشه سعی کنید از این فرمت برای دریافت نرم‌افزارها استفاده نمایید.

- RPM: نصب نرم‌افزارها با استفاده از بسته‌های rpm بسیار آسان است. برای نصب یک بسته rpm شما نیازی به دانستن اطلاعاتی در مورد makefile ها و کامپایلرها ندارید. همانطور که در بالا نیز اشاره کردم، ابزارهایی نیز برای مدیریت این بسته‌ها فراهم آمده است. هنگامی که یک بسته rpm را نصب می‌کنید، ابزارهای rpm سایر نرم‌افزارهای احتمالی مورد نیاز این بسته را نیز بررسی کرده و در صورت نیاز به نصب بسته دیگری به شما اعلام میکنند.

- کد منبع (Source Code) : برخی اوقات تا ایجاد بسته های rpm یک نرم‌افزار، مدتی طول می‌کشد. در این مواقع باید از کد منبع آن استفاده کنید. همچنین می‌توانید با ایجاد تغییراتی در کد منبع نرم‌افزار، آنرا برای خود مناسبتر کنید. اکثر کاربران حرفه ای لینوکس کار کردن با کد منبع را ترجیح می‌دهند.

خوب به مثال بالا برمی‌گردیم. در دوخط بعدی بسته‌هایی قرار دارند که حاوی کد منبع نرم‌افزار هستند. هـمـانطور که مـی‌بـینید، این بسته‌ها توسط دستور tar آرشیو شده (tar) و توسط دستور gzip فشرده شده‌اند (gz). شما از این دو فرمان برای باز کردن و خارج کردن از حالت فشردگی بسته‌های نرم‌افزاری استفاده خواهید کرد.

بین شماره های نسخه و پسوند های tar.gz بخش های اختیاری می‌توانند قرار گیرند. این بخش ها توسط نقطه از هم جدا می‌شوند و اطلاعات خاصی مانند نوع پردازنده‌ای که کدهای اجرایی بر روی آنها اجرا خواهد شد، نوع کدهای اجرایی و ... را فراهم می‌کنند. برای مثال bin.SPARC نشان می‌دهد که بسته حاوی کدهای اجرایی است که بر روی ایستگاههای کاری مبتنی بر پردازنده‌های SPARC اجرا خواهد شد.

استفاده از انواع گوناگون آرشیوها و فرمت مستندات

بسیاری از بسته‌های نرم‌افزاری که به یک توزیع خاص (مانند ردهت، SuSE، Debian و...) وابسته نیستند از روش tar/gzip برای فشرده سازی و آرشیو کردن فایل‌ها استفاده می‌کنند. البته ممکن است در سایتهای FTP لینوکس به فرمت‌های دیگری نیز بر بخورید. لازم به ذکر است که برخی از این فایلها مستندات همراه نرم‌افزار بوده و کد منبع یا اجرایی نیستند.

جدول زیر فرمت های مختلف فایلی که شما هنگام چرخش در سایتهای FTP لینوکس مشاهده خواهید کرد .برای اینکه بدانید یک فایل دارای چه فرمتی است، می‌توانید از دستور file استفاده کنید. به مثال زیر توجه کنید :

$ file telnet.htm
telnet.htm: HTML document text

فرمت

پسوند

شرح

Gzip file

gz or .z

این فایل با استفاده از ابزار GNU gzip فشرده شده است. این فایل توسط ابزارهای gzip یا gunzip باز خواهد شد.

Tar File

tar

این فایل با استفاده از دستور tar آرشیو شده است. این فرمان برای ایجاد یک بسته از چند فایل بکار می‌رود. برای باز کردن این آرشیو از خود دستور tar استفاده می‌شود.

Bzip2

bz2

این فایل با استفاده از برنامه bzip2 فشرده شده است. میزان فشرده سازی این برنامه از gzip بیشتر است.

Tar/compressed

taz or .tz

این فایل توسط دستور compress یونیکس فشرده شده است.

Linux Software Map

lsm

این فایل حاوی متنی است که محتویات یک آرشیو را نشان می‌دهد.

Debian binary package

deb

این فایل یک بسته نرم‌افزاری است که توسط ابزارهای لینوکس debian ایجاد شده است.

Redhat Package Manager

rpm

این فایل بسته نرم‌افزاری است که با استفاده از ابزارهای rpm ایجاد شده است و غیر از ردهت، توسط توزیع کنندگان دیگر لینوکس هم استفاده می شود.