20 YUM komandas Linux pakotņu pārvaldībai


Šajā rakstā mēs uzzināsim, kā instalēt, atjaunināt, noņemt, atrast paketes, pārvaldīt paketes un krātuves Linux sistēmās, izmantojot RedHat izstrādāto YUM (Yellowdog Updater Modified) rīku. Šajā rakstā parādītās komandu piemēri ir praktiski pārbaudīti mūsu CentOS 6.3 serverī. Jūs varat izmantot šo materiālu mācību mērķiem, sertifikātiem vai vienkārši izpētīt veidus, kā instalēt jaunas paketes un uzturēt savu sistēmu atjauninātu. Šī raksta pamatprasība ir tāda, ka jums ir jābūt pamatzināšanām par komandām un darbojošai Linux operētājsistēmai, kurā varat izpētīt un praktizēt visas zemāk uzskaitītās komandas.

Kas ir YUM?

YUM (modificēts Yellowdog Updater Modified) ir atvērtā pirmkoda komandrinda, kā arī grafisku pakotņu pārvaldības rīks RPM (RedHat Package Manager) balstītām Linux sistēmām. Tas ļauj lietotājiem un sistēmas administratoram viegli instalēt, atjaunināt, noņemt vai meklēt programmatūras pakotnes sistēmās. To izstrādāja un izlaida Sets Vidals saskaņā ar GPL (General Public License) kā atvērto avotu. Tas nozīmē, ka ikviens var atļaut lejupielādēt kodu un piekļūt tam, lai labotu kļūdas un izstrādātu pielāgotas paketes. YUM izmanto daudzas trešo pušu krātuves, lai automātiski instalētu paketes, atrisinot to atkarības problēmas.

Lai instalētu paketi ar nosaukumu Firefox 14, vienkārši palaidiet zemāk esošo komandu, tā automātiski atradīs un instalēs visas nepieciešamās Firefox atkarības.

# 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!

Iepriekš minētā komanda lūgs apstiprinājumu pirms jebkura pakotnes instalēšanas jūsu sistēmā. Ja vēlaties pakotnes instalēt automātiski, neprasot nekādu apstiprinājumu, izmantojiet opciju -y, kā parādīts zemāk esošajā piemērā.

# yum -y install firefox

Lai pilnībā noņemtu paketi ar visām atkarībām, vienkārši izpildiet šo komandu, kā parādīts zemāk.

# 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!

Tādā pašā veidā iepriekš minētā komanda lūgs apstiprinājumu pirms pakotnes noņemšanas. Lai atspējotu apstiprināšanas uzvedni, vienkārši pievienojiet opciju -y, kā parādīts zemāk.

# yum -y remove firefox

Pieņemsim, ka jums ir novecojusi MySQL pakotnes versija un vēlaties to atjaunināt uz jaunāko stabilo versiju. Vienkārši palaidiet šo komandu, tas automātiski atrisinās visas atkarību problēmas un tās instalēs.

# 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!

Izmantojiet saraksta funkciju, lai meklētu konkrēto paketi ar nosaukumu. Piemēram, lai meklētu pakotni ar nosaukumu opensh, izmantojiet komandu.

# 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

Lai padarītu meklēšanu precīzāku, definējiet paketes nosaukumu ar tā versiju, ja zināt. Piemēram, lai meklētu noteiktu pakotnes openssh-4.3p2 versiju, izmantojiet komandu.

# yum list openssh-4.3p2

Ja neatceraties precīzu pakotnes nosaukumu, izmantojiet meklēšanas funkciju, lai meklētu visus pieejamos paketes, lai tie atbilstu jūsu norādītās paketes nosaukumam. Piemēram, lai meklētu visus paketes, kas atbilst vārdam.

# 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

Pieņemsim, ka pirms instalēšanas vēlaties uzzināt informāciju par pakotni. Lai iegūtu informāciju par pakotni, vienkārši izdodiet tālāk norādīto komandu.

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

Lai uzskaitītu visas pieejamās paketes Yum datu bāzē, izmantojiet zemāk esošo komandu.

# yum list | less

Lai uzskaitītu visas sistēmā instalētās pakotnes, vienkārši izdodiet komandu zemāk, tā parādīs visas instalētās paketes.

# yum list installed | less

Funkcija Yum nodrošina, lai atrastu, kurai pakotnei pieder konkrēts fails. Piemēram, ja vēlaties uzzināt tās paketes nosaukumu, kurai ir /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

Lai uzzinātu, cik daudz jūsu sistēmā instalēto pakotņu ir pieejami atjauninājumi, pārbaudiet, izmantojot šo komandu.

# yum check-update

Lai sistēma būtu atjaunināta ar visiem drošības un bināro pakotņu atjauninājumiem, izpildiet šo komandu. Tas instalēs visus jaunākos ielāpus un drošības atjauninājumus jūsu sistēmā.

# yum update

Operētājsistēmā Linux pakotņu skaits ir apvienots noteiktā grupā. Tā vietā, lai instalētu atsevišķas paketes ar yum, varat instalēt noteiktu grupu, kas instalēs visas saistītās paketes, kas pieder grupai. Piemēram, lai uzskaitītu visas pieejamās grupas, vienkārši izdodiet šādu komandu.

# 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

Lai instalētu noteiktu pakotņu grupu, mēs izmantojam opciju kā grupas instalēšanu. Piemēram, lai instalētu “MySQL Database”, vienkārši izpildiet tālāk norādīto komandu.

# 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!

Lai atjauninātu visas esošās instalētās grupas pakotnes, vienkārši izpildiet šo komandu, kā parādīts zemāk.

# 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!

Lai dzēstu vai noņemtu jebkuru esošo instalēto grupu no sistēmas, vienkārši izmantojiet zemāk esošo komandu.

# 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!

Lai uzskaitītu visus iespējotos Yum krātuves jūsu sistēmā, izmantojiet šo opciju.

# 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

Šī komanda parādīs visas iespējotās un atspējotās yum krātuves sistēmā.

# 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

Lai instalētu noteiktu pakotni no konkrēta iespējota vai atspējota repozitorija, yum komandā jāizmanto opcija –enablerepo. Piemēram, lai instalētu paketi PhpMyAdmin 3.5.2, vienkārši izpildiet komandu.

# 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 lietderība nodrošina pielāgotu čaulu, kurā varat izpildīt vairākas komandas.

# 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
>

Pēc noklusējuma yum glabā visus repozitorijā iespējotos pakotnes datus mapē/var/cache/yum/ar katru apakšdirektoriju. Lai notīrītu visus kešatmiņā saglabātos failus no iespējotā repozitorija, regulāri jāizpilda šāda komanda, lai notīrītu visu kešatmiņu un pārliecinieties, vai ka nav nekā nevajadzīga telpa. Mēs nevēlamies dot šīs komandas izvadi, jo mums patīk saglabāt kešatmiņā saglabātos datus tādus, kādi tie ir.

# yum clean all

Lai skatītu visus iepriekšējos komandas yum darījumus, vienkārši izmantojiet šo komandu.

# 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

Mēs esam mēģinājuši aptvert visas pamata komandas, lai virzītu yum komandas ar saviem piemēriem. Ja kaut kas saistīts ar yum komandām, iespējams, ir palaidis garām. Lūdzu, atjauniniet mūs, izmantojot mūsu komentāru lodziņu. Tātad mēs turpinām to pašu atjaunināt, pamatojoties uz saņemtajām atsauksmēm.