تو دنیای پرسرعت تکنولوژی، وقتی داری محصولی رو توسعه میدی یا ازش پشتیبانی میکنی، خیلی مهمه که بتونی همه چی رو سریع و بدون دردسر تنظیم و آپدیت کنی. حالا فکر کن چقدر خوب میشد اگه یه سیستمی داشتیم که همه این کارها رو برامون راحت و امن انجام بده. خوشبختانه همچین چیزی هست! سیستمهای مدیریت بسته، دقیقا همین کار رو میکنن. امروز قراره بریم سراغ یکی از معروفترینشون به اسم 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 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 پیدا شدن. حالا میتونی بسته مورد نظرت رو از بین اونها انتخاب کنی.
فرض کن میخوای قبل از نصب یه بسته، اطلاعات بیشتری در موردش داشته باشی. برای اینکه اطلاعات کامل یه بسته رو ببینی، میتونی از دستور 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-update
YUM میره و همه بستههای نصب شده رو بررسی میکنه و اگه آپدیتی موجود باشه، لیستش رو بهت نشون میده. حالا میتونی تصمیم بگیری کدوم بستهها رو میخوای بهروز کنی!
اگه میخوای سیستمت همیشه بهروز و امن باشه، بهترین کار اینه که بهروزرسانیهای امنیتی و بستههای جدید رو مرتباً نصب کنی. با اجرای این دستور، همه آپدیتهای لازم و آخرین پچها روی سیستمت نصب میشن:
yum update
YUM میره سراغ بستههای نصب شده و چک میکنه که کدومهاشون نسخه جدیدتری دارن. بعد ازت میپرسه که آیا میخوای آپدیتها رو نصب کنی یا نه. با تایید کردن، همه بستهها و آپدیتهای جدید نصب میشن و سیستمت همیشه بهروز و ایمن باقی میمونه.
تو لینوکس، بعضی از بستهها به صورت گروهی کنار هم قرار میگیرن. یعنی به جای اینکه تکتک بستهها رو نصب کنی، میتونی یه گروه مشخص رو نصب کنی که شامل همه بستههای مرتبطه. برای اینکه لیست همه گروههای موجود رو ببینی، کافیه از این دستور استفاده کنی:
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 همه امکانات لازم رو در اختیارت قرار میده تا سیستمت همیشه تمیز و بهروز بمونه. با داشتن این ابزار، میتونی بدون نگرانی و دردسر، بستههای مورد نیازت رو مدیریت کنی و مطمئن باشی که همه چیز به درستی کار میکنه.
دوره الفبای برنامه نویسی با هدف انتخاب زبان برنامه نویسی مناسب برای شما و پاسخگویی به سوالات متداول در شروع یادگیری موقتا رایگان شد: