20 YUM komandų, skirtų „Linux“ paketų valdymui


Šiame straipsnyje sužinosime, kaip įdiegti, atnaujinti, pašalinti, rasti paketus, tvarkyti paketus ir saugyklas Linux sistemose naudojant YUM (Yellowdog Updater Modified) įrankį, kurį sukūrė RedHat.

Šiame straipsnyje pateiktos pavyzdinės komandos yra praktiškai išbandytos mūsų RHEL 8 serveryje. Šią medžiagą galite naudoti studijų tikslais, RHEL sertifikatams gauti arba tiesiog tyrinėti būdus, kaip įdiegti naujus paketus ir nuolat atnaujinti sistemą.

Pagrindinis šio straipsnio reikalavimas yra tas, kad jūs turite turėti pagrindinį supratimą apie komandas ir veikiančią „Linux“ operacinę sistemą, kurioje galėtumėte tyrinėti ir praktikuoti visas toliau išvardytas komandas.

Kas yra YUM?

YUM (Yellowdog Updater Modified) yra atvirojo kodo komandų eilutė, taip pat grafinis paketų valdymo įrankis, skirtas RPM ( RedHat Package Manager) paremtos Linux sistemos.

Tai leidžia vartotojams ir sistemos administratoriams lengvai įdiegti, atnaujinti, pašalinti arba ieškoti programinės įrangos paketų sistemoje. Jį sukūrė ir išleido Sethas Vidal pagal GPL (bendra viešoji licencija) kaip atvirojo kodo, o tai reiškia, kad bet kam gali būti leista atsisiųsti. ir pasiekti kodą, kad ištaisytumėte klaidas ir sukurtumėte pritaikytus paketus.

YUM naudoja daugybę trečiųjų šalių saugyklų, kad automatiškai įdiegtų paketus ir išspręstų jų priklausomybės problemas.

Atnaujinti: komanda yum pakeičiama komanda dnf, kuri yra naujos kartos yum versija ir laikoma YUM daugelyje naujesnių RPM pagrįstų paskirstymų.

1. Įdiekite paketą su YUM

Norėdami įdiegti paketą pavadinimu „Firefox“, tiesiog paleiskite toliau pateiktą komandą, kuri automatiškai suras ir įdiegs visas reikalingas „Firefox“ priklausomybes.

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!

Aukščiau pateikta komanda paprašys patvirtinimo prieš įdiegiant bet kokį paketą jūsų sistemoje. Jei norite įdiegti paketus automatiškai, neprašydami jokio patvirtinimo, naudokite parinktį -y, kaip parodyta toliau pateiktame pavyzdyje.

yum -y install firefox

2. Paketo pašalinimas naudojant YUM

Norėdami visiškai pašalinti paketą su visomis priklausomybėmis, tiesiog paleiskite šią komandą, kaip parodyta toliau.

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!

Lygiai taip pat aukščiau pateikta komanda paprašys patvirtinimo prieš pašalinant paketą. Norėdami išjungti patvirtinimo raginimą, tiesiog pridėkite parinktį -y, kaip parodyta toliau.

yum -y remove firefox

3. Paketo atnaujinimas naudojant YUM

Tarkime, kad turite pasenusią MySQL paketo versiją ir norite ją atnaujinti į naujausią stabilią versiją. Tiesiog paleiskite šią komandą, ji automatiškai išspręs visas priklausomybių problemas ir jas įdiegs.

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. Išvardykite paketą naudodami YUM

Norėdami ieškoti konkretaus paketo su pavadinimu, naudokite funkciją sąrašas. Pavyzdžiui, norėdami ieškoti paketo pavadinimu OpenSSH, naudokite komandą.

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

Jei norite, kad paieška būtų tikslesnė, nurodykite paketų pavadinimus su jų versijomis, jei žinote. Pavyzdžiui, norėdami ieškoti konkrečios paketo versijos OpenSSH-4.3p2, naudokite komandą.

yum list openssh-4.3p2

5. Ieškokite paketo naudodami YUM

Jei neprisimenate tikslaus paketo pavadinimo, naudokite funkciją paieška, kad ieškotumėte visų galimų paketų, kurie atitiktų jūsų nurodyto paketo pavadinimą. Pavyzdžiui, ieškoti visų paketų, kurie atitinka žodį.

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. Gaukite informacijos apie paketą naudodami YUM

Tarkime, kad prieš diegdami norite sužinoti informaciją apie paketą. Norėdami gauti informacijos apie paketą, tiesiog išduokite žemiau esančią komandą.

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. Išvardykite visus galimus paketus naudodami YUM

Norėdami išvardyti visus galimus paketus Yum duomenų bazėje, naudokite toliau pateiktą komandą.

yum list | less

8. Išvardykite visus įdiegtus paketus naudodami YUM

Norėdami išvardyti visus sistemoje įdiegtus paketus, tiesiog išduokite žemiau esančią komandą, ji parodys visus įdiegtus paketus.

yum list installed | less

9. Yum teikia funkciją

Funkcija Yum pateikia naudojama norint rasti, kuriam paketui priklauso konkretus failas. Pavyzdžiui, jei norite sužinoti paketo, kuriame yra /etc/httpd/conf/httpd.conf, pavadinimą.

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. Patikrinkite, ar yra galimų naujinimų naudodami Yum

Norėdami sužinoti, kiek jūsų sistemoje įdiegtų paketų turi galimų naujinimų, patikrinkite, ar naudojate šią komandą.

yum check-update

11. Atnaujinkite sistemą naudodami Yum

Jei norite, kad jūsų sistema būtų atnaujinta naudojant visus saugos ir dvejetainių paketų naujinimus, paleiskite šią komandą. Jis įdiegs visus naujausius jūsų sistemos pataisymus ir saugos naujinimus.

yum update

12. Išvardykite visus galimus grupės paketus

„Linux“ sistemoje keli paketai yra sujungti į tam tikrą grupę. Užuot diegę atskirus paketus su yum, galite įdiegti tam tikrą grupę, kuri įdiegs visus susijusius paketus, priklausančius grupei. Pavyzdžiui, norėdami išvardyti visas galimas grupes, tiesiog išduokite šią komandą.

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. Įdiekite grupės paketus

Norėdami įdiegti konkrečią paketų grupę, naudojame parinktį kaip groupinstall. Pavyzdžiui, norėdami įdiegti MySQL duomenų bazę, tiesiog vykdykite toliau pateiktą komandą.

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. Atnaujinkite grupės paketus

Norėdami atnaujinti esamus įdiegtus grupės paketus, tiesiog paleiskite šią komandą, kaip parodyta toliau.

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. Pašalinkite grupinius paketus

Norėdami ištrinti arba pašalinti bet kurią esamą įdiegtą grupę iš sistemos, tiesiog naudokite toliau pateiktą komandą.

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. Išvardykite įgalintas Yum saugyklas

Norėdami išvardyti visas įgalintas „Yum“ saugyklas jūsų sistemoje, naudokite šią parinktį.

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. Išvardykite visas įjungtas ir išjungtas Yum saugyklas

Ši komanda parodys visas įjungtas ir išjungtas „yum“ saugyklas sistemoje.

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. Įdiekite paketą iš konkrečios saugyklos

Norėdami įdiegti konkretų paketą iš konkrečios įjungtos arba išjungtos saugyklos, savo yum komandoje turite naudoti --enablerepo parinktį. Pavyzdžiui, norėdami įdiegti PhpMyAdmin paketą, tiesiog vykdykite komandą.

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. Interaktyvus Yum Shell

„Yum“ programa suteikia pasirinktinį apvalkalą, kuriame galite vykdyti kelias 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
>

19. Išvalykite Yum talpyklą

Pagal numatytuosius nustatymus „yum“ saugo visus paketo duomenis, kuriuose įgalinta saugykla, /var/cache/yum/ kiekviename pakatalogyje. Norėdami išvalyti visus talpykloje esančius failus iš įgalintos saugyklos, turite reguliariai vykdyti šią komandą, išvalykite visą talpyklą ir įsitikinkite, kad nenaudojama nieko nereikalingos vietos. Nenorime pateikti toliau pateiktos komandos išvesties, nes mėgstame talpykloje saugomus duomenis tokius, kokie jie yra.

yum clean all

20. Peržiūrėkite Yum istoriją

Norėdami peržiūrėti visas ankstesnes yum komandos operacijas, tiesiog naudokite šią komandą.

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

Mes bandėme pateikti visas pagrindines yum komandas pateikdami jų pavyzdžius. Jei kažkas, kas susiję su yum komandomis, galėjo būti praleista. Atnaujinkite mus naudodami komentarų laukelį. Taigi, atsižvelgdami į gautus atsiliepimus, nuolat atnaujiname.