در قسمت قبلی با مفهوم Repository در طراحی سایت آشنا شدید. دانستیم که یکی از موضوعات مهم در سرور لینوکس، بحث مدیریت مخازن یا همان Reposiroty ها است. در توزیعهای لینوکس مبتنی بر RedHat مثل CentOS که در اینجا با آن کار داریم، دستوری برای نصب، حذف و مدیریت بستههای نرم افزاری با نام yum داریم، با آن حتی میتوانیم مخازن را هم مدیریت کنید. البته دستور اصلی اضافه و کم کردم مخزن لینوکس rpm نام دارد که در قسمت بعدی راجع به آن هم صحبت خواهم کرد. اما چیزی که شما در این صفحه میآموزید مشاهدۀ فهرست Repository در لینوکس با استفاده از دستور yum (بخوانید یام) است.
ما با دستور yum خیلی کار داریم. این دستور همانطور که در قسمتهای قبلی راجع به دستورات سرور لینوکس توضیح داده شد، برای مدیریت بستههای نرم افزاری استفاده میشود. قبل از اینکه بتوانیم یک نرم افزار را روی سرور لینوکس خود نصب کنیم، باید آن را با استفاده از برنامۀ yum نصب کنیم. نرم افزارهایی که به این روش نصب میشوند، نرم افزارهای کامپایل شده و آمادۀ نصب هستند. همانطور که میدانید در لینوکس به دلیل اینکه منبع تمامی برنامهها و حتی هستۀ سیستم عامل باز است، کد برنامه هم برای همه در دسترس است و از روشهای دیگر نصب نرم افزار روی لینوکس، کامپایل مجدد آن با دستور make است. که البته برای این کار باید فایل کامپایل نشدۀ برنامه را پیدا کنید.
اما در بیشتر موارد دستور yum قادر به نصب کردن هر نرم افزاری روی سرور شما هست. مگر آن بستههای نرم افزاری که روی مخزن پیش فرض و اصلی توزیع لینوکس شما (در اینجا CentOS) وجود نداشته باشد. مثلاً در قسمتهای بعدی خواهید آموخت که ما برای مدیریت منابع سرور میبایست از نرم افزاری به نام htop استفاده کنیم. اما با دستور yum install htop نمیتوانیم htop را نصب کنیم. چرا که htop در مخزن اصلی نرم افزارهای توزیع CentOS لینوکس نیست. برای این کار باید یک مخزن دیگر را اضافه کنیم و مجدد به سراغ دستور نصب این نرم افزار برویم.
پس با این تفاسیر الان کاملاً ملتفت شدید که چرا ما مبحثی با نام مدیریت مخازن یا همان مدیریت Reopsitory باید داشته باشیم. پس به سراغ این موضوع خواهیم رفت که چطور میتوانیم بفهمیم که سرور لینوکس ما الان به چه مخازنی متصل است و حتی داخل آن مخازن چه نرم افزارهای وجود دارد. که در اولین گام برای نصب و پیکربندیِ یک نرم افزار به آن نیاز خواهیم داشت.
فهرست کردن مخازن لینوکس
حالا میخواهید با استفاده از دستور yum فهرست مخازنی که همینک به سرور ما متصل هستند را پیدا کنیم. ساختار این دستور به قرار زیر است:
yum [options] repolist [option]
پس من دستور زیر را در خط فرمان وارد میکنم و نتیجهاش را به شما نشان خواهم داد:
yum repolist
۵ خط اول را کار نداریم که این خطوط برای هر دستور yum وجود خواهند داشت. اما یک جدول از مخازن فعال را این دستور به ما نشان میدهد. ستون اول با عنوان repo id شناسه، و ستون دوم با عنوان repo name نام اصلی مخزن را نشان میدهد. ام ستون سوم با عنوان status تعداد بستههای نرم افزاری که درون آن مخزن قرار گرفته است را نمایش میدهد. مثلاً در نمونۀ بالا میتوان فهمید که در مخزن CentOS-6 – Base تعداد ۴۹۶۸ بستۀ نرم افزاری وجود دارد که به یک دستور ساده میتوان آنها را نصب کرد.
نکته: علاوه بر امکان نصب مخازن نرم افزاری اضافی روی سرور لینوکس، میتوان آنها را فعال یا غیرفعال هم کرد. دستور بالا فقط مخازن فعال را نشان میدهد که با دستور زیر تفاوتی ندارد:
yum repolist enabled
اما اگر خواسته باشید تمامی مخازن فعال و غیرفعال نشان داده شوند، باید از دستور زیر استفاده کنید. به عبارت all دقت کنید.
yum repolist all
برای نمایش تنها مخازن غیرفعال دستور زیر:
yum repolist disabled
فهرست کردن بستههای موجود در یک مخزن
اما اگر خواسته باشید بستههای نرم افزاری در یک مخزن خاص که همینک روی سرور شما نصب است را مشاهده کنید، باید از دستور زیر استفاده کنید.
yum --disablerepo="*" --enablerepo="extras" list available
در کد بالا مشخصۀ disablerepo نمایش اطلاعات مربوط به یک مخزن خاص را غیرفعال میکند. از آنجایی که ما از علامت * استفاده کردیم، همۀ مخازن را غیرفعال میکند. اما در ادامه از مشخصۀ enablerepo استفاده شده که میگوید اطلاعات فقط همین یک مخزن را نمایش بده. دقت داشته باشید که مقادیر این مشخصهها باید ID یا همان شناسۀ یک مخزن باشد که در ستون اول فهرست مخازن لینوکس نمایش داده میشد.
در مثال بالا ما فقط بستههای نرم افزاری موجود در مخزن extras را میخواستیم ببینیم که طبیعتاً باید تعداد آنها ۴۰ تا باشد. چرا که با دستور yum repolist فهمیدیم که این مخزن فقط ۴۰ بستۀ نرم افزاری درون خود داشت.
نکته ۱: این بستههای نرم افزاری روی سرور شما وجود ندارند. بلکه اگر خواسته باشید آنها را نصب کنید با وصل شدن به یک سرور دیگر، ابتدا دانلود شده و سپس نصب خواهند شد. این دستورات فقط اطلاعات موجود مخازن نرم افزاری لینوکس را نمایش میدهند و کاری به خود بستهها ندارند.
نکته ۲: از آنجایی که لینوکس معمولاً اطلاعات را درون پروندۀ متنی ذخیره میکند، اطلاعات مرتبط با مخازن لینوکس (Repository) در مسیر زیر قابل دسترس هستند:
/etc/yum.repos.d
بدین ترتیب با طریقۀ جمع آوری اطلاعات مخازن لینوکس آشنا شدید. اما اگر خواسته باشید یک مخزن را به سیستم خودتان معرفی کنید، باید آموزش بعدی وبنولوژی را هم دنبال کنید تا با دستور rpm بتوانید این کار را انجام دهید.
دمت گرم!