در این مقاله می آموزیم که چگونه از ابزار YUM توسعه یافته توسط Red Hat برای نصب ، بروزرسانی ، حذف ، جستجو، و مدیریت نرم افزار استفاده کنیم . یام (Yellowdog Updater Modified) که به اختصار به آن YUM گفته میشود یک خط فرمان متن باز و ابزاری برای مدیریت بسته گرافیکی مبتنی بر RPM (red hat package manager) در سیستم عامل لینوکس است و به کاربران و مدیران سیستم اجازه می دهد که به راحتی بسته نرم افزاری در سیستم را نصب، بروز رسانی، حذف و یا جستجو کنند. این ابزار متن باز توسعه یافته توسط Seth Vidal دارای مجوز GPL (General Public License) می باشد.
مدیریت بسته های نرم افزاری در لینوکس
1 - نصب بسته نرم افزاری با استفاده از YUM :
برای نصب یک بسته گیت git فقط دستور زیر را اجرا کنید تا به طور خودکار تمام پکیج های وابسته به git پیدا و نصب شود.
دستور فوق به تایید نیازخواهد داشت، پس از آن بسته نرم افزار بر روی سیستم شما نصب میشود. اگر برای نصب نرم افزار به طور خودکار هیچ تائیدیه ای از شما خواسته نشد ، همانطور که در مثال زیر نشان داده شده است می توانید از گزینه y- استفاده کنید.
2 - حذف بسته های نرم افزاری با استفاده از YUM :
اگر می خواهید بسته را با تمام وابستگیهای آن به طور کامل حذف کنید ، فقط باید دستور زیر را اجرا کنید :
3 - به روز رسانی بسته های نرم افزاری با استفاده از YUM :
فرض کنید که میخواهید بسته نرم افزار GCC خود را به آخرین نسخه پایدار بروزرسانی کنید . برای اینکار فقط باید فرمان زیر را اجرا کنید، تا به طور خودکار تمام پکیج های وابسته را بروزرسانی و نصب کند.
4 - لیست کردن بسته نرم افزاری نصب شده با استفاده از YUM :
با استفاده از تابع list، می توانید یک نرم افزار خاص را با نام آن بسته جستجو کنید. به عنوان مثال، برای پیدا کردن بسته gcc از دستور زیر استفاده کنید :
5 - بررسی تاریخ استفاده از YUM :
برای مشاهده تاریخ استفاده از دستور یام تا قبل از اجرای دستور زیر :
6 - پاک کردن کش YUM :
YUM به طور پیش فرض، تمام داده های کتابخانه نرم افزار libiray sotware را در /var/cache/yum/ ذخیره میکند، اگر می خواهید تمام فایل ذخیره شده را پاک کنید ، باید به صورت دوره ای دستور زیر را اجرا کنید :
7 - آپدیت سیستم لینوکس با استفاده از دستور yum update :
اگر می خواهید سیستم خود را با تمام بسته های باینری و امنیتی بروز نگهدارید، دستور زیر را اجرا کنید.
8 - جستجو پکیج با استفاده از دستور YUM :
در صورتی که شما نام دقیق پکیج را به یاد داشته باشید، می توانید با استفاده از تابع search همه پکیج های موجود که با نام مورد نظر شما مطابقت دارند را پیدا کنید . به عنوان مثال، برای جستجو یک بسته نرم افزار کلمه ” GCC” را در تابع search قرار دهید :
9 - دریافت اطلاعات بسته نرم افزاری با استفاده از دستور YUM :
برای دریافت برخی اطلاعات در مورد بسته، فقط فرمان زیر را اجرا کنید :
۱۰ – فهرست کردن تمام بسته های موجود در دیتابیس یام با استفاده از دستور YUM list :
اگر میخواهید تمام پکیج های موجود در دیتابیس YUM را لیست کنید دستور زیر را اجرا کنید :
نویسنده سپیده محراب
مدیریت بسته های نرم افزاری در لینوکس
1 - نصب بسته نرم افزاری با استفاده از YUM :
برای نصب یک بسته گیت git فقط دستور زیر را اجرا کنید تا به طور خودکار تمام پکیج های وابسته به git پیدا و نصب شود.
کد PHP:
[root@devops ~]# yum install git
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.grandcloud.cn
* extras: mirrors.grandcloud.cn
* updates: mirrors.grandcloud.cn
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package git.x86_64 0:1.7.1-3.el6_4.1 will be installed
--> Processing Dependency: perl-Git = 1.7.1-3.el6_4.1 for package: git-1.7.1-3.el6_4.1.x86_64
--> Processing Dependency: rsync for package: git-1.7.1-3.el6_4.1.x86_64
--> Processing Dependency: perl(Git) for package: git-1.7.1-3.el6_4.1.x86_64
--> Processing Dependency: perl(Error) for package: git-1.7.1-3.el6_4.1.x86_64
--> Running transaction check
---> Package perl-Error.noarch 1:0.17015-4.el6 will be installed
---> Package perl-Git.noarch 0:1.7.1-3.el6_4.1 will be installed
---> Package rsync.x86_64 0:3.0.6-9.el6_4.1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==========================================================================================================
Package Arch Version Repository Size
==========================================================================================================
Installing:
git x86_64 1.7.1-3.el6_4.1 base 4.6 M
Installing for dependencies:
perl-Error noarch 1:0.17015-4.el6 base 29 k
perl-Git noarch 1.7.1-3.el6_4.1 base 28 k
rsync x86_64 3.0.6-9.el6_4.1 base 334 k
Transaction Summary
==========================================================================================================
Install 4 Package(s)
Total download size: 5.0 M
Installed size: 15 M
Is this ok [y/N]: y
Downloading Packages:
(1/4): git-1.7.1-3.el6_4.1.x86_64.rpm | 4.6 MB 00:03
(2/4): perl-Error-0.17015-4.el6.noarch.rpm | 29 kB 00:00
(3/4): perl-Git-1.7.1-3.el6_4.1.noarch.rpm | 28 kB 00:00
(4/4): rsync-3.0.6-9.el6_4.1.x86_64.rpm | 334 kB 00:00
----------------------------------------------------------------------------------------------------------
Total 1.1 MB/s | 5.0 MB 00:04
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : 1:perl-Error-0.17015-4.el6.noarch 1/4
Installing : rsync-3.0.6-9.el6_4.1.x86_64 2/4
Installing : perl-Git-1.7.1-3.el6_4.1.noarch 3/4
Installing : git-1.7.1-3.el6_4.1.x86_64 4/4
Verifying : rsync-3.0.6-9.el6_4.1.x86_64 1/4
Verifying : git-1.7.1-3.el6_4.1.x86_64 2/4
Verifying : perl-Git-1.7.1-3.el6_4.1.noarch 3/4
Verifying : 1:perl-Error-0.17015-4.el6.noarch 4/4
Installed:
git.x86_64 0:1.7.1-3.el6_4.1
Dependency Installed:
perl-Error.noarch 1:0.17015-4.el6 perl-Git.noarch 0:1.7.1-3.el6_4.1 rsync.x86_64 0:3.0.6-9.el6_4.1
Complete!
[root@devops ~]#
دستور فوق به تایید نیازخواهد داشت، پس از آن بسته نرم افزار بر روی سیستم شما نصب میشود. اگر برای نصب نرم افزار به طور خودکار هیچ تائیدیه ای از شما خواسته نشد ، همانطور که در مثال زیر نشان داده شده است می توانید از گزینه y- استفاده کنید.
کد PHP:
[root@devops ~]# yum -y install gcc
2 - حذف بسته های نرم افزاری با استفاده از YUM :
اگر می خواهید بسته را با تمام وابستگیهای آن به طور کامل حذف کنید ، فقط باید دستور زیر را اجرا کنید :
کد PHP:
[root@devops ~]# yum remove git
Loaded plugins: fastestmirror
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package git.x86_64 0:1.7.1-3.el6_4.1 will be erased
--> Processing Dependency: git = 1.7.1-3.el6_4.1 for package: perl-Git-1.7.1-3.el6_4.1.noarch
--> Running transaction check
---> Package perl-Git.noarch 0:1.7.1-3.el6_4.1 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
==========================================================================================================
Package Arch Version Repository Size
==========================================================================================================
Removing:
git x86_64 1.7.1-3.el6_4.1 @base 15 M
Removing for dependencies:
perl-Git noarch 1.7.1-3.el6_4.1 @base 35 k
Transaction Summary
==========================================================================================================
Remove 2 Package(s)
Installed size: 15 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Erasing : perl-Git-1.7.1-3.el6_4.1.noarch 1/2
Erasing : git-1.7.1-3.el6_4.1.x86_64 2/2
Verifying : git-1.7.1-3.el6_4.1.x86_64 1/2
Verifying : perl-Git-1.7.1-3.el6_4.1.noarch 2/2
Removed:
git.x86_64 0:1.7.1-3.el6_4.1
Dependency Removed:
perl-Git.noarch 0:1.7.1-3.el6_4.1
Complete!
[root@devops ~]#
فرض کنید که میخواهید بسته نرم افزار GCC خود را به آخرین نسخه پایدار بروزرسانی کنید . برای اینکار فقط باید فرمان زیر را اجرا کنید، تا به طور خودکار تمام پکیج های وابسته را بروزرسانی و نصب کند.
کد PHP:
[root@devops ~]# yum update gcc
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.grandcloud.cn
* extras: mirrors.grandcloud.cn
* updates: mirrors.grandcloud.cn
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package gcc.x86_64 0:4.4.7-3.el6 will be updated
--> Processing Dependency: gcc = 4.4.7-3.el6 for package: gcc-c++-4.4.7-3.el6.x86_64
---> Package gcc.x86_64 0:4.4.7-4.el6 will be an update
--> Processing Dependency: libgomp = 4.4.7-4.el6 for package: gcc-4.4.7-4.el6.x86_64
--> Processing Dependency: cpp = 4.4.7-4.el6 for package: gcc-4.4.7-4.el6.x86_64
--> Processing Dependency: libgcc >= 4.4.7-4.el6 for package: gcc-4.4.7-4.el6.x86_64
--> Running transaction check
---> Package cpp.x86_64 0:4.4.7-3.el6 will be updated
---> Package cpp.x86_64 0:4.4.7-4.el6 will be an update
---> Package gcc-c++.x86_64 0:4.4.7-3.el6 will be updated
---> Package gcc-c++.x86_64 0:4.4.7-4.el6 will be an update
--> Processing Dependency: libstdc++-devel = 4.4.7-4.el6 for package: gcc-c++-4.4.7-4.el6.x86_64
--> Processing Dependency: libstdc++ = 4.4.7-4.el6 for package: gcc-c++-4.4.7-4.el6.x86_64
---> Package libgcc.x86_64 0:4.4.7-3.el6 will be updated
---> Package libgcc.x86_64 0:4.4.7-4.el6 will be an update
---> Package libgomp.x86_64 0:4.4.7-3.el6 will be updated
---> Package libgomp.x86_64 0:4.4.7-4.el6 will be an update
--> Running transaction check
---> Package libstdc++.x86_64 0:4.4.7-3.el6 will be updated
---> Package libstdc++.x86_64 0:4.4.7-4.el6 will be an update
---> Package libstdc++-devel.x86_64 0:4.4.7-3.el6 will be updated
---> Package libstdc++-devel.x86_64 0:4.4.7-4.el6 will be an update
--> Finished Dependency Resolution
Dependencies Resolved
==========================================================================================================
Package Arch Version Repository Size
==========================================================================================================
Updating:
gcc x86_64 4.4.7-4.el6 base 10 M
Updating for dependencies:
cpp x86_64 4.4.7-4.el6 base 3.7 M
gcc-c++ x86_64 4.4.7-4.el6 base 4.7 M
libgcc x86_64 4.4.7-4.el6 base 101 k
libgomp x86_64 4.4.7-4.el6 base 118 k
libstdc++ x86_64 4.4.7-4.el6 base 293 k
libstdc++-devel x86_64 4.4.7-4.el6 base 1.6 M
Transaction Summary
==========================================================================================================
Upgrade 7 Package(s)
Total download size: 21 M
Is this ok [y/N]:
با استفاده از تابع list، می توانید یک نرم افزار خاص را با نام آن بسته جستجو کنید. به عنوان مثال، برای پیدا کردن بسته gcc از دستور زیر استفاده کنید :
کد PHP:
[root@devops ~]# yum list gcc
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.grandcloud.cn
* extras: mirrors.grandcloud.cn
* updates: mirrors.grandcloud.cn
base | 3.7 kB 00:00
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
updates/primary_db | 2.1 MB 00:06
Installed Packages
gcc.x86_64 4.4.7-3.el6 @base
Available Packages
gcc.x86_64 4.4.7-4.el6 base
[root@devops ~]#
برای مشاهده تاریخ استفاده از دستور یام تا قبل از اجرای دستور زیر :
کد PHP:
[root@devops ~]# yum history
Loaded plugins: fastestmirror
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
8 | root <root> | 2014-03-04 22:24 | Erase | 2
7 | root <root> | 2014-03-04 22:22 | Install | 4
6 | root <root> | 2014-02-27 18:16 | Install | 2
5 | root <root> | 2014-01-07 10:53 | Install | 1
4 | root <root> | 2013-07-31 17:58 | I, U | 52
3 | root <root> | 2013-07-31 17:58 | Install | 1
2 | root <root> | 2013-07-31 17:53 | Install | 1
1 | System <unset> | 2012-12-17 09:06 | Install | 218
history list
[root@devops ~]#
YUM به طور پیش فرض، تمام داده های کتابخانه نرم افزار libiray sotware را در /var/cache/yum/ ذخیره میکند، اگر می خواهید تمام فایل ذخیره شده را پاک کنید ، باید به صورت دوره ای دستور زیر را اجرا کنید :
کد PHP:
[root@devops ~]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: base extras updates
Cleaning up Everything
Cleaning up list of fastest mirrors
[root@devops ~]#
اگر می خواهید سیستم خود را با تمام بسته های باینری و امنیتی بروز نگهدارید، دستور زیر را اجرا کنید.
کد PHP:
[root@devops ~]# yum update
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.163.com
base | 3.7 kB 00:00
base/primary_db | 4.4 MB 00:04
extras | 3.4 kB 00:00
extras/primary_db | 19 kB 00:00
updates | 3.4 kB 00:00
updates/primary_db | 2.1 MB 00:01
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package authconfig.x86_64 0:6.1.12-10.el6 will be updated
---> Package authconfig.x86_64 0:6.1.12-13.el6 will be an update
---> Package bash.x86_64 0:4.1.2-9.el6_2 will be updated
---> Package bash.x86_64 0:4.1.2-15.el6_4 will be an update
---> Package bfa-firmware.noarch 0:3.0.0.0-1.el6 will be updated
...
Total download size: 134 M
Is this ok [y/N]: n
در صورتی که شما نام دقیق پکیج را به یاد داشته باشید، می توانید با استفاده از تابع search همه پکیج های موجود که با نام مورد نظر شما مطابقت دارند را پیدا کنید . به عنوان مثال، برای جستجو یک بسته نرم افزار کلمه ” GCC” را در تابع search قرار دهید :
کد PHP:
[root@devops ~]# yum search gcc
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.163.com
========================================================= N/S Matched: gcc =========================================================
gcc-c++.x86_64 : C++ support for GCC
gcc-gnat.x86_64 : Ada 95 support for GCC
gcc-java.x86_64 : Java support for GCC
gcc-objc.x86_64 : Objective-C support for GCC
gcc-objc++.x86_64 : Objective-C++ support for GCC
libgcc.x86_64 : GCC version 4.4 shared support library
mingw32-gcc.x86_64 : MinGW Windows cross-compiler (GCC) for C
compat-gcc-34.x86_64 : Compatibility GNU Compiler Collection
compat-gcc-34-c++.x86_64 : C++ support for compatibility compiler
compat-gcc-34-g77.x86_64 : Fortran 77 support for compatibility compiler
gcc.x86_64 : Various compilers (C, C++, Objective-C, Java, ...)
gcc-gfortran.x86_64 : Fortran support
libgcj.x86_64 : Java runtime library for gcc
libgcj-devel.x86_64 : Libraries for Java development using GCC
libgcj-src.x86_64 : Java library sources from GCC4 preview
libgomp.x86_64 : GCC OpenMP v3.0 shared support library
libmudflap.x86_64 : GCC mudflap shared support library
libmudflap-devel.x86_64 : GCC mudflap support
mingw32-gcc-c++.x86_64 : MinGW Windows cross-compiler for C++
mingw32-gcc-gfortran.x86_64 : MinGW Windows cross-compiler for FORTRAN
mingw32-gcc-objc.x86_64 : MinGW Windows cross-compiler support for Objective C
mingw32-gcc-objc++.x86_64 : MinGW Windows cross-compiler support for Objective C++
Name and summary matches only, use "search all" for everything.
[root@devops ~]#
برای دریافت برخی اطلاعات در مورد بسته، فقط فرمان زیر را اجرا کنید :
کد PHP:
[root@devops ~]# yum info gcc
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.163.com
Installed Packages
Name : gcc
Arch : x86_64
Version : 4.4.7
Release : 3.el6
Size : 19 M
Repo : installed
From repo : base
Summary : Various compilers (C, C++, Objective-C, Java, ...)
URL : http://gcc.gnu.org
License : GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions
Description : The gcc package contains the GNU Compiler Collection version 4.4.
: You'll need this package in order to compile C code.
Available Packages
Name : gcc
Arch : x86_64
Version : 4.4.7
Release : 4.el6
Size : 10 M
Repo : base
Summary : Various compilers (C, C++, Objective-C, Java, ...)
URL : http://gcc.gnu.org
License : GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions
Description : The gcc package contains the GNU Compiler Collection version 4.4.
: You'll need this package in order to compile C code.
اگر میخواهید تمام پکیج های موجود در دیتابیس YUM را لیست کنید دستور زیر را اجرا کنید :
کد PHP:
[root@devops ~]# yum list | more
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.163.com
* updates: mirrors.163.com
Installed Packages
MAKEDEV.x86_64 3.24-6.el6 @anaconda-CentOS-201207061011.x86_64/6.3
acl.x86_64 2.2.49-6.el6 @anaconda-CentOS-201207061011.x86_64/6.3
aic94xx-firmware.noarch 30-2.el6 @anaconda-CentOS-201207061011.x86_64/6.3
atmel-firmware.noarch 1.3-7.el6 @anaconda-CentOS-201207061011.x86_64/6.3
attr.x86_64 2.4.44-7.el6 @anaconda-CentOS-201207061011.x86_64/6.3
audit.x86_64 2.2-2.el6 @anaconda-CentOS-201207061011.x86_64/6.3
audit-libs.x86_64 2.2-2.el6 @anaconda-CentOS-201207061011.x86_64/6.3
authconfig.x86_64 6.1.12-10.el6 @anaconda-CentOS-201207061011.x86_64/6.3
autoconf.noarch 2.63-5.1.el6 @base
automake.noarch 1.11.1-4.el6 @base
b43-openfwwf.noarch 5.2-4.el6 @anaconda-CentOS-201207061011.x86_64/6.3
basesystem.noarch 10.0-4.el6 @anaconda-CentOS-201207061011.x86_64/6.3
bash.x86_64 4.1.2-9.el6_2 @anaconda-CentOS-201207061011.x86_64/6.3
bfa-firmware.noarch 3.0.0.0-1.el6 @an
11. List all installed packages using YUM command
List all installed packages to, just execute the following command, it will show all of the installed packages.
[root@devops ~]# yum list installed | more
Loaded plugins: fastestmirror
Installed Packages
MAKEDEV.x86_64 3.24-6.el6 @anaconda-CentOS-201207061011.x86_64/6.3
acl.x86_64 2.2.49-6.el6 @anaconda-CentOS-201207061011.x86_64/6.3
aic94xx-firmware.noarch
30-2.el6 @anaconda-CentOS-201207061011.x86_64/6.3
atmel-firmware.noarch 1.3-7.el6 @anaconda-CentOS-201207061011.x86_64/6.3
attr.x86_64 2.4.44-7.el6 @anaconda-CentOS-201207061011.x86_64/6.3
audit.x86_64 2.2-2.el6 @anaconda-CentOS-201207061011.x86_64/6.3
audit-libs.x86_64 2.2-2.el6 @anaconda-CentOS-201207061011.x86_64/6.3
authconfig.x86_64 6.1.12-10.el6 @anaconda-CentOS-201207061011.x86_64/6.3
...