۰ دیدگاه نظر سحر پاشائی
YUM چیست؟ (21 فرمان YUM برای مدیریت بسته‌ها در لینوکس)
سرفصل‌های مقاله
  • YUM چیه و چه کاربردی داره؟
  • مزایا و معایب YUM
  • مقایسه YUM با رقبای اصلی
  • سوالات متداول
  • جمع‌بندی

تو دنیای پرسرعت تکنولوژی، وقتی داری محصولی رو توسعه می‌دی یا ازش پشتیبانی می‌کنی، خیلی مهمه که بتونی همه چی رو سریع و بدون دردسر تنظیم و آپدیت کنی. حالا فکر کن چقدر خوب می‌شد اگه یه سیستمی داشتیم که همه این کارها رو برامون راحت و امن انجام بده. خوشبختانه همچین چیزی هست! سیستم‌های مدیریت بسته، دقیقا همین کار رو می‌کنن. امروز قراره بریم سراغ یکی از معروف‌ترینشون به اسم YUM که برای توزیع‌های لینوکسی خانواده Red Hat ساخته شده.

یه چیزی هم هست به اسم Packagecloud، یه سرویس ابری که خیلی باحال و حرفه‌ای کار توزیع بسته‌های نرم‌افزاری رو انجام می‌ده. شرکت‌ها با استفاده از این سرویس، می‌تونن هزینه‌هاشون رو کم کنن و سرعت تنظیم سیستم‌هاشون رو بالا ببرن. همه چی خیلی امن و روون انجام می‌شه، و خلاصه اینکه حسابی زندگی رو راحت می‌کنه.

Packagecloud بسته‌های مختلف رو جمع می‌کنه و توی یه مخزن مرکزی ذخیره می‌کنه. این مخازن برای شرکت‌ها مثل یه سوپرمارکت بزرگن که همه چی توش هست. یعنی هرچی برای تنظیم، به‌روزرسانی و مدیریت سیستم‌ها نیاز داری، توی این مخازن پیدا می‌شه. به همین راحتی!

اگه دوست داری بدون دردسر ماشین‌هات رو سریع راه‌اندازی و به‌روز کنی، می‌تونی نسخه آزمایشی Packagecloud رو امتحان کنی و ببینی چقدر کارت رو آسون می‌کنه.

پکیج منیجر چیه؟

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

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

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

  • بسته‌ها رو از مخازن (همون فروشگاه‌های نرم‌افزاری) پیدا می‌کنه.
  • اگه این نرم‌افزار به چیزای دیگه‌ای (وابستگی‌ها) نیاز داشته باشه، اون‌ها رو هم نصب می‌کنه.
  • و آخرش هم نرم‌افزار رو به راحتی روی سیستمت می‌نشونه.

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

حتی وقتی یه آپدیت جدید برای نرم‌افزارها میاد، پکیج منیجر بهت خبر می‌ده و می‌تونی با یه دستور ساده همه چیز رو به‌روز کنی.

حالا که متوجه شدی پکیج منیجر یا مدیر بسته چیه، بریم سراغ YUM و ببینیم اون تو دنیای پکیج منیجرها چه نقشی بازی می‌کنه!

YUM چیه و چه کاربردی داره؟

What is YUM?

حالا بریم سراغ YUM! این ابزار (که مخفف Yellowdog Updater Modified هست)، یه سیستم مدیریت بسته رایگان و متن‌بازه که برای کار با بسته‌های RPM ساخته شده. با YUM می‌تونی به راحتی بسته‌های مختلف رو از مخازن دانلود کنی، نصب یا حذفشون کنی و حتی کل سیستم رو آپدیت کنی.

از ویژگی‌های خفن YUM اینه که خودش هوشمنده و وقتی داری یه بسته رو نصب می‌کنی، می‌فهمه به چه چیزای دیگه‌ای نیاز داری و اون‌ها رو هم به طور خودکار نصب می‌کنه. خلاصه اینکه، هر بسته‌ای که می‌خوای، YUM همه وابستگی‌هاش رو هم برات ردیف می‌کنه.

نکته‌ی مهم اینه که بهتره فقط با بسته‌های .rpm کار کنی، چون YUM برای مدیریت این بسته‌ها طراحی شده. این بسته‌ها شامل نرم‌افزارهای از پیش کامپایل‌شده و اطلاعات مربوط به وابستگی‌ها هستن. معمولا این بسته‌ها به یکی از دو فرمت زیر ارائه می‌شن:

  • <name>-<version>-<release>.src.rpm برای سورس‌کدها
  • <name>-<version>-<release>.<architecture>.rpm برای نسخه‌های باینری

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

YUM برای اینکه امنیت سیستم‌ها رو هم تضمین کنه، می‌تونه امضاهای دیجیتال GPG رو چک کنه. یعنی وقتی این گزینه فعال باشه، فقط بسته‌های معتبر از مخازن معتبر نصب می‌شن و خیالت راحت می‌شه که چیزی رو از جای نامعتبر نصب نکردی.

در نهایت، Packagecloud هم بهت این امکان رو می‌ده که مخازن امن و ابری برای بسته‌هات داشته باشی و سیستم‌هات رو بدون نیاز به زیرساخت‌های فیزیکی مدیریت کنی. این یعنی راحتی و امنیت در کنار هم.

مزایا و معایب YUM

هر ابزاری که در دنیای فناوری وجود داره، علاوه بر نقاط قوت، ممکنه یه سری نقاط ضعف هم داشته باشه. YUM هم از این قاعده مستثنا نیست. بیایم یه نگاهی به مزایا و معایب YUM بندازیم تا ببینیم این ابزار چطور می‌تونه به کارمون بیاد و کجاها ممکنه کمی چالش‌برانگیز باشه.

مزایای YUM

  • مدیریت وابستگی‌ها به صورت خودکار: یکی از بزرگترین مزیت‌های YUM اینه که وقتی یه بسته رو نصب می‌کنی، خودش همه‌ی وابستگی‌های لازم رو تشخیص می‌ده و نصب می‌کنه. یعنی نیازی نیست دنبال چیزهای دیگه بگردی. همه چی با یه دستور ساده انجام می‌شه.
  • آپدیت سیستم با یه دستور: با YUM می‌تونی خیلی راحت کل سیستم رو به‌روز کنی. فقط کافیه یه دستور آپدیت بزنی و YUM تمام بسته‌ها رو بررسی می‌کنه و نسخه‌های جدیدتر رو نصب می‌کنه. دیگه نگران جا موندن از آپدیت‌ها نباش!
  • امنیت بالا: YUM از امضای دیجیتال GPG استفاده می‌کنه تا مطمئن بشه فقط بسته‌های معتبر از مخازن معتبر نصب می‌شن. یعنی خیالت راحته که بسته‌های مخربی روی سیستمت نصب نمی‌کنی.
  • سادگی استفاده: حتی اگه تازه‌کار باشی، استفاده از YUM به خاطر دستورات ساده و مستندات خوبی که داره، خیلی راحت و قابل فهمه. بدون نیاز به دانش عمیق، می‌تونی نرم‌افزار نصب کنی یا سیستم رو به‌روز نگه داری.
  • پشتیبانی گسترده: YUM برای توزیع‌های معروفی مثل Red Hat، CentOS و Fedora طراحی شده و به خوبی از بسته‌های RPM پشتیبانی می‌کنه. همین گستردگی پشتیبانی باعث می‌شه تو خیلی از شرکت‌ها و پروژه‌ها استفاده بشه.

معایب YUM

  • سرعت نسبتاً کمتر: یکی از نقدهایی که به YUM وارده، سرعت نسبتاً پایین‌تر اون در مقایسه با بعضی از ابزارهای مشابه مثل DNF یا APT هست. البته این کندی به خاطر چک کردن دقیق وابستگی‌ها و امنیت بالاتره، اما ممکنه گاهی اوقات برات طولانی‌تر بشه.
  • نسخه‌های جدید همیشه در دسترس نیستند: گاهی اوقات بسته‌هایی که از طریق YUM نصب می‌کنی، ممکنه آخرین نسخه نباشن. دلیلش هم اینه که YUM از مخازنی استفاده می‌کنه که برای پایداری سیستم بهینه شدن، نه برای دسترسی به آخرین ورژن‌های نرم‌افزار.
  • نیاز به تنظیم مخازن اضافی: بعضی وقت‌ها ممکنه بسته‌های خاصی که نیاز داری، تو مخازن پیش‌فرض نباشن و مجبور بشی دستی مخازن جدیدی رو اضافه کنی. این ممکنه برای تازه‌کارها کمی گیج‌کننده باشه.
  • مصرف بیشتر منابع: YUM به نسبت برخی از ابزارهای مدیریت بسته دیگه مثل DNF، مصرف بیشتری از منابع سیستم داره. پس اگه داری روی سیستمی با منابع محدود کار می‌کنی، ممکنه متوجه این تفاوت بشی.

مقایسه YUM با رقبای اصلی

تو دنیای لینوکس ابزارهای مختلفی برای مدیریت بسته‌ها داریم که هر کدوم بسته به نیاز و توزیعی که استفاده می‌کنی، می‌تونه به کار بیاد. YUM یکی از قدیمی‌ترین و محبوب‌ترین‌هاست، ولی رقبای قدرتمندی مثل APT، DNF و Zypper هم تو این حوزه حضور دارن. تو این بخش می‌خوایم یه مقایسه بین این ابزارها داشته باشیم تا راحت‌تر بفهمی کدوم یکی به دردت می‌خوره.

1. YUM در مقابل APT

APT مدیر بسته‌ایه که تو توزیع‌های Debian-محور مثل Ubuntu استفاده می‌شه. خب، بذار ببینیم APT چه تفاوت‌هایی با YUM داره:

ویژگیYUM (Red Hat-based)APT (Debian-based)
پشتیبانی از توزیع‌هاRed Hat، CentOS، FedoraDebian، Ubuntu
فرمت بسته‌هاRPMDEB
مدیریت وابستگی‌هابه‌طور خودکار و کاملبه‌طور خودکار و کامل
سرعتکمی کندترسریع‌تر
کاربردپذیریراحت و ساده برای مبتدی‌هانسبتاً ساده اما کمی تجربه می‌خواد
مخازن نرم‌افزارینیاز به اضافه کردن دستی بعضی مخازنگسترده‌تر و به‌روزتر
امنیتچک کردن امضای دیجیتال GPGچک کردن امضای دیجیتال GPG

توضیحات بیشتر

  • مدیریت بسته‌ها: هر دو ابزار در اصل برای مدیریت بسته‌ها استفاده می‌شن، ولی هر کدوم برای توزیع خاصی طراحی شدن. YUM برای سیستم‌های Red Hat-based و APT برای Debian-based کار می‌کنه.
  • سرعت: APT معمولاً سریع‌تر عمل می‌کنه و توی آپدیت‌ها و نصب بسته‌ها زمان کمتری می‌بره. YUM به خاطر اینکه دقیق‌تر روی وابستگی‌ها نظارت می‌کنه، کمی کندتره.
  • راحتی کار: اگه کاربر تازه‌کاری هستی، YUM می‌تونه راحت‌تر باشه، ولی APT هم ساده است و با یه کم تجربه، استفاده ازش راحت می‌شه.

2. YUM در مقابل DNF

DNF در واقع نسخه‌ی پیشرفته‌تر و مدرن‌تر YUM محسوب می‌شه و تو توزیع‌هایی مثل Fedora و CentOS 8 استفاده می‌شه. بیایم ببینیم DNF چه چیزی بیشتر از YUM داره:

ویژگیYUMDNF
سرعتکندترسریع‌تر و بهینه‌تر
مصرف منابعسنگین‌ترسبک‌تر و بهینه‌تر
مدیریت وابستگی‌هاخوب ولی کندترسریع‌تر و بهتر
قابلیت‌هاقدیمی ولی قابل اعتمادمدرن و با امکانات بیشتر
امنیتچک کردن GPGامنیت بهتر و مدیریت مخازن قوی‌تر

توضیحات بیشتر

  • سرعت: DNF خیلی سریع‌تر از YUM کار می‌کنه. اگه وقت برات مهمه یا داری روی سیستمی با منابع محدود کار می‌کنی، DNF انتخاب بهتریه.
  • منابع: DNF بهینه‌تره و از منابع کمتری استفاده می‌کنه، پس توی سیستم‌های با رم و CPU پایین بهتر کار می‌کنه.
  • مدیریت وابستگی‌ها: DNF توی مدیریت وابستگی‌ها بهتر و سریع‌تر از YUM عمل می‌کنه. یعنی اگه بسته‌ای به چیزای دیگه‌ای نیاز داشته باشه، DNF راحت‌تر و بدون دردسر همه‌شون رو نصب می‌کنه.

3. YUM در مقابل Zypper

Zypper مدیر بسته‌ایه که بیشتر تو توزیع openSUSE استفاده می‌شه و برای کاربرایی که دنبال انعطاف‌پذیری بیشتری هستن، گزینه خیلی مناسبیه.

ویژگیYUMZypper
سرعتمتوسطسریع‌تر توی آپدیت‌ها
مدیریت وابستگی‌هاخوب و دقیقخیلی دقیق و انعطاف‌پذیر
پشتیبانی از توزیع‌هاRed Hat، CentOS، FedoraopenSUSE، SLES
کاربردپذیریراحت و سادهمناسب برای کاربران حرفه‌ای
ابزارهای اضافیمحدودترابزارهای پیشرفته مثل Snapper

توضیحات بیشتر

  • سرعت: Zypper به‌ویژه توی آپدیت‌ها سریع‌تر از YUM عمل می‌کنه، پس اگه دنبال آپدیت‌های سریع‌تر هستی، Zypper گزینه بهتریه.
  • انعطاف‌پذیری: Zypper خیلی دقیق وابستگی‌ها رو مدیریت می‌کنه و ابزارهای بیشتری برای مدیریت پیشرفته سیستم داره، مثل Snapper برای مدیریت snapshotها. اگه حرفه‌ای‌تر هستی و با openSUSE کار می‌کنی، Zypper به دردت می‌خوره.
  • ابزارهای پیشرفته: Zypper ابزارهای بیشتری مثل Snapper برای مدیریت لحظه‌ای سیستم داره که به کاربرایی که دنبال کنترل بیشتری هستن کمک می‌کنه.

نتیجه‌گیری مقایسه

خب، حالا انتخاب بهترین ابزار مدیریت بسته بستگی به این داره که از کدوم توزیع لینوکسی استفاده می‌کنی و نیازات چیه:

  • APT برای کسایی که از توزیع‌های Debian-محور مثل Ubuntu استفاده می‌کنن، خیلی خوبه. چون مخازن گسترده‌ای داره و نصب و آپدیت نرم‌افزارها رو خیلی راحت می‌کنه.
  • DNF نسخه به‌روزتر و سریع‌تر YUM هست و اگه داری از Fedora یا CentOS 8 استفاده می‌کنی، گزینه خیلی بهتریه چون سریع‌تر و بهینه‌تره.
  • Zypper برای کاربران حرفه‌ای openSUSE انتخاب عالیه. اگه دنبال ابزارهای پیشرفته‌تری هستی که کنترل بیشتری روی سیستم بهت بدن، Zypper به دردت می‌خوره.
  • YUM هم هنوز یکی از ابزارهای قدیمی و قابل اعتماد برای توزیع‌های Red Hat-محور مثل CentOS و RHEL هست. اگه دنبال چیزی هستی که حسابی تست‌شده و پایداره، YUM می‌تونه بهترین انتخاب باشه.

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

21 فرمان YUM برای مدیریت بسته‌ها در لینوکس

تو این بخش می‌خوایم یاد بگیریم چطور با استفاده از ابزار YUM (که توسط RedHat توسعه داده شده) بسته‌ها رو نصب، به‌روزرسانی، حذف و پیدا کنیم. همچنین یاد می‌گیریم چطور مخازن و بسته‌ها رو مدیریت کنیم. لازمه‌ی این بخش اینه که یه آشنایی اولیه با دستورات لینوکس داشته باشی و روی سیستمت یه لینوکس در حال اجرا داشته باشی تا بتونی دستورات رو امتحان کنی.

1. نصب یک بسته با YUM

برای نصب یه بسته مثل فایرفاکس، کافیه این دستور رو وارد کنی. YUM خودش به طور خودکار وابستگی‌های لازم برای اجرای فایرفاکس رو پیدا می‌کنه و نصب می‌کنه:

yum install firefox

وقتی این دستور رو اجرا می‌کنی، YUM اول از همه پلاگین‌های لازم رو لود می‌کنه و بعد می‌ره سراغ بسته‌ها و وابستگی‌هاشون. به طور خلاصه، این فرآیند رو خواهی دید:

Loaded plugins: fastestmirror
Dependencies Resolved
================================================================================================
 Package                    Arch        Version                    Repository            Size        
================================================================================================
Updating:
firefox                        i686        10.0.6-1.el6.centos     updates             20 M
Updating for dependencies:
 xulrunner                     i686        10.0.6-1.el6.centos     updates             12 M

یعنی فایرفاکس و بعضی وابستگی‌هاش مثل xulrunner آماده‌ی نصب یا به‌روزرسانی می‌شن. بعدش ازت می‌پرسه که آیا می‌خوای ادامه بدی یا نه:

Is this ok [y/N]: y

اگه تایید کنی (با زدن "y")، YUM شروع می‌کنه به دانلود بسته‌ها و نصب اون‌ها. وقتی که نصب کامل شد، پیغام موفقیت‌آمیز بودن نصب رو بهت نشون می‌ده.

اگه نمی‌خوای هربار ازت تایید بخواد و می‌خوای نصب به‌طور خودکار انجام بشه، می‌تونی از گزینه -y استفاده کنی:

yum -y install firefox

اینطوری دیگه بدون اینکه ازت سوالی بپرسه، نصب به طور خودکار انجام می‌شه.

2. حذف یک بسته با YUM

اگه بخوای یه بسته رو به‌طور کامل، همراه با همه وابستگی‌هاش حذف کنی، کافیه از دستور زیر استفاده کنی. فرض کنیم می‌خوای فایرفاکس رو حذف کنی. خیلی راحت می‌تونی این دستور رو وارد کنی:

yum remove firefox

وقتی این دستور رو اجرا می‌کنی، YUM میاد همه پلاگین‌های مورد نیاز رو لود می‌کنه و فرآیند حذف بسته رو شروع می‌کنه. تو این مرحله، وابستگی‌هایی که به بسته‌ی فایرفاکس مرتبط هستن بررسی می‌شن:

Loaded plugins: fastestmirror
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package firefox.i686 0:10.0.6-1.el6.centos set to be erased
--> Finished Dependency Resolution

بعدش بهت نشون می‌ده که چه بسته‌ای قراره حذف بشه، مثل فایرفاکس، و سایز اون بسته رو هم می‌گه. دوباره ازت سوال می‌کنه که آیا مطمئنی می‌خوای این بسته رو حذف کنی:

Is this ok [y/N]: y

وقتی تایید کنی (با زدن "y")، YUM فرآیند حذف رو ادامه می‌ده و بسته رو از سیستم پاک می‌کنه. در نهایت، یه پیام می‌بینی که می‌گه عملیات حذف به طور کامل انجام شده.

اگه نمی‌خوای هربار ازت تایید بخواد، می‌تونی با اضافه کردن -y این مرحله رو رد کنی و حذف به صورت خودکار انجام بشه:

yum -y remove firefox

اینطوری فایرفاکس بدون اینکه سوالی ازت بپرسه، حذف می‌شه!

3. به‌روزرسانی یک بسته با YUM

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

yum update mysql

وقتی این دستور رو وارد می‌کنی، YUM اول وابستگی‌ها رو چک می‌کنه و بهت نشون می‌ده که چه بسته‌هایی قراره به‌روز بشن. مثلا ممکنه ببینی چیزی مثل زیر رو نمایش بده:

Loaded plugins: fastestmirror
Dependencies Resolved
============================================================================================================
 Package            Arch                Version                    Repository                    Size
============================================================================================================
Updating:
 vsftpd             i386                2.0.5-24.el5_8.1           updates                       144 k

این یعنی بسته vsftpd قراره به‌روز بشه. بعدش YUM ازت می‌پرسه که آیا می‌خوای ادامه بدی یا نه:

Is this ok [y/N]: y

اگه تایید کنی (با زدن "y")، فرآیند به‌روزرسانی شروع می‌شه و بسته‌ها دانلود و نصب می‌شن. وقتی عملیات به پایان رسید، YUM بهت اطلاع می‌ده که همه چیز به خوبی انجام شده.

4. لیست کردن بسته‌ها با YUM

اگه بخوای یه بسته خاص رو تو سیستم پیدا کنی، می‌تونی از تابع list استفاده کنی. مثلا اگه بخوای بدونی بسته OpenSSH تو سیستمت نصبه یا نه، کافیه این دستور رو وارد کنی:

yum list openssh

وقتی این دستور رو وارد کنی، YUM اول می‌ره سراغ پلاگین‌ها و سرعت سرورها رو بررسی می‌کنه، بعدش نتایج زیر رو بهت نشون می‌ده:

Loaded plugins: fastestmirror
Installed Packages
openssh.i386                                       4.3p2-72.el5_6.3                                                                      installed
Available Packages                                 4.3p2-82.el5                                                                          base

اینجا می‌بینی که نسخه 4.3p2 از OpenSSH روی سیستمت نصبه و نسخه جدیدتری هم تو مخزن موجوده که اگه خواستی، می‌تونی به‌روزرسانیش کنی.

اگه می‌خوای جستجوت دقیق‌تر باشه، مثلا یه نسخه خاص از یه بسته رو پیدا کنی، می‌تونی نام بسته و نسخه مورد نظر رو هم به دستور اضافه کنی. مثلا اگه دنبال نسخه OpenSSH-4.3p2 باشی، دستور زیر رو وارد کن:

yum list openssh-4.3p2

این دستور به طور خاص اون نسخه رو برات پیدا می‌کنه و نشون می‌ده که آیا نصبه یا تو مخزن موجوده.

5. جستجوی یک بسته با YUM

اگه اسم دقیق بسته‌ای که می‌خوای رو یادت رفته، نگران نباش! می‌تونی از دستور search برای جستجوی همه بسته‌های موجودی که اسمشون شبیه به چیزی که وارد کردی هست، استفاده کنی. مثلا برای پیدا کردن همه بسته‌هایی که شامل vsftpd هستن، کافیه این دستور رو وارد کنی:

yum search vsftpd

YUM میاد و پلاگین‌های لازم رو لود می‌کنه و بعد نتایج جستجو رو برات نمایش می‌ده. این نتایج شامل بسته‌هایی هست که به کلمه مورد نظرت مرتبطن:

============================== Matched: vsftpd ========================
ccze.i386 : A robust log colorizer
pure-ftpd-selinux.i386 : SELinux support for Pure-FTPD
vsftpd.i386 : vsftpd - Very Secure Ftp Daemon

اینجا می‌بینی که بسته‌هایی مثل vsftpd و pure-ftpd-selinux پیدا شدن. حالا می‌تونی بسته مورد نظرت رو از بین اون‌ها انتخاب کنی.

6. گرفتن اطلاعات یک بسته با YUM

فرض کن می‌خوای قبل از نصب یه بسته، اطلاعات بیشتری در موردش داشته باشی. برای اینکه اطلاعات کامل یه بسته رو ببینی، می‌تونی از دستور info استفاده کنی. مثلا برای دیدن اطلاعات مربوط به فایرفاکس، دستور زیر رو وارد کن:

yum info firefox

بعد از اجرای این دستور، YUM اطلاعات بسته مورد نظر رو بهت نمایش می‌ده:

Name       : firefox
Arch       : i386
Version    : 10.0.6
Release    : 1.el5.centos
Size       : 20 M
Repo       : updates
Summary    : Mozilla Firefox Web browser
URL        : http://www.mozilla.org/projects/firefox/
License    : MPLv1.1 or GPLv2+ or LGPLv2+
Description: Mozilla Firefox is an open-source web browser, designed for standards
           : compliance, performance and portability.

اینجا می‌تونی اسم، نسخه، سایز، مخزن و توضیحات کامل بسته رو ببینی. این کمک می‌کنه که مطمئن بشی داری بسته درستی رو نصب می‌کنی.

7. لیست کردن همه بسته‌های موجود با YUM

اگه می‌خوای همه بسته‌های موجود توی پایگاه داده YUM رو ببینی، می‌تونی از دستور list استفاده کنی. این دستور همه بسته‌هایی که می‌تونی از مخازن نصب کنی رو نمایش می‌ده. برای راحت‌تر دیدن این لیست می‌تونی از دستور زیر استفاده کنی:

yum list | less

با این کار می‌تونی لیست بسته‌ها رو صفحه به صفحه مرور کنی.

8. لیست کردن همه بسته‌های نصب شده با YUM

اگه می‌خوای ببینی چه بسته‌هایی الان روی سیستمت نصب شدن، می‌تونی از همون دستور list ولی با یه تغییر کوچیک استفاده کنی. این دستور همه بسته‌هایی که روی سیستمت نصب شدن رو نشون می‌ده:

yum list installed | less

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

9. استفاده از قابلیت Provides در YUM

قابلیت provides توی YUM یه ابزار کاربردیه که بهت کمک می‌کنه بفهمی یه فایل خاص توی کدوم بسته قرار داره. مثلا فرض کن می‌خوای بدونی فایل /etc/httpd/conf/httpd.conf مربوط به کدوم بسته هست. خیلی راحت می‌تونی از این دستور استفاده کنی:

yum provides /etc/httpd/conf/httpd.conf

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

httpd-2.2.3-63.el5.centos.i386 : Apache HTTP Server
Repo        : base
Matched from:
Filename    : /etc/httpd/conf/httpd.conf

این یعنی فایل httpd.conf توی بسته httpd وجود داره که توی مخزن base قرار گرفته. همینطور می‌تونی ببینی که نسخه‌های دیگه این بسته هم وجود دارن، چه توی مخزن updates و چه توی بسته‌های نصب‌ شده.

10. بررسی به‌روزرسانی‌های موجود با YUM

اگه می‌خوای بدونی کدوم یکی از بسته‌هایی که روی سیستمت نصب شدن، آپدیت جدید دارن، می‌تونی از دستور check-update استفاده کنی. این دستور تمام بسته‌های نصب‌شده رو چک می‌کنه و می‌گه کدوم‌هاشون نیاز به آپدیت دارن. خیلی ساده، این دستور رو وارد کن:

yum check-update

YUM می‌ره و همه بسته‌های نصب شده رو بررسی می‌کنه و اگه آپدیتی موجود باشه، لیستش رو بهت نشون می‌ده. حالا می‌تونی تصمیم بگیری کدوم بسته‌ها رو می‌خوای به‌روز کنی!

11. به‌روزرسانی سیستم با YUM

اگه می‌خوای سیستمت همیشه به‌روز و امن باشه، بهترین کار اینه که به‌روزرسانی‌های امنیتی و بسته‌های جدید رو مرتباً نصب کنی. با اجرای این دستور، همه آپدیت‌های لازم و آخرین پچ‌ها روی سیستمت نصب می‌شن:

yum update

YUM می‌ره سراغ بسته‌های نصب‌ شده و چک می‌کنه که کدوم‌هاشون نسخه جدیدتری دارن. بعد ازت می‌پرسه که آیا می‌خوای آپدیت‌ها رو نصب کنی یا نه. با تایید کردن، همه بسته‌ها و آپدیت‌های جدید نصب می‌شن و سیستمت همیشه به‌روز و ایمن باقی می‌مونه.

12. لیست کردن همه گروه‌های بسته موجود

تو لینوکس، بعضی از بسته‌ها به صورت گروهی کنار هم قرار می‌گیرن. یعنی به جای اینکه تک‌تک بسته‌ها رو نصب کنی، می‌تونی یه گروه مشخص رو نصب کنی که شامل همه بسته‌های مرتبطه. برای اینکه لیست همه گروه‌های موجود رو ببینی، کافیه از این دستور استفاده کنی:

yum grouplist

بعد از اجرای این دستور، YUM بهت نشون می‌ده که چه گروه‌هایی روی سیستمت نصب شدن و چه گروه‌هایی در دسترس هستن:

Installed Groups:
   Administration Tools
   DNS Name Server
   Dialup Networking Support
   Editors
   Engineering and Scientific
   FTP Server
   Graphics
   Java Development
Available Groups:
   Authoring and Publishing
   Base
   Beagle
   Cluster Storage
   Clustering
   Development Libraries
   Development Tools
   Eclipse
   Educational Software
   KDE (K Desktop Environment)
   KDE Software Development

این لیست نشون می‌ده که چه گروه‌هایی رو قبلاً نصب کردی و چه گروه‌هایی هنوز نصب نشده ولی در دسترس هستن. مثلا می‌تونی گروه Development Tools رو انتخاب کنی که شامل همه ابزارهای مورد نیاز برای توسعه‌دهندگان هست و با نصبش کلی ابزار به کارت میاد.

13. نصب گروهی بسته‌ها با YUM

اگه می‌خوای چندتا بسته مرتبط با هم رو به صورت یکجا نصب کنی، نیازی نیست دونه‌دونه این کار رو انجام بدی. با دستور groupinstall می‌تونی یه گروه کامل از بسته‌ها رو با هم نصب کنی. مثلا برای نصب MySQL Database، کافیه دستور زیر رو وارد کنی:

# yum groupinstall 'MySQL Database'
Dependencies Resolved
=================================================================================================
Package								Arch      Version			 Repository        Size
=================================================================================================
Updating:
 unixODBC                           i386      2.2.11-10.el5      base              290 k
Installing for dependencies:
 unixODBC-libs                      i386      2.2.11-10.el5      base              551 k
Transaction Summary
=================================================================================================
Install       1 Package(s)
Upgrade       1 Package(s)
Total size: 841 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : unixODBC-libs	1/3
  Updating       : unixODBC         2/3
  Cleanup        : unixODBC         3/3
Dependency Installed:
  unixODBC-libs.i386 0:2.2.11-10.el5
Updated:
  unixODBC.i386 0:2.2.11-10.el5
Complete!

14. به‌روزرسانی گروهی بسته‌ها

اگه قبلاً یه گروه از بسته‌ها رو نصب کردی و حالا می‌خوای همه بسته‌های اون گروه رو به‌روزرسانی کنی، خیلی راحت می‌تونی با این دستور این کار رو انجام بدی:

# yum groupupdate 'DNS Name Server'
Dependencies Resolved
================================================================================================================
 Package			Arch	        Version				Repository           Size
================================================================================================================
Updating:
 bind                           i386            30:9.3.6-20.P1.el5_8.2          updates              981 k
 bind-chroot                    i386            30:9.3.6-20.P1.el5_8.2          updates              47 k
Updating for dependencies:
 bind-libs                      i386            30:9.3.6-20.P1.el5_8.2          updates              864 k
 bind-utils                     i386            30:9.3.6-20.P1.el5_8.2          updates              174 k
Transaction Summary
================================================================================================================
Install       0 Package(s)
Upgrade       4 Package(s)
Total size: 2.0 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating       : bind-libs            1/8
  Updating       : bind                 2/8
  Updating       : bind-chroot          3/8
  Updating       : bind-utils           4/8
  Cleanup        : bind                 5/8
  Cleanup        : bind-chroot          6/8
  Cleanup        : bind-utils           7/8
  Cleanup        : bind-libs            8/8
Updated:
  bind.i386 30:9.3.6-20.P1.el5_8.2                  bind-chroot.i386 30:9.3.6-20.P1.el5_8.2
Dependency Updated:
  bind-libs.i386 30:9.3.6-20.P1.el5_8.2             bind-utils.i386 30:9.3.6-20.P1.el5_8.2
Complete!

15. حذف گروهی بسته‌ها

اگه بخوای یه گروه بسته رو که قبلاً نصب کردی، به‌طور کامل از سیستمت حذف کنی، از این دستور استفاده کن:

# yum groupremove 'DNS Name Server'
Dependencies Resolved
===========================================================================================================
 Package                Arch              Version                         Repository          Size
===========================================================================================================
Removing:
 bind                   i386              30:9.3.6-20.P1.el5_8.2          installed           2.1 M
 bind-chroot            i386              30:9.3.6-20.P1.el5_8.2          installed           0.0
Transaction Summary
===========================================================================================================
Remove        2 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing        : bind                                                   1/2
warning: /etc/sysconfig/named saved as /etc/sysconfig/named.rpmsave
  Erasing        : bind-chroot                                            2/2
Removed:
  bind.i386 30:9.3.6-20.P1.el5_8.2                                        bind-chroot.i386 30:9.3.6-20.P1.el5_8.2
Complete!

16. لیست مخازن فعال Yum

اگه می‌خوای بدونی چه مخازن Yum روی سیستمت فعال هستن، از این دستور استفاده کن:

# yum repolist
repo id                     repo name                                            status
base                        CentOS-5 - Base                                      enabled:  2,725
epel                        Extra Packages for Enterprise Linux 5 - i386         enabled:  5,783
extras                      CentOS-5 - Extras                                    enabled:    282
mod-pagespeed               mod-pagespeed                                        enabled:      1
rpmforge                    RHEL 5 - RPMforge.net - dag                          enabled: 11,290
updates                     CentOS-5 - Updates                                   enabled:    743
repolist: 20,824

17. لیست همه مخازن فعال و غیرفعال

اگه بخوای همه مخازن، چه فعال و چه غیرفعال رو ببینی، می‌تونی از این دستور استفاده کنی:

# yum repolist all
repo id                     repo name                                            status
C5.0-base                   CentOS-5.0 - Base                                    disabled
C5.0-centosplus             CentOS-5.0 - Plus                                    disabled
C5.0-extras                 CentOS-5.0 - Extras                                  disabled
base                        CentOS-5 - Base                                      enabled:  2,725
epel                        Extra Packages for Enterprise Linux 5 - i386         enabled:  5,783
extras                      CentOS-5 - Extras                                    enabled:    282
repolist: 20,824

18. نصب بسته از یک مخزن خاص

اگه می‌خوای یه بسته رو از یه مخزن خاص نصب کنی (چه اون مخزن فعال باشه چه غیرفعال)، می‌تونی از گزینه --enablerepo تو دستور YUM استفاده کنی. مثلا برای نصب PhpMyAdmin از یه مخزن مشخص، اینطوری عمل کن:

# yum --enablerepo=epel install phpmyadmin
Dependencies Resolved
=============================================================================================
 Package                Arch           Version            Repository           Size
=============================================================================================
Installing:
 phpMyAdmin             noarch         3.5.1-1.el6        epel                 4.2 M
Transaction Summary
=============================================================================================
Install       1 Package(s)
Total download size: 4.2 M
Installed size: 17 M
Is this ok [y/N]: y
Downloading Packages:
phpMyAdmin-3.5.1-1.el6.noarch.rpm                       | 4.2 MB     00:25
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : phpMyAdmin-3.5.1-1.el6.noarch             1/1
  Verifying  : phpMyAdmin-3.5.1-1.el6.noarch             1/1
Installed:
  phpMyAdmin.noarch 0:3.5.1-1.el6
Complete!

19. شل تعاملی YUM

YUM یه قابلیتی داره که بهت اجازه می‌ده چندتا دستور رو به صورت پشت سر هم داخل یه محیط تعاملی (شل) وارد کنی. یعنی به جای اینکه هر بار یه دستور رو وارد کنی و منتظر بمونی، می‌تونی تو این شل چندین دستور رو یکی بعد از دیگری وارد کنی. برای شروع این شل، کافیه دستور زیر رو وارد کنی:

# yum shell
Loaded plugins: fastestmirror
Setting up Yum Shell
> update httpd
Loading mirror speeds from cached hostfile
 * base: mirrors.sin3.sg.voxel.net
 * epel: ftp.riken.jp
 * extras: mirrors.sin3.sg.voxel.net
 * updates: mirrors.sin3.sg.voxel.net
Setting up Update Process
>

20. پاک کردن کش YUM

به طور پیش‌فرض، YUM همه اطلاعات مربوط به مخازن رو داخل یه پوشه کش می‌کنه که مسیرش معمولاً /var/cache/yum/ هست. برای اینکه این فایل‌های کشی که دیگه لازم نیستن رو پاک کنی و فضای سیستمت رو آزاد کنی، بهتره هر از چند وقت یه بار این دستور رو بزنی:

# yum clean all

 

این دستور همه فایل‌های کش مربوط به مخازن فعال رو پاک می‌کنه و سیستمت تمیزتر می‌شه. پس یادت باشه که به طور منظم این دستور رو اجرا کنی تا مطمئن بشی فضای اضافی سیستمت گرفته نمی‌شه.

21. دیدن تاریخچه دستورات YUM

اگه می‌خوای ببینی تو گذشته چه دستوراتی با YUM اجرا کردی و چه بسته‌هایی نصب یا حذف شدن، می‌تونی از دستور history استفاده کنی. این دستور همه تراکنش‌های گذشته اون رو نشونت می‌ده:

# yum history
Loaded plugins: fastestmirror
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    10 | root               | 2012-08-11 15:19 | Install        |    3
     9 | root               | 2012-08-11 15:11 | Install        |    1
     8 | root               | 2012-08-11 15:10 | Erase          |    1 EE
     7 | root               | 2012-08-10 17:44 | Install        |    1
     6 | root               | 2012-08-10 12:19 | Install        |    2
     5 | root               | 2012-08-10 12:14 | Install        |    3
     4 | root               | 2012-08-10 12:12 | I, U           |   13 E<
     3 | root               | 2012-08-09 13:01 | Install        |    1 >
     2 | root               | 2012-08-08 20:13 | I, U           |  292 EE
     1 | System            | 2012-08-08 17:15 | Install        |  560
history list

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

سوالات متداول

YUM FAQ

1. YUM چیه و چه کاری انجام می‌ده؟

YUM یه ابزار مدیریت بسته توی لینوکسه که بهت کمک می‌کنه بسته‌ها رو نصب، به‌روزرسانی، حذف و مدیریت کنی. این ابزار وابستگی‌های لازم رو به طور خودکار تشخیص می‌ده و نصب یا حذف می‌کنه، بنابراین خیلی کار رو راحت می‌کنه.

2. چطور می‌تونم یه بسته خاص رو با YUM پیدا کنم؟

اگه اسم دقیق بسته رو یادت رفته، می‌تونی از دستور yum search استفاده کنی و یه کلمه کلیدی مرتبط با بسته رو وارد کنی. YUM همه بسته‌هایی که شامل اون کلمه باشن رو برات لیست می‌کنه.

3. چطور YUM همه بسته‌های نصب شده رو لیست می‌کنه؟

برای دیدن لیست همه بسته‌هایی که روی سیستمت نصب شدن، از دستور yum list installed استفاده کن. این دستور همه بسته‌های نصب شده رو نمایش می‌ده.

4. چطور می‌تونم یه گروه از بسته‌ها رو نصب کنم؟

برای نصب گروهی از بسته‌ها، از دستور yum groupinstall استفاده کن. این دستور همه بسته‌های مرتبط با یه گروه خاص رو نصب می‌کنه، مثلاً برای نصب MySQL Database می‌تونی از yum groupinstall 'MySQL Database' استفاده کنی.

5. چطور کش YUM رو پاک کنم؟

برای پاک کردن فایل‌های کشی که YUM ذخیره کرده، از دستور yum clean all استفاده کن. این کار باعث می‌شه فضای اضافی که توسط این فایل‌ها اشغال شده، آزاد بشه.

6. چطور تاریخچه دستورات YUM رو ببینم؟

برای دیدن تاریخچه دستورات و تراکنش‌های YUM، از دستور yum history استفاده کن. این دستور نشون می‌ده که قبلاً چه بسته‌هایی نصب، حذف یا به‌روز شدن.

7. فرق YUM و DNF چیه؟

DNF نسخه به‌روزتر و سریع‌تر YUM هست که توی توزیع‌های جدیدتر مثل Fedora استفاده می‌شه. DNF سرعت بالاتری داره و مصرف منابع کمتری نسبت به YUM داره.

8. آیا می‌تونم بسته‌ای رو از یه مخزن خاص نصب کنم؟

بله، برای این کار می‌تونی از دستور yum --enablerepo استفاده کنی و مخزن مورد نظرت رو مشخص کنی. مثلاً برای نصب یه بسته از یه مخزن غیرفعال، باید اون مخزن رو با این گزینه فعال کنی.

9. چطور می‌تونم همه مخازن فعال و غیرفعال رو ببینم؟

برای دیدن لیست همه مخازن فعال و غیرفعال روی سیستمت، از دستور yum repolist all استفاده کن. این دستور تمام مخازن رو با وضعیت فعال یا غیرفعالشون نمایش می‌ده.

10. آیا YUM به طور خودکار بسته‌های جدید رو نصب می‌کنه؟

نه، YUM بسته‌ها رو به طور خودکار نصب نمی‌کنه مگر اینکه خودت دستور yum install یا yum update رو بزنی. با این حال، می‌تونی تنظیماتی انجام بدی که YUM بسته‌ها رو به صورت خودکار به‌روز کنه.

جمع‌بندی

همون‌طور که گفتیم، YUM یه ابزار قدرتمند و ساده برای مدیریت بسته‌ها توی توزیع‌های مبتنی بر Red Hat مثل CentOS و Fedora هست. این ابزار بهت اجازه می‌ده بسته‌ها رو به راحتی نصب، حذف، به‌روز و مدیریت کنی. یکی از ویژگی‌های خیلی خوب YUM اینه که به طور خودکار وابستگی‌های لازم رو مدیریت می‌کنه و از این جهت وقت و دردسر کمتری بهت وارد می‌کنه.

از نصب گروهی بسته‌ها تا پاک کردن کش و دیدن تاریخچه، YUM همه امکانات لازم رو در اختیارت قرار می‌ده تا سیستمت همیشه تمیز و به‌روز بمونه. با داشتن این ابزار، می‌تونی بدون نگرانی و دردسر، بسته‌های مورد نیازت رو مدیریت کنی و مطمئن باشی که همه چیز به درستی کار می‌کنه.

۰ دیدگاه
ما همه سوالات و دیدگاه‌ها رو می‌خونیم و پاسخ میدیم

دوره الفبای برنامه نویسی با هدف انتخاب زبان برنامه نویسی مناسب برای شما و پاسخگویی به سوالات متداول در شروع یادگیری موقتا رایگان شد:

۲۰۰ هزار تومان رایگان
دریافت دوره الفبای برنامه نویسی