mozhgan
08-21-2011, 01:27 AM
بستههای نرمافزاری چه هستند و چرا به آنها نياز داريم؟
هنگامی که توزیع لینوكس خود را نصب میکنید، اکثر نرمافزارهای مورد نيازتان همراه آن نصب میشود. ولی با این حال پیش میآید که نياز به بستههای دیگری داشته باشید و یا بستههای نرمافزارهای موجود را بخواهید به نسخههای جدیدتر ارتقا دهید. در چنین مواردی است که باید بستههای جدید را روی 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
نصب برنامه های کاربردی در لینوکس ردهت
بیشتر برنامه هایی که نیاز به نصب آنها دارید، به صورت فرمت rpm موجود هستند. در صورتی که هیچ بسته rpm ای برای نرمافزار مورد نظرتان پیدا نکردید، میتوانید از کد منبع نرمافزار استفاده کنید و خودتان نرمافزار مورد نیاز را کامپایل و نصب کنید.
نصب و مدیریت بسته های rpm
هنگامی که یک برنامه کاربردی که با فرمت rpm است به دستتان میرسد، این بسته معمولا فقط شامل یک فایل است. دستوری که شما برای مدیریت و استفاده از بسته های نرمافزاری rpm استفاده میکنید، دستور rpm است.
برای مدیریت بسته های rpm ، دستور rpm گزینههایی را برای لیست کردن بستههای نصب شده، ارتقا بستههای نصب شده، بدست آوردن اطلاعات از محتویات یک بسته و .... ارائه میکند. همچنین گزینههایی وجود دارند که توسط آنها میتوانید بررسی نمایید که کلیه فایلهای یک بسته نصب شده وجود داشته و تغییر نکرده باشند. دستور rpm در حالتهای زیر کار میکند:
- نصب نرمافزار (install) با گزینه i
-ارتقا نرمافزار (Upgrade) با گزینه U
- کسب اطلاعات از بسته (Query) با گزینه q
- چک کردن بسته (Verify) با گزینه V
- بررسی امضا بسته (Signature check) با گزینه checksig
- برداشتن بسته (Uninstall) با گزینه e
-ساخت بسته (Build) با گزینه b
-ساخت مجدد بانک اطلاعاتی (Rebuild Database) با گزینه rebuilddb
- تصحیح مجوزها (Fix Permissions) با گزینه setperms
- تعیین مالک/گروه (Set Owners/groups) با گزینه setugids
با استفاده از این گزینهها میتوانید بسته های rpm را نصب کرده، صحت نصب بسته ها را بررسی کنید و اشکالات احتمالی را برطرف نمایید.
هشدار : برای نصب یا برداشتن بسته های rpm باید با کاربر ریشه وارد سیستم شده باشید. نمایش بستههای نصب شده، کسب اطلاعات از بسته و نمایش محتویات بسته نیاز به داشتن مجوز ریشه ندارد.
هنگامی که توزیع لینوكس خود را نصب میکنید، اکثر نرمافزارهای مورد نيازتان همراه آن نصب میشود. ولی با این حال پیش میآید که نياز به بستههای دیگری داشته باشید و یا بستههای نرمافزارهای موجود را بخواهید به نسخههای جدیدتر ارتقا دهید. در چنین مواردی است که باید بستههای جدید را روی 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
نصب برنامه های کاربردی در لینوکس ردهت
بیشتر برنامه هایی که نیاز به نصب آنها دارید، به صورت فرمت rpm موجود هستند. در صورتی که هیچ بسته rpm ای برای نرمافزار مورد نظرتان پیدا نکردید، میتوانید از کد منبع نرمافزار استفاده کنید و خودتان نرمافزار مورد نیاز را کامپایل و نصب کنید.
نصب و مدیریت بسته های rpm
هنگامی که یک برنامه کاربردی که با فرمت rpm است به دستتان میرسد، این بسته معمولا فقط شامل یک فایل است. دستوری که شما برای مدیریت و استفاده از بسته های نرمافزاری rpm استفاده میکنید، دستور rpm است.
برای مدیریت بسته های rpm ، دستور rpm گزینههایی را برای لیست کردن بستههای نصب شده، ارتقا بستههای نصب شده، بدست آوردن اطلاعات از محتویات یک بسته و .... ارائه میکند. همچنین گزینههایی وجود دارند که توسط آنها میتوانید بررسی نمایید که کلیه فایلهای یک بسته نصب شده وجود داشته و تغییر نکرده باشند. دستور rpm در حالتهای زیر کار میکند:
- نصب نرمافزار (install) با گزینه i
-ارتقا نرمافزار (Upgrade) با گزینه U
- کسب اطلاعات از بسته (Query) با گزینه q
- چک کردن بسته (Verify) با گزینه V
- بررسی امضا بسته (Signature check) با گزینه checksig
- برداشتن بسته (Uninstall) با گزینه e
-ساخت بسته (Build) با گزینه b
-ساخت مجدد بانک اطلاعاتی (Rebuild Database) با گزینه rebuilddb
- تصحیح مجوزها (Fix Permissions) با گزینه setperms
- تعیین مالک/گروه (Set Owners/groups) با گزینه setugids
با استفاده از این گزینهها میتوانید بسته های rpm را نصب کرده، صحت نصب بسته ها را بررسی کنید و اشکالات احتمالی را برطرف نمایید.
هشدار : برای نصب یا برداشتن بسته های rpm باید با کاربر ریشه وارد سیستم شده باشید. نمایش بستههای نصب شده، کسب اطلاعات از بسته و نمایش محتویات بسته نیاز به داشتن مجوز ریشه ندارد.