20 Linux YUM (Yellowdog Updater, модифициран) команди за управление на пакети

Сподели

В тази статия ще научим как да инсталираме, актуализираме, премахваме, намираме пакети, управляваме пакети и хранилища в Linux системи, използвайки YUM (Yellowdog Updater е модифициран) инструмент, разработен от Червена шапка.

Примерните команди, показани в тази статия, са практически тествани на нашия сървър RHEL 8, можете да използвате тези материали за учебни цели, RHEL сертификати или просто за да проучите начини да инсталирате нови пакети и да поддържате системата си актуална.

Основното изискване на тази статия е, че трябва да имате основно разбиране за командите и работеща операционна система Linux, където можете да изследвате и практикувате всички команди, изброени по-долу.

Какво е YUM?

YUM (Yellowdog Updater е модифициран) е команден ред с отворен код, както и графично базиран инструмент за управление на пакети за обороти в минута (Мениджър на пакети RedHat) базирани Linux системи.

Той позволява на потребителите и системните администратори лесно да инсталират, актуализират, премахват или търсят софтуерни пакети в системата. Той е разработен и пуснат от Сет Видал под LPG (Общ публичен лиценз) като с отворен код, което означава, че на всеки може да бъде разрешено да изтегля и да има достъп до кода, за да коригира грешки и да разработва персонализирани пакети.

YUM използва множество хранилища на трети страни за автоматично инсталиране на пакети, като разрешава проблемите с техните зависимости.

Актуализация: The ням командата се заменя с командата dnf, която е версия от следващо поколение на yum и се счита за заместител на YUM в повечето по-нови RPM-базирани дистрибуции.

1. Инсталирайте пакет с YUM

За да инсталирате пакет, наречен Firefox, просто изпълнете командата по-долу, тя автоматично ще намери и инсталира всички необходими зависимости за Firefox.

# yum install firefox
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

Transaction Summary
================================================================================================
Install       0 Package(s)
Upgrade       2 Package(s)

Total download size: 32 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): firefox-10.0.6-1.el6.centos.i686.rpm                                |  20 MB   01:10
(2/2): xulrunner-10.0.6-1.el6.centos.i686.rpm                              |  12 MB   00:52
------------------------------------------------------------------------------------------------
Total                                                           63 kB/s |  32 MB   02:04

Updated:
  firefox.i686 0:10.0.6-1.el6.centos

Dependency Updated:
  xulrunner.i686 0:10.0.6-1.el6.centos

Complete!

Горната команда ще поиска потвърждение, преди да инсталирате който и да е пакет във вашата система. Ако искате да инсталирате пакети автоматично, без да искате потвърждение, използвайте опцията -y както е показано по-долу пример.

# yum -y install firefox

2. Премахване на пакет с YUM

За да премахнете напълно пакет с всички зависимости, просто изпълнете следната команда, както е показано по-долу.

# yum remove firefox
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

Dependencies Resolved

====================================================================================================
 Package                    Arch        Version                        Repository            Size        
====================================================================================================
Removing:
 firefox                    i686        10.0.6-1.el6.centos            @updates              23 M

Transaction Summary
====================================================================================================
Remove        1 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
Transaction Test Succeeded
Running Transaction
  Erasing        : firefox-10.0.6-1.el6.centos.i686                                                                                                                          1/1

Removed:
  firefox.i686 0:10.0.6-1.el6.centos

Complete!

По същия начин горната команда ще поиска потвърждение, преди да премахне пакет. За да деактивирате подкана за потвърждение, просто добавете опция -y както е показано по-долу.

# yum -y remove firefox

3. Актуализиране на пакет с помощта на YUM

Да приемем, че имате остаряла версия на пакета MySQL и искате да го актуализирате до най-новата стабилна версия. Просто изпълнете следната команда, тя автоматично ще разреши всички проблеми със зависимостите и ще ги инсталира.

# yum update mysql
Loaded plugins: fastestmirror
Dependencies Resolved

============================================================================================================
 Package            Arch                Version                    Repository                    Size
============================================================================================================
Updating:
 vsftpd             i386                2.0.5-24.el5_8.1           updates                       144 k

Transaction Summary
============================================================================================================
Install       0 Package(s)
Upgrade       1 Package(s)

Total size: 144 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating       : vsftpd                                                                     1/2
  Cleanup        : vsftpd                                                                     2/2

Updated:
  vsftpd.i386 0:2.0.5-24.el5_8.1

Complete!

4. Избройте пакет с помощта на YUM

Използвай списък функция за търсене на конкретния пакет с име. Например за търсене на пакет, наречен OpenSSH, използвайте командата.

# yum list openssh
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.neu.edu.cn
 * epel: mirror.neu.edu.cn
 * extras: mirror.neu.edu.cn
 * rpmforge: mirror.nl.leaseweb.net
 * updates: mirror.nus.edu.sg
Installed Packages
openssh.i386                                       4.3p2-72.el5_6.3                                                                      installed
Available Packages                                 4.3p2-82.el5                                                                          base

За да направите търсенето си по-точно, дефинирайте имената на пакети с тяхната версия, в случай че знаете. Например за търсене на конкретна версия OpenSSH-4.3p2 на пакета, използвайте командата.

# yum list openssh-4.3p2

[ You might also like: How to Secure and Harden OpenSSH Server ]

5. Потърсете пакет с YUM

Ако не помните точното име на опаковката, използвайте Търсене функция за търсене на всички налични пакети, за да съответстват на името на пакета, който сте посочили. Например, за да търсите във всички пакети, които съответстват на думата.

# yum search vsftpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.neu.edu.cn
 * epel: mirror.neu.edu.cn
 * extras: mirror.neu.edu.cn
 * rpmforge: mirror.nl.leaseweb.net
 * updates: ftp.iitm.ac.in
============================== Matched: vsftpd ========================
ccze.i386 : A robust log colorizer
pure-ftpd-selinux.i386 : SELinux support for Pure-FTPD
vsftpd.i386 : vsftpd - Very Secure Ftp Daemon

6. Получете информация за пакет с помощта на YUM

Кажете, че бихте искали да знаете информацията за пакет, преди да го инсталирате. За да получите информация за пакет, просто издайте командата по-долу.

# yum info firefox
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.neu.edu.cn
 * epel: mirror.neu.edu.cn
 * extras: mirror.neu.edu.cn
 * rpmforge: mirror.nl.leaseweb.net
 * updates: ftp.iitm.ac.in
Available Packages
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, използвайте командата по-долу.

# yum list | less

8. Избройте всички инсталирани пакети с помощта на YUM

За да изброите всички инсталирани пакети в системата, просто издайте командата по-долу, тя ще покаже всички инсталирани пакети.

# yum list installed | less

9. Yum осигурява функция

ням осигурява функцията се използва за намиране на кой пакет принадлежи даден файл. Например, ако искате да знаете името на пакета, който съдържа /etc/httpd/conf/httpd.conf.

# yum provides /etc/httpd/conf/httpd.conf
Loaded plugins: fastestmirror
httpd-2.2.3-63.el5.centos.i386 : Apache HTTP Server
Repo        : base
Matched from:
Filename    : /etc/httpd/conf/httpd.conf

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

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

httpd-2.2.3-53.el5.centos.1.i386 : Apache HTTP Server
Repo        : installed
Matched from:
Other       : Provides-match: /etc/httpd/conf/httpd.conf

10. Проверете за налични актуализации с помощта на Yum

За да разберете колко инсталирани пакета във вашата система имат налични актуализации, проверете, за да използвате следната команда.

# yum check-update

11. Актуализирайте системата с помощта на Yum

За да поддържате системата си актуална с всички актуализации за сигурност и двоични пакети, изпълнете следната команда. Той ще инсталира всички най-нови корекции и актуализации на сигурността на вашата система.

# yum update

12. Избройте всички налични групови пакети

В Linux редица пакети са обединени в определена група. Вместо да инсталирате отделни пакети с yum, можете да инсталирате определена група, която ще инсталира всички свързани пакети, които принадлежат към групата. Например, за да изброите всички налични групи, просто издайте следната команда.

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

13. Инсталирайте групови пакети

За да инсталираме конкретна група пакети, ние използваме опцията as групова инсталация. Например, за да инсталирате “MySQL база данни“, просто изпълнете командата по-долу.

# 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

16. Избройте всички активирани и деактивирани Yum хранилища

Следната команда ще покаже всички активирани и деактивирани yum хранилища в системата.

# 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

17. Инсталирайте пакет от конкретно хранилище

За да инсталирате конкретен пакет от конкретно активирано или деактивирано хранилище, трябва да използвате --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!

18. Интерактивен Yum Shell

Помощната програма 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
>

19. Почистете Yum Cache

По подразбиране yum съхранява всички пакетни данни с активиран хранилище /var/cache/yum/ с всяка поддиректория, за да почистите всички кеширани файлове от активираното хранилище, трябва да изпълнявате редовно следната команда, за да почистите целия кеш и да се уверите, че няма нищо ненужно пространство, което се използва. Не искаме да даваме изхода на командата по-долу, защото обичаме да съхраняваме кешираните данни такива, каквито са.

# yum clean all

20. Вижте историята на Yum

За да видите всички минали транзакции на командата yum, просто използвайте следната команда.

# 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 команди, може да е пропуснало. Моля, актуализирайте ни чрез нашето поле за коментари. Така че ние продължаваме да актуализираме същото въз основа на получените отзиви.

Публикациите се превеждат автоматично с google translate


Сподели