یکی از معروف ترین
بسته های نرم افزاری لینوکس بسته های RPM میباشد.RPM مخفف RedHat
Pakage Manager می باشد ،همان طور که از اسم آن بر می آید ابداع شرکت
RedHat Linux می باشد اما در توزیع های مختلفی از این بسته ها استفاده می
شودو جالب تر این که از این بسته ها می توانید در سیستم های شبه یونیکس
دیگر مانند FreeBSD و SunSolaries نیز قابل استفاده هستند.بسته های RPM با
پسوند rpm شناخته می شوند .
از جمله توزیع هایی که از بسته های rpm استفاده می کنند می توان لینوکس
Mandrake وLinuxPCC و لینوکس YellowDog را که بر پایه ی ردهت است و برای
سیستم های با پردازنده ی PowerPC طراحی شده و نیز توزیع SuSE را نام
برد.البته توزیع های دیگری نیز از این بسته ها استفاده می کنند
.برای مدیریت بسته های rpm شما می توانید از مدیر بسته های rpm استفاده
کنید. اگر می خواهید در خط فرمان و براساس محیط متنی کار کنید می توانید
از دستور rpm برای مدیریت استفاده کنید. اما اگر می خواهید از محیط
گرافیکی برای مدیریت استفاده کنید با توجه به توزیع شما این ابزار متفاوت
است. کاربران SuSE با ابزار YaST می توانند این کار را بکنند ،کاربران
Mandrake می توانند با rpmdrake بسته هایشان رامدیریت کنند. البته باید
توجه داشته باشید که SuSE و Mandrake گاهی از بسته های rpm مخصوص خود
استفاده می کنند که جز آن توزیع در توزیع دیگری قابل استفاده نمی باشد.
بسیارخوب تا این جا بسته های RPM را شناختیم ، حال
قبل از معرفی بسته های DEB به نحوه ی نام گذاری بسته های RPM خواهیم
پرداخت. برای آن که کاربران با دیدن نام بسته ی rpm به راحتی بتوانند
متوجه محتویات آن بشوند از یک استاندارد برای نام گذاری این بسته ها
استفاده می شود.این نام گذاری مانند زیر است :
pakagename-a.b.c-x.arch.rpm
در این نام گذاری همان طور که معلوم است از سمت چپ اولین بخش نام نرم افزار اصلی ماست مثلا xchat یا gaim اما سایر اجزا :
.a.b.c نسخه ینرم افزاری است که دردست دارید، این شماره نسخه را اغلب نویسنده ی برنامه تعیین می کند مثلا 2.2.6 یا 5.6.7a.
x این شاره
به شماره ی build number یا relase number معروف است.(شماره ی انتشار
!)این شماره در واقع نشان دهنده ی تغییرات کوچکیست که اغلب هم کار نویسنده
ی برنامه نیست مثلا یک وصله یا Patch برای رفع یک مشکل (bug) یا یا تغییر
یک فایل نصب یا اضافه شدن یک فایل راهنما یا help یا Documentation به
فایل .
arch این بخش از نام مربوط می شود به معماری پردازنده
ای که از آن استفاده می کنید. بسته های RPM برروی معماری های مختلفی از
پردازنده قابل اجراست ،از جمله x86 یا SPARC یا Alpha نیزIA-64
بنابر این لازم است که نوع پردازنده ی مورد پشتیبانی را در نام فایل
بگنجانیم تا در آینده بتوانیم به راحتی از آن برای پردازنده ی خودمان
استفاده کنیم.برای پردازنده های x86 این جا i386 نوشته می شود. این
پردازنده ها باقی مانده ی نسل 80386 هستند که شرکت اینتل آن ها را تولید
می کند ،البته باید خاطر نشان کنم که در حال حاضر وقتی می گوییم x86
منظور ما هر پردازنده ای سازگار با این معماری است از جمله
AMD مدل های Duron و Athlon و یا پنتیوم های Pro ,I,II,II,IVو
نیز پنتیوم MMX ویا پردازنده های سازگار با x86شرکت Transmeta یا
Cyrix!! بنابراین امروزه فقط این اینتل نیست که پردازنده های خانواده ی
x86 را تولید می کند. اگر بسته یRPM شما برای پنتیوم بهینه سازی شده
باشداین مقدار 1586 و i686 خواهد بود. البته RPMبرای پردازنده های دیگر
نیز وجود دارد از جمله PowerPC که با ppc مشخص می شود. نکته ی قابل توجه
این است که اگر بسته ی rpm شما محتوی فایل متنی یا Documentation یا هر
چیز دیگری باشد که به پردازنده (CPU) بستگی ندارد این مقدار noarch خواهد
بود.
برای روشن تر شدن این نام گذاری به نام xbill-2.1.3-85.i386.rpm دقت
کنید. xbillنام این نرم افزار است که یک بازی لینوکس است.که بسته ی ما
buildشماره ی 85 نسخه ی 2.13 آن است که برای معماری x86 طراحی شده است.
III. بسته های DEB
بسته ی دیگری که بسیار استفاده می شود ،بسته ی دبیان یا DEB می باشد ،
این بسته ها نیز مانند بسته های RPM هستند و کار کردن با آن ها مانند کار
با RPM ها ساده است. این بسته ها را دبیان توسعه داده است و هم اکنون
توزیع های فراوانی از لیبرانت تا DammnSmallLinux از این بسته ها استفاده
می کنند ،در واقع هر توزیع مبتنی بر دبیان از این بسته ها استفاده می
کند.بسته های rpm و deb را نمی توان به جای یکدیگر استفاده کرد اما می
توان آ نها را به یکدیگر تبدیل کرد ،البته این تبدیل نیز همیشه
موففقیت آمیز نخواهد بود.بسته های دبیان نیز مانند rpm برای معماریهای
متفاوتی نوشته شده است .برای مدیریت بسته های دبیان در خط فرمان از ابزار
dpkg استفاده می شود dpkg بسیار شبیه RedHat pakage Manager یا rpm است
.(منظور ابزار rpm است که برای مدیریت بسته های RPM استفاده می شود.).
البته در دبیان و توزیع های مبتنی بر دبیان ابزار دیگری نیز برای مدیریت
بسته های نرم افزاری در خط فرمان وجودداردکه کار با بسته های نرم افزاری
را بسیار راحت تر و شیرین تر می کند ،این ابزار APT نام دارد.APt مخفف
Advanced Pakage Tool می باشد. (تلفظ کنید اپت /æpt/) یکی از خواص
بستههای RPM وDEB این است که شما نی توانید به راحتی و از طریق همین ابزار
های مدیریت بسته بسته های خودرا در چند ثانیه یاحداکثر چند دقیقه به روز
بکنید و لی اگر برنامه ای را از کد منبع آن کامپایل کنید برای هر بار به
روز رسانی مجبورید برنامه را از ابتدا کامپایل کنید.البته برای مدیریت
بسته های نرم افزاری در دبیان نیز برنامه های مختلفی وجوددارد مانند
synaptic ویا برای مدیریت بسته هادر خط فرمان اما کمی راحت تر مانند
dselect . نام گذاری بسته های دبیان نیز مانند RPM است با کمی تفاوت در
ظاهر که برای طولانی نشدن بحث به آن اشاره نمی کنیم.
IV.بسته های Tarball
در حقیقت بسته های Tarball چیزی جز بسته های آرشیو شده نیستند ، این
بسته ها را می توانیددر هر توزیعی استفاده کنید و مانند RPM و DEB وابسته
به توزیع نیستند. بسته های Tarball همان بسته هایی هستند که با ابزار tar
در خط فرمان تولید می شوندو توسط یکی از برنامه های compres یا gzip یا
bzip2 فشرده شده اند. این بسته های فشرده شده فقط حاوی فایل ها هستند و
بعد از باز کردن آن ها می توان در باره ی روش نصب آن ها تصمیم گرفت. بسته
های tarball می توانند مانند RPM و Debian حاوی سورس کد ، فایل های
باینری و همچنین مستندات برنامه باشدالبته در اغلب موارد این بسته ا با
gzip فشرده می شوند که پسوند حاصل tar.gz. می شود و البته برای این که حجم
اطلاعات رد و دلی در اینترنت کمتر شود از فرمت tar.bz2. استفاده می شود که
بسته های آرشیو tar را با برنامه ی bzip2 فشرده کرده اند .(فایل هایی که
با Bzip2 فشرده شده اند از فایل هایی که با gzip فشرده شده اند حجم
کم تری دارند چرا که الگوریتم فشرده سازی در این دو متفاوت است.)
V.اطلاعات ضروری در زمان نصب برنامه
۱.وابستگی های برنامه (Dependencies)
وابستگی های نرم افزاری یا همان Dependencies در
واقع آن برنامه هاو نیاز هایی است که باید داشته باشید تا برنامه ی شما
بتواندکار کند!! درواقع شما برای نصب یک برنامه اغلب به یک پیش نیاز
احتیاج دارید ، مثلا برای بسیاری از برنامه های لینوکس لازم است تا شما
کتابخانه های C را داشته باشید. در واقع وقتی می گوییم یک برنامه فلان
وابستگی ها را می خواهد یعنی اولا بدون آن نیازمندی ها نمی تواند کار کند
و در ثانی می توان نتیجه گرفت که آن برنامه از برنامههایی که در اصطلاح
وابستگی نام دارند برای کار کردن استفاده می کند.
توجه داشته باشید که مفهوم پیشنهادی یا Recommended با وابستگی متفاوت است
،اگر وابستگی ها را نصب نکنید برنامه ی شما کار نخواهد کرد اما اگر
پیشنهادی ها را نصب نکنید برنامه ی شما کار خواهد کرد. پس این Recommended
ها به چه کاری می آیند؟ اگر شما این Recommended هارا نصب کنید برنامه ی
شما بهتر کار می کنه یا بهتر بگویم بازدهی برنامه ی شما بیشتر خواهدشد.
یکی از خواص بسته های Debian وrpm هوشمندی آن ها نصبت به
شناخت این پیش نیاز هاست ،در واقع وقتی شمایک بسته ی Debian را نصب می
کنید خودش به دنبال پیش نیاز ها می گردد و پیش نیاز ها را نیز برای شما
نصب می کند.البته بسته های RPM این هوشمندی راندارند اما برنامه های
مدیریت بسته های rpm این کار را می کنند یعنی زمانی که شما از دستور rpm
برای نصب استفاده می کنید این برنامه است که تشخیص می دهد ثبل
از نصب باید چه برنامه های دیگری نصب شود و به شمااعلام می کند که این
بسته ا را نیز نصب کنیدو یا خودش نصب می کند. اما بسته های دبیان در ذات
خود این قابلیت را دارا هستند که پیش نیاز هایشان را تشخیص بدهند و
لی بسته های Tarball فاقد این هوشمندی هستند و باید خودتان با مطالعه ی
فایل های README و INSATLL ویا دیگر راهنماهای موجود در بسته یا سایت آن
پیش نیاز ها را یافته و آن ها را نصب کنید.
|
۲.کتابخانه ها(Libraries)
کتابخانه ها همان DLL هایی هستند که شما در ویندوز می شناختید.(که اغلب گم
شده بودند یا به دلیل خرابیشان برنامها کار نمی کرد!!) در لینوکس نیز
کتابخانه ها همان مسئولیت را به عهده دارند اما پسوند خاصی ندارند چرا که
هر زبان از کتابخانه های خوداستفاده می کند.خوب این مسئولیت کتابخانه ها
چیست؟ کتابخانه ها یکسری فایل هستند که شامل یکسری توابع و روتین
برای برنامه می باشند ، شما می توانید یک فایل کتابخانه درست کنید و تمام
توابعی که در برنامه ی شما استفاده می شود را در آن قرار دهید و از برنامه
ی خود بخواهید که این توابع را از فایل مذکور اجرا کند،این کار چه فایده
ای دارد؟ فکر کنید همکار شمانیز می خواهد برنامه ای بنویسید او می تواند
از ابتدا شروع کند و تمام توابع رادر برنامه ی خود تعریف کند ،این کار
باعث صرف وقت بیشتر و خستگی بیشتر و نیز حجم بیشتر فایل ها می شود.راه حل
هوشمندانه این است که توابع مشترک برنامه ها را در یک فایل کتابخانه ای
قرار دهید و هر کسی که به آن توابع احتیاج داشت زمان اجرای برنامه این
توابع را فرابخواند. به این ترتیب لازم نیست که شما هر بار تمام توابع را
تعریف کنید کافیست یکبار این توابع در کتابخانه ای نوشته شوند و کاربران
این کتابخانه ا را در سیستم خودنصب کنند ،حالا شما و همارانتان و دیگران
بدون دغدغه ی حجم زیاد و تعریف مجدد توابع به نوشتن برنامه مشغول می
شوید.(حالا متوجه شدید چرا به این برنامه ها کتابخانه می گویند؟)
از جمله معروف ترین کتابخانه ا می توان به کتابخانه های C اشاره کرد که با
نام libc و در توزیع های مدرن تر به نام glibc وجود دارند و یا کتابخانه ی
معروف +GTK که شما یک بار نصب می کنید و تمام برنامه های محیط گرافیکی
گنوم از آن استفاده می کنند.
|
۳.ابزار های توسعه(Development Tools)
اگر شما تصمیم به کامپایل یک برنامه گرفته
اید باید فایل های کتبخانه ای و ابزار های توسعه ی مربوط به آن برنامه را
داشته باشید. مثلا اگر برنامه ای به زبان C دارید باید یک کامپایلر برای C
داشته باشید و کتابخانه های مربوط به آن را نیز باید در سیستمتان داشته
باشید. اگر شما نیازی به کامپایل برنامه ها ندارید لازم نیست تا ابزار های
توسعه رانیز نصب کنید. درواقع وقتی شما یک برنامه را کامپایل می کنید
مانند این است که شما برنامه نویسید و برنامه رانوشتیدو کد آن راآماده
کردید و می خواهید آن را به زبان ماشین ترجمه کنید،خوب برای این کار به
ابزاری نیاز دارید به نام Development tools که بوسیله ی آن برنامه ی
خودرا کامپایل کنید. برنامه ی معروف gcc جزو این ابزار هاست ، gcc که یک
کامپایلر است و تحت مجوز GNU/GPL نیز منتشر سده است مجموعه ای است از
کامپایلر های زبان های مختلف، البته این اسم آن نیز معلوم است GNU
Compiler Collection!!!!
|
۴.پایگاه داده ی بسته های نصب شده
پایگاه داده ی بسته های نصب شده یا به زبان
ساده تر Installed package Database !! محلی است که اطلاعات بسته های نصب
شده ی سیستم در آن قرار دارد. شاید شما بخواهیدبدانید که فایل
کتابخانه ای X یا Y آیا نصب شده است یا نه؟ یا می خواهید بدانی چه
نسخه ای از برنامه در سیستم شما موجود است ،یا حتی می خواهید بدانید برای
برنامه ی شما چه نیاز مندی هایی لازم است؟ تمام این اطلاعات و اطلاعات
دیگر در یک پایگاه داده ذخیره می شود.برای بسته های Debian این مسیر اغلب
در مسیر var/lib/dpkg/ است و برای RPM این مسیر var/lib/rpm/ است ،اما
برای Tarball هیچ پایگاهی وجود ندارد!! البته توزیع SlackWare خودش توسط
برنامه ای به نام slackware Package Tool یا pkgtool برای بسته های
Tarball ای که از طریق این برنامه نصب می شوند یک پایگاه داده می سازد اما
این فقط مختص توزیع است و این امکان در تمام توزیع ها موجود نیست.به همین
دلیل است که اغلب بسته های Slackware را جزو بسته های هوشمند به شمار نمی
آورند چرا که تنها یک آرشیو فشرده است و حتی نمی تواند وابستگی ها یا
Dependency های خود را پیدا کند.
|
نصب نرم افزار در لینوکس ، تمام آنچه در این مقاله خواندید روش
های مختلف نصب در لینوکس است ،می بینید که شما انتخاب های مختلفی دارید و
به یک انتخاب وابسته نیستید ، امید وارم این مقاله برایتان مفید بوده و
مطالبی جدید برایتان داشته باشد.
[1].مخاطبین محترم باید
توجه داشته باشند که این مقاله برای کابران ناآشنا به لینوکس و مبتدی
نوشته شده است ،بنابراین اگر گاهی در مقایسات اغراقی شده است فقط برای
ارائه ی مطلب به زبانی ساده تر بوده ، اما اگر نظری و یا پرسشی درباره ی
این مقاله دارید می توانید در بخش انجمن ها [2] سوال خود رامطرح کنید.