تو دنیای پرسرعت تکنولوژی، وقتی داری محصولی رو توسعه میدی یا ازش پشتیبانی میکنی، خیلی مهمه که بتونی همه چی رو سریع و بدون دردسر تنظیم و آپدیت کنی. حالا فکر کن چقدر خوب میشد اگه یه سیستمی داشتیم که همه این کارها رو برامون راحت و امن انجام بده. خوشبختانه همچین چیزی هست! سیستمهای مدیریت بسته، دقیقا همین کار رو میکنن. امروز قراره بریم سراغ یکی از معروف ترینشون به اسم YUM که برای توزیعهای لینوکسی خانواده Red Hat ساخته شده.
یه چیزی هم هست به اسم Packagecloud، یه سرویس ابری که خیلی باحال و حرفه ای کار توزیع بستههای نرم افزاری رو انجام میده. شرکتها با استفاده از این سرویس، میتونن هزینه هاشون رو کم کنن و سرعت تنظیم سیستم هاشون رو بالا ببرن. همه چی خیلی امن و روون انجام میشه، و خلاصه اینکه حسابی زندگی رو راحت میکنه.
Packagecloud بستههای مختلف رو جمع میکنه و توی یه مخزن مرکزی ذخیره میکنه. این مخازن برای شرکتها مثل یه سوپرمارکت بزرگن که همه چی توش هست. یعنی هرچی برای تنظیم، به روزرسانی و مدیریت سیستمها نیاز داری، توی این مخازن پیدا میشه. به همین راحتی!
اگه دوست داری بدون دردسر ماشین هات رو سریع راه اندازی و به روز کنی، میتونی نسخه آزمایشی Packagecloud رو امتحان کنی و ببینی چقدر کارت رو آسون میکنه.
بذار یه مثال ساده بزنم. فرض کن تو یه سوپرمارکت بزرگ کار میکنی و باید هر روز تعداد زیادی جنس رو از قفسهها برداری، ببری دم صندوق و حساب کنی. حالا اگه یه دستگاه هوشمند داشتی که خودش همه چیز رو انتخاب میکرد، لیست خرید رو میدید، قیمتها رو چک میکرد و همه چیز رو برات آماده میکرد، چقدر کارت راحتتر میشد، درسته؟
پکیج منیجر دقیقاً همون دستگاه هوشمنده، ولی برای نصب نرم افزارهای لینوکسی. به جای اینکه بری دستی بستههای نرم افزاری رو از اینترنت دانلود کنی، نصبشون کنی و نگران وابستگیها یا به روزرسانیها باشی، پکیج منیجر همه این کارا رو برات انجام میده.
تو ویندوز معمولاً نرم افزارها رو با اجرای یه فایل نصب (مثل فایل .exe) نصب میکنی. اما تو لینوکس، پکیج منیجرها این فرآیند رو خیلی راحتتر میکنن. اونها مثل یه فروشگاه بزرگن که همه بستههای نرم افزاری مورد نیازت توش موجوده. فقط کافیه اسم نرم افزار رو به پکیج منیجر بدی و خودش بقیه کارا رو انجام میده:
مثلاً فرض کن یه بازی جدید پیدا کردی. به جای اینکه بری دنبالش بگردی، فایل نصبش رو دانلود کنی، بعد متوجه بشی که برای اجراش به چندتا برنامه دیگه هم نیاز داری (که اونها رو هم باید جدا جدا پیدا و نصب کنی)، پکیج منیجر خودش همه این کارا رو در یک حرکت انجام میده.
حتی وقتی یه آپدیت جدید برای نرم افزارها میاد، پکیج منیجر بهت خبر میده و میتونی با یه دستور ساده همه چیز رو به روز کنی.
حالا که متوجه شدی پکیج منیجر یا مدیر بسته چیه، بریم سراغ YUM و ببینیم اون تو دنیای پکیج منیجرها چه نقشی بازی میکنه!

حالا بریم سراغ YUM! این ابزار (که مخفف Yellowdog Updater Modified هست)، یه سیستم مدیریت بسته رایگان و متن بازه که برای کار با بستههای RPM ساخته شده. با YUM میتونی به راحتی بستههای مختلف رو از مخازن دانلود کنی، نصب یا حذفشون کنی و حتی کل سیستم رو آپدیت کنی.
از ویژگیهای خفن YUM اینه که خودش هوشمنده و وقتی داری یه بسته رو نصب میکنی، میفهمه به چه چیزای دیگه ای نیاز داری و اونها رو هم به طور خودکار نصب میکنه. خلاصه اینکه، هر بسته ای که میخوای، YUM همه وابستگی هاش رو هم برات ردیف میکنه.
نکته ی مهم اینه که بهتره فقط با بستههای .rpm کار کنی، چون YUM برای مدیریت این بستهها طراحی شده. این بستهها شامل نرم افزارهای از پیش کامپایل شده و اطلاعات مربوط به وابستگیها هستن. معمولا این بستهها به یکی از دو فرمت زیر ارائه میشن:
بستهها توی مخازن مرکزی جمع میشن و از طریق اینترنت یا به صورت محلی در دسترس هستن. این مخازن مثل یه ویترین بزرگن که همه چیز رو توشون میتونی پیدا کنی، چه برای استفاده عمومی چه برای نیازهای خاص شرکتت.
YUM برای اینکه امنیت سیستمها رو هم تضمین کنه، میتونه امضاهای دیجیتال GPG رو چک کنه. یعنی وقتی این گزینه فعال باشه، فقط بستههای معتبر از مخازن معتبر نصب میشن و خیالت راحت میشه که چیزی رو از جای نامعتبر نصب نکردی.
در نهایت، Packagecloud هم بهت این امکان رو میده که مخازن امن و ابری برای بسته هات داشته باشی و سیستم هات رو بدون نیاز به زیرساختهای فیزیکی مدیریت کنی. این یعنی راحتی و امنیت در کنار هم.
هر ابزاری که در دنیای فناوری وجود داره، علاوه بر نقاط قوت، ممکنه یه سری نقاط ضعف هم داشته باشه. YUM هم از این قاعده مستثنا نیست. بیایم یه نگاهی به مزایا و معایب YUM بندازیم تا ببینیم این ابزار چطور میتونه به کارمون بیاد و کجاها ممکنه کمی چالش برانگیز باشه.
تو دنیای لینوکس ابزارهای مختلفی برای مدیریت بستهها داریم که هر کدوم بسته به نیاز و توزیعی که استفاده میکنی، میتونه به کار بیاد. YUM یکی از قدیمیترین و محبوبترین هاست، ولی رقبای قدرتمندی مثل APT، DNF و Zypper هم تو این حوزه حضور دارن. تو این بخش میخوایم یه مقایسه بین این ابزارها داشته باشیم تا راحتتر بفهمی کدوم یکی به دردت میخوره.
APT مدیر بسته ایه که تو توزیعهای Debian-محور مثل Ubuntu استفاده میشه. خب، بذار ببینیم APT چه تفاوت هایی با YUM داره:
| ویژگی | YUM (Red Hat-based) | APT (Debian-based) |
|---|---|---|
| پشتیبانی از توزیع ها | Red Hat، CentOS، Fedora | Debian، Ubuntu |
| فرمت بسته ها | RPM | DEB |
| مدیریت وابستگی ها | به طور خودکار و کامل | به طور خودکار و کامل |
| سرعت | کمی کندتر | سریع تر |
| کاربردپذیری | راحت و ساده برای مبتدی ها | نسبتاً ساده اما کمی تجربه میخواد |
| مخازن نرم افزاری | نیاز به اضافه کردن دستی بعضی مخازن | گستردهتر و به روزتر |
| امنیت | چک کردن امضای دیجیتال GPG | چک کردن امضای دیجیتال GPG |
توضیحات بیشتر
DNF در واقع نسخه ی پیشرفتهتر و مدرنتر YUM محسوب میشه و تو توزیع هایی مثل Fedora و CentOS 8 استفاده میشه. بیایم ببینیم DNF چه چیزی بیشتر از YUM داره:
| ویژگی | YUM | DNF |
|---|---|---|
| سرعت | کندتر | سریعتر و بهینه تر |
| مصرف منابع | سنگین تر | سبکتر و بهینه تر |
| مدیریت وابستگی ها | خوب ولی کندتر | سریعتر و بهتر |
| قابلیت ها | قدیمی ولی قابل اعتماد | مدرن و با امکانات بیشتر |
| امنیت | چک کردن GPG | امنیت بهتر و مدیریت مخازن قوی تر |
توضیحات بیشتر
Zypper مدیر بسته ایه که بیشتر تو توزیع openSUSE استفاده میشه و برای کاربرایی که دنبال انعطاف پذیری بیشتری هستن، گزینه خیلی مناسبیه.
| ویژگی | YUM | Zypper |
|---|---|---|
| سرعت | متوسط | سریعتر توی آپدیت ها |
| مدیریت وابستگی ها | خوب و دقیق | خیلی دقیق و انعطاف پذیر |
| پشتیبانی از توزیع ها | Red Hat، CentOS، Fedora | openSUSE، SLES |
| کاربردپذیری | راحت و ساده | مناسب برای کاربران حرفه ای |
| ابزارهای اضافی | محدودتر | ابزارهای پیشرفته مثل Snapper |
توضیحات بیشتر
خب، حالا انتخاب بهترین ابزار مدیریت بسته بستگی به این داره که از کدوم توزیع لینوکسی استفاده میکنی و نیازات چیه:
در نهایت، بستگی به توزیعی که استفاده میکنی و نیازهای خاص پروژت داره که کدوم یکی از این ابزارها برای تو مناسب تره. اما با داشتن این اطلاعات، حالا راحتتر میتونی تصمیم بگیری که کدوم پکیج منیجر بیشتر به کارت میاد!
تو این بخش میخوایم یاد بگیریم چطور با استفاده از ابزار YUM (که توسط RedHat توسعه داده شده) بستهها رو نصب، به روزرسانی، حذف و پیدا کنیم. همچنین یاد میگیریم چطور مخازن و بستهها رو مدیریت کنیم. لازمه ی این بخش اینه که یه آشنایی اولیه با دستورات لینوکس داشته باشی و روی سیستمت یه لینوکس در حال اجرا داشته باشی تا بتونی دستورات رو امتحان کنی.

برای نصب یه بسته مثل فایرفاکس، کافیه این دستور رو وارد کنی. 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اینطوری دیگه بدون اینکه ازت سوالی بپرسه، نصب به طور خودکار انجام میشه.
اگه بخوای یه بسته رو به طور کامل، همراه با همه وابستگی هاش حذف کنی، کافیه از دستور زیر استفاده کنی. فرض کنیم میخوای فایرفاکس رو حذف کنی. خیلی راحت میتونی این دستور رو وارد کنی:
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اینطوری فایرفاکس بدون اینکه سوالی ازت بپرسه، حذف میشه!
فرض کن یه نسخه قدیمی از بسته 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 بهت اطلاع میده که همه چیز به خوبی انجام شده.
اگه بخوای یه بسته خاص رو تو سیستم پیدا کنی، میتونی از تابع 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این دستور به طور خاص اون نسخه رو برات پیدا میکنه و نشون میده که آیا نصبه یا تو مخزن موجوده.
اگه اسم دقیق بسته ای که میخوای رو یادت رفته، نگران نباش! میتونی از دستور search برای جستجوی همه بستههای موجودی که اسمشون شبیه به چیزی که وارد کردی هست، استفاده کنی. مثلا برای پیدا کردن همه بسته هایی که شامل vsftpd هستن، کافیه این دستور رو وارد کنی:
yum search vsftpdYUM میاد و پلاگینهای لازم رو لود میکنه و بعد نتایج جستجو رو برات نمایش میده. این نتایج شامل بسته هایی هست که به کلمه مورد نظرت مرتبطن:
============================== 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 پیدا شدن. حالا میتونی بسته مورد نظرت رو از بین اونها انتخاب کنی.
فرض کن میخوای قبل از نصب یه بسته، اطلاعات بیشتری در موردش داشته باشی. برای اینکه اطلاعات کامل یه بسته رو ببینی، میتونی از دستور 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.اینجا میتونی اسم، نسخه، سایز، مخزن و توضیحات کامل بسته رو ببینی. این کمک میکنه که مطمئن بشی داری بسته درستی رو نصب میکنی.
اگه میخوای همه بستههای موجود توی پایگاه داده YUM رو ببینی، میتونی از دستور list استفاده کنی. این دستور همه بسته هایی که میتونی از مخازن نصب کنی رو نمایش میده. برای راحتتر دیدن این لیست میتونی از دستور زیر استفاده کنی:
yum list | lessبا این کار میتونی لیست بستهها رو صفحه به صفحه مرور کنی.
اگه میخوای ببینی چه بسته هایی الان روی سیستمت نصب شدن، میتونی از همون دستور list ولی با یه تغییر کوچیک استفاده کنی. این دستور همه بسته هایی که روی سیستمت نصب شدن رو نشون میده:
yum list installed | lessاینجا هم میتونی لیست بستههای نصب شده رو صفحه به صفحه ببینی و بررسی کنی که چه چیزهایی روی سیستمت نصب هستن.
قابلیت 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 و چه توی بستههای نصب شده.
اگه میخوای بدونی کدوم یکی از بسته هایی که روی سیستمت نصب شدن، آپدیت جدید دارن، میتونی از دستور check-update استفاده کنی. این دستور تمام بستههای نصب شده رو چک میکنه و میگه کدوم هاشون نیاز به آپدیت دارن. خیلی ساده، این دستور رو وارد کن:
yum check-updateYUM میره و همه بستههای نصب شده رو بررسی میکنه و اگه آپدیتی موجود باشه، لیستش رو بهت نشون میده. حالا میتونی تصمیم بگیری کدوم بستهها رو میخوای به روز کنی!
اگه میخوای سیستمت همیشه به روز و امن باشه، بهترین کار اینه که به روزرسانیهای امنیتی و بستههای جدید رو مرتباً نصب کنی. با اجرای این دستور، همه آپدیتهای لازم و آخرین پچها روی سیستمت نصب میشن:
yum updateYUM میره سراغ بستههای نصب شده و چک میکنه که کدوم هاشون نسخه جدیدتری دارن. بعد ازت میپرسه که آیا میخوای آپدیتها رو نصب کنی یا نه. با تایید کردن، همه بستهها و آپدیتهای جدید نصب میشن و سیستمت همیشه به روز و ایمن باقی میمونه.
تو لینوکس، بعضی از بستهها به صورت گروهی کنار هم قرار میگیرن. یعنی به جای اینکه تک تک بستهها رو نصب کنی، میتونی یه گروه مشخص رو نصب کنی که شامل همه بستههای مرتبطه. برای اینکه لیست همه گروههای موجود رو ببینی، کافیه از این دستور استفاده کنی:
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 رو انتخاب کنی که شامل همه ابزارهای مورد نیاز برای توسعه دهندگان هست و با نصبش کلی ابزار به کارت میاد.
اگه میخوای چندتا بسته مرتبط با هم رو به صورت یکجا نصب کنی، نیازی نیست دونه دونه این کار رو انجام بدی. با دستور 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!اگه قبلاً یه گروه از بستهها رو نصب کردی و حالا میخوای همه بستههای اون گروه رو به روزرسانی کنی، خیلی راحت میتونی با این دستور این کار رو انجام بدی:
# 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!اگه بخوای یه گروه بسته رو که قبلاً نصب کردی، به طور کامل از سیستمت حذف کنی، از این دستور استفاده کن:
# 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!اگه میخوای بدونی چه مخازن 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اگه بخوای همه مخازن، چه فعال و چه غیرفعال رو ببینی، میتونی از این دستور استفاده کنی:
# 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اگه میخوای یه بسته رو از یه مخزن خاص نصب کنی (چه اون مخزن فعال باشه چه غیرفعال)، میتونی از گزینه --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!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
>به طور پیش فرض، YUM همه اطلاعات مربوط به مخازن رو داخل یه پوشه کش میکنه که مسیرش معمولاً /var/cache/yum/ هست. برای اینکه این فایلهای کشی که دیگه لازم نیستن رو پاک کنی و فضای سیستمت رو آزاد کنی، بهتره هر از چند وقت یه بار این دستور رو بزنی:
# yum clean all
این دستور همه فایلهای کش مربوط به مخازن فعال رو پاک میکنه و سیستمت تمیزتر میشه. پس یادت باشه که به طور منظم این دستور رو اجرا کنی تا مطمئن بشی فضای اضافی سیستمت گرفته نمیشه.
اگه میخوای ببینی تو گذشته چه دستوراتی با 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 یه ابزار مدیریت بسته توی لینوکسه که بهت کمک میکنه بستهها رو نصب، به روزرسانی، حذف و مدیریت کنی. این ابزار وابستگیهای لازم رو به طور خودکار تشخیص میده و نصب یا حذف میکنه، بنابراین خیلی کار رو راحت میکنه.
اگه اسم دقیق بسته رو یادت رفته، میتونی از دستور yum search استفاده کنی و یه کلمه کلیدی مرتبط با بسته رو وارد کنی. YUM همه بسته هایی که شامل اون کلمه باشن رو برات لیست میکنه.
برای دیدن لیست همه بسته هایی که روی سیستمت نصب شدن، از دستور yum list installed استفاده کن. این دستور همه بستههای نصب شده رو نمایش میده.
برای نصب گروهی از بسته ها، از دستور yum groupinstall استفاده کن. این دستور همه بستههای مرتبط با یه گروه خاص رو نصب میکنه، مثلاً برای نصب MySQL Database میتونی از yum groupinstall 'MySQL Database' استفاده کنی.
برای پاک کردن فایلهای کشی که YUM ذخیره کرده، از دستور yum clean all استفاده کن. این کار باعث میشه فضای اضافی که توسط این فایلها اشغال شده، آزاد بشه.
برای دیدن تاریخچه دستورات و تراکنشهای YUM، از دستور yum history استفاده کن. این دستور نشون میده که قبلاً چه بسته هایی نصب، حذف یا به روز شدن.
DNF نسخه به روزتر و سریعتر YUM هست که توی توزیعهای جدیدتر مثل Fedora استفاده میشه. DNF سرعت بالاتری داره و مصرف منابع کمتری نسبت به YUM داره.
بله، برای این کار میتونی از دستور yum --enablerepo استفاده کنی و مخزن مورد نظرت رو مشخص کنی. مثلاً برای نصب یه بسته از یه مخزن غیرفعال، باید اون مخزن رو با این گزینه فعال کنی.
برای دیدن لیست همه مخازن فعال و غیرفعال روی سیستمت، از دستور yum repolist all استفاده کن. این دستور تمام مخازن رو با وضعیت فعال یا غیرفعالشون نمایش میده.
نه، YUM بستهها رو به طور خودکار نصب نمیکنه مگر اینکه خودت دستور yum install یا yum update رو بزنی. با این حال، میتونی تنظیماتی انجام بدی که YUM بستهها رو به صورت خودکار به روز کنه.
همون طور که گفتیم، YUM یه ابزار قدرتمند و ساده برای مدیریت بستهها توی توزیعهای مبتنی بر Red Hat مثل CentOS و Fedora هست. این ابزار بهت اجازه میده بستهها رو به راحتی نصب، حذف، به روز و مدیریت کنی. یکی از ویژگیهای خیلی خوب YUM اینه که به طور خودکار وابستگیهای لازم رو مدیریت میکنه و از این جهت وقت و دردسر کمتری بهت وارد میکنه.
از نصب گروهی بستهها تا پاک کردن کش و دیدن تاریخچه، YUM همه امکانات لازم رو در اختیارت قرار میده تا سیستمت همیشه تمیز و به روز بمونه. با داشتن این ابزار، میتونی بدون نگرانی و دردسر، بستههای مورد نیازت رو مدیریت کنی و مطمئن باشی که همه چیز به درستی کار میکنه.
دوره الفبای برنامه نویسی با هدف انتخاب زبان برنامه نویسی مناسب برای شما و پاسخگویی به سوالات متداول در شروع یادگیری موقتا رایگان شد: