مدیریت بسته های نرم افزاری در لینوکس

مدیریت بسته های نرم افزاری در لینوکس

در این مقاله می آموزیم که چگونه از ابزار YUM توسعه یافته توسط  Red Hat  برای نصب ، بروزرسانی ، حذف ، جستجو، و مدیریت نرم افزار استفاده کنیم . یام (Yellowdog Updater Modified) که به اختصار به آن YUM گفته میشود یک خط فرمان متن باز و ابزاری برای مدیریت بسته گرافیکی مبتنی بر RPM (red hat package manager) در سیستم عامل لینوکس است و به کاربران و مدیران سیستم اجازه می دهد که به راحتی بسته نرم افزاری در سیستم را نصب، بروز رسانی، حذف و یا جستجو کنند. این ابزار متن باز توسعه یافته توسط Seth Vidal دارای مجوز GPL (General Public License) می باشد.

مدیریت بسته های نرم افزاری در لینوکس
مدیریت بسته های نرم افزاری در لینوکس

مدیریت بسته های نرم افزاری در لینوکس

۱٫ نصب بسته نرم افزاری با استفاده از YUM

برای نصب یک بسته گیت git فقط دستور زیر را اجرا کنید تا به طور خودکار تمام پکیج های وابسته به git پیدا و نصب شود.

[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- استفاده کنید.

[root@devops ~]# yum -y install gcc

 

2. حذف بسته های نرم افزاری با استفاده از YUM

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

[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 ~]#

 

 

3. به روز رسانی بسته های نرم افزاری با استفاده از YUM

فرض کنید که میخواهید بسته نرم افزار GCC خود را به آخرین نسخه پایدار بروزرسانی کنید . برای اینکار فقط باید فرمان زیر را اجرا کنید، تا به طور خودکار تمام پکیج های وابسته را بروزرسانی و نصب کند.

[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]:

 

4.لیست کردن بسته نرم افزاری نصب شده با استفاده از YUM

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

[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 ~]#

 

5. بررسی تاریخ استفاده از YUM

برای مشاهده تاریخ استفاده از دستور یام تا قبل از اجرای دستور زیر :

 

[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 ~]#

 

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

YUM به طور پیش فرض، تمام داده های کتابخانه نرم افزار libiray sotware را در /var/cache/yum/ ذخیره میکند، اگر می خواهید تمام فایل ذخیره شده را پاک کنید ، باید به صورت دوره ای دستور زیر را اجرا کنید:

[root@devops ~]# yum clean all
 Loaded plugins: fastestmirror
 Cleaning repos: base extras updates
 Cleaning up Everything
 Cleaning up list of fastest mirrors
 [root@devops ~]#

 

7.آپدیت سیستم لینوکس با استفاده از دستور yum update

اگر می خواهید سیستم خود را با تمام بسته های باینری و امنیتی بروز نگهدارید، دستور زیر را اجرا کنید.

[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

 

8. جستجو پکیج با استفاده از دستور YUM

در صورتی که شما نام دقیق پکیج را به یاد داشته باشید، می توانید با استفاده از تابع search همه پکیج های موجود که با نام مورد نظر شما مطابقت دارند را پیدا کنید . به عنوان مثال، برای جستجو یک بسته نرم افزار کلمه ”  GCC” را در تابع  search قرار دهید:

[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 ~]#

9. دریافت اطلاعات بسته نرم افزاری با استفاده از دستور YUM

برای دریافت برخی اطلاعات در مورد بسته، فقط فرمان زیر را اجرا کنید:

[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.

 

10 – فهرست کردن تمام بسته های موجود در دیتابیس یام با استفاده از دستور YUM list

اگر میخواهید تمام پکیج های موجود در دیتابیس YUM را لیست کنید دستور زیر را اجرا کنید :

[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
 ...

 

 

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *