Správa softvérových balíkov s yum v RHEL7/CENTOS7


Predvolený nástroj používaný na správu softvérových balíkov v systéme Red Hat Enterprise Linux a CENTOS je yum, čo znamená manažér aktualizácií Yellowdog. Yum je navrhnutý na prácu s úložiskami, ktoré sú online skladmi dostupných softvérových balíkov.

YUM (upravený nástroj na aktualizáciu žltého psa)

Pri inštalácii systému Red Hat Enterprise Linux vás systém požiada o registráciu v sieti Red Hat Network (RHN). RHN poskytuje rôzne úložiská. Po registrácii v RHN si môžete nainštalovať softvérové balíky, ktoré Red Hat overuje automaticky. Ak používate CentOS, získate prístup k úložiskám CentOS. Ak sa však rozhodnete nainštalovať Red Hat Enterprise Linux bez registračného kľúča, nemôže sa dostať do kontaktu s úložiskami RHN a nakoniec nebudete mať žiadne úložiská. V takom prípade musíte byť schopní sami určiť, ktoré úložisko chcete použiť. Upozorňujeme, že úložiská sú špecifické pre operačný systém.

Ak chcete svojmu serveru povedať, ktoré úložisko má použiť, musíte vytvoriť súbor s názvom, ktorý končí príponou .repo. V tomto súbore potrebujete nasledujúci obsah:

[štítok] Súbor .repo môže obsahovať rôzne úložiská, pričom každá časť začína štítkom, ktorý identifikuje konkrétne úložisko.
 name= Pomocou tohto zadajte názov úložiska, ktoré chcete použiť.
 baseurl= Obsahuje adresu URL, ktorá ukazuje na konkrétne umiestnenie úložiska.
V súboroch úložiska, ktoré sú štandardne poskytované, môžete nájsť niekoľko úložisk v jednom súbore, . Je to užitočné na zoskupenie úložísk, ktoré patria k sebe do jedného súboru, a často sa to robí v súboroch úložísk, ktoré sú poskytované ako predvolené. Ak vytvárate súbory úložiska sami, môžete vytvoriť samostatné súbory pre každé úložisko.

Práca s vyhľadávaním yum

Ak chcete nainštalovať balíky s yum, musíte najprv poznať presný názov balíka. S tým vám môže pomôcť príkaz yum search. Keď použijete vyhľadávanie yum, najprv sa spojí s online úložiskami (čo môže chvíľu trvať), potom stiahne najnovšie metadáta úložiska do lokálneho počítača. Potom vyhľadávanie yum hľadá v názve balíka a popise reťazec, ktorý ste hľadali.

[root@centos Desktop]# yum search nmap
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.nbrc.ac.in
 * epel: ftp.jaist.ac.jp
 * extras: mirror.nbrc.ac.in
 * nux-dextop: mirror.li.nux.ro
 * updates: mirror.nbrc.ac.in
============================== N/S matched: nmap ===============================
nmap-frontend.noarch : The GTK+ front end for nmap
nmap-ncat.x86_64 : Nmap's Netcat replacement
nmap.x86_64 : Network exploration tool and security scanner

 Name and summary matches only, use "search all" for everything.
yum info

Keď vyhľadáte balík pomocou yum vyhľadávania, môžete použiť „yum info package“ na zobrazenie ďalších informácií o balíku.

[root@centos Desktop]# yum info nmap
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.nbrc.ac.in
 * epel: ftp.riken.jp
 * extras: mirror.nbrc.ac.in
 * nux-dextop: mirror.li.nux.ro
 * updates: mirror.nbrc.ac.in
Available Packages
Name        : nmap
Arch        : x86_64
Epoch       : 2
Version     : 6.40
Release     : 7.el7
Size        : 4.0 M
Repo        : base/7/x86_64
Summary     : Network exploration tool and security scanner
URL         : http://nmap.org/
License     : GPLv2 and LGPLv2+ and GPLv2+ and BSD
Description : Nmap is a utility for network exploration or security auditing.
            : It supports ping scanning (determine which hosts are up), many
            : port scanning techniques (determine what services the hosts are
            : offering), and TCP/IP fingerprinting (remote host operating system
            : identification). Nmap also offers flexible target and port
            : specification, decoy scanning, determination of TCP sequence
            : predictability characteristics, reverse-identd scanning, and more.
            : In addition to the classic command-line nmap executable, the Nmap
            : suite includes a flexible data transfer, redirection, and
            : debugging tool (netcat utility ncat), a utility for comparing scan
            : results (ndiff), and a packet generation and response analysis
            : tool (nping).

Inštalácia softvéru pomocou yum

balíky môžeme nainštalovať pomocou príkazu yum install package-name.

# yum install -y nmap

[root@centos ~]# yum install nmap
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.nbrc.ac.in
 * epel: ftp.jaist.ac.jp
 * extras: mirror.nbrc.ac.in
 * nux-dextop: mirror.li.nux.ro
 * updates: mirrors.vinahost.vn
Resolving Dependencies
--> Running transaction check
---> Package nmap.x86_64 2:6.40-7.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================================
 Package                          Arch                               Version                                   Repository                        Size
======================================================================================================================================================
Installing:
 nmap                             x86_64                             2:6.40-7.el7                              base                             4.0 M

Transaction Summary
======================================================================================================================================================
Install  1 Package

Total download size: 4.0 M
Installed size: 16 M
Is this ok [y/d/N]: y
Downloading packages:
nmap-6.40-7.el7.x86_64.rpm                                                                                                     | 4.0 MB  00:00:31     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 2:nmap-6.40-7.el7.x86_64                                                                                                           1/1 
  Verifying  : 2:nmap-6.40-7.el7.x86_64                                                                                                           1/1 

Installed:
  nmap.x86_64 2:6.40-7.el7                                                                                                                            

Complete!

V predvolenom nastavení „yum install“ vás pred inštaláciou balíkov vyzve na prijatie alebo odmietnutie. Ak chcete, aby sa yum nainštaloval automaticky bez výzvy, použite voľbu -y.

Mohli by sme tiež aktualizovať balík nmap. Stačí zmeniť príkaz z install na update

# yum update -y nmap

Odinštalujte balík pomocou yum remove

[root@centos ~]# yum remove nmap
Loaded plugins: fastestmirror, langpacks
Resolving Dependencies
--> Running transaction check
---> Package nmap.x86_64 2:6.40-7.el7 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================
 Package                          Arch                               Version                                  Repository                         Size
======================================================================================================================================================
Removing:
 nmap                             x86_64                             2:6.40-7.el7                             @base                              16 M

Transaction Summary
======================================================================================================================================================
Remove  1 Package

Installed size: 16 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : 2:nmap-6.40-7.el7.x86_64                                                                                                           1/1 
  Verifying  : 2:nmap-6.40-7.el7.x86_64                                                                                                           1/1 

Removed:
  nmap.x86_64 2:6.40-7.el7                                                                                                                            

Complete!

Pomocou príkazu Yum list môžete zobraziť zoznam dostupných balíkov v yum Repositories

#yum zoznam

[root@centos Desktop]# yum list |grep less
java-1.7.0-openjdk-headless.x86_64         1:1.7.0.91-2.6.2.3.el7     @anaconda 
java-1.8.0-openjdk-headless.x86_64         1:1.8.0.65-3.b17.el7       @anaconda 
less.x86_64                                458-9.el7                  @anaconda 
java-1.7.0-openjdk-headless.x86_64         1:1.7.0.95-2.6.4.0.el7_2   updates   
java-1.8.0-openjdk-headless.x86_64         1:1.8.0.71-2.b15.el7_2     updates   
java-1.8.0-openjdk-headless-debug.x86_64   1:1.8.0.71-2.b15.el7_2     updates   
lesstif.x86_64                             0.95.2-8.el7               epel      
lesstif-clients.x86_64                     0.95.2-8.el7               epel      
lesstif-devel.x86_64                       0.95.2-8.el7               epel      
lesstif-mwm.x86_64                         0.95.2-8.el7               epel      
libreoffice-headless.x86_64                1:4.3.7.2-5.el7_2.1        updates   
nodejs-less.noarch                         1.7.0-2.el7                epel      
php-lessphp.noarch                         0.5.0-2.el7                epel      
python-blessings.noarch                    1.5-3.el7                  epel      
python-lesscpy.noarch                      0.9j-4.el7                 epel      
wireless-tools.x86_64                      1:29-13.el7                epel      
wireless-tools-debuginfo.x86_64            1:29-9.1.el7.nux           nux-dextop
wireless-tools-devel.x86_64                1:29-13.el7                epel

Ak chcete vidieť, ktoré balíčky sú nainštalované na vašom serveri, môžete namiesto toho použiť príkaz yum list install.

#yum zoznam nainštalovaný

[root@centos Desktop]# yum list installed |grep less
java-1.7.0-openjdk-headless.x86_64    1:1.7.0.91-2.6.2.3.el7         @anaconda  
java-1.8.0-openjdk-headless.x86_64    1:1.8.0.65-3.b17.el7           @anaconda  
less.x86_64                           458-9.el7                      @anaconda  

Príkaz yum list sa môže ukázať ako užitočný aj vtedy, keď sa ako argument použije názov konkrétneho balíka.

Pri spravovaní konkrétnych služieb na počítači so systémom Linux často potrebujete niekoľko rôznych balíkov. Ak napríklad pri konfigurácii vášho servera ako webového servera potrebujete v mnohých prípadoch nainštalovať ďalšie balíky, ako je PHP. Namiesto vyhľadávania a inštalácie všetkých jednotlivých balíkov, ktoré patria ku konkrétnej funkcii, môžete jednoducho nainštalovať skupinu , ktorý nainštaluje všetky balíky, ktoré patria do skupiny.

[root@centos ~]# yum group list


Available Groups:
   CIFS file server
   Compatibility Libraries
   Console Internet Tools
   Desktop
   Desktop Platform
   Desktop Platform Development
   Development Tools
   Eclipse
   Educational Software
   Electronic Lab
   FCoE Storage Client
   Fedora Packager
   General Purpose Desktop
   Graphical Administration Tools
   Haskell
   Legacy UNIX Compatibility
   Messaging Client Support
   Messaging Server Support
   Milkymist
   MySQL Database client
   MySQL Database server
   NFS file server
   Network Storage Server
   SNMP Support
   Scientific Support
   Security Tools
   Server Platform
   Server Platform Development
   Smart Card Support
   Storage Availability Tools
   System Administration Tools
   System Management
   TeX support
   TurboGears application framework
   Virtualization
   Web-Based Enterprise Management
   Xfce
   iSCSI Storage Client
Done
yum groupinstall "<group name>"

môžeme inštalovať konkrétnu skupinu softvéru pomocou možnosti skupinovej inštalácie.

Ak ste už nainštalovali softvérovú skupinu pomocou yum groupinstall a chceli by ste ju inovovať na najnovšiu verziu, použite „yum groupupdate“ a my ju môžeme odstrániť pomocou yum group remove

Mňam prepolisovanie

Všetky príkazy yum idú proti jednému alebo viacerým úložiskám yum. Ak chcete zobraziť všetky archívy yum, ktoré sú nakonfigurované vo vašom systéme, vykonajte „yum repolist“, ako je uvedené nižšie.

Nasledujúce zobrazí iba povolené úložiská.

[root@centos Desktop]# yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.nbrc.ac.in
 * epel: ftp.jaist.ac.jp
 * extras: mirror.nbrc.ac.in
 * nux-dextop: mirror.li.nux.ro
 * updates: mirror.nbrc.ac.in
repo id                repo name                                         status
!adobe-linux-x86_64    Adobe Systems Incorporated                            2
!base/7/x86_64         CentOS-7 - Base                                   9,007
!bsrtech               bsrtech                                           1,164
*!epel/x86_64          Extra Packages for Enterprise Linux 7 - x86_64    9,627
!extras/7/x86_64       CentOS-7 - Extras                                   226
!nux-dextop/x86_64     Nux.Ro RPMs for general desktop use               2,360
!updates/7/x86_64      CentOS-7 - Updates                                  919
repolist: 23,305

Yum poskytuje

Ak chcete vedieť, do ktorého balíka patrí konkrétny súbor, použite „yum poskytuje“. Napríklad, ak chcete poznať názov balíka, ktorý má súbor /etc/httpd/conf/httpd.conf, postupujte takto.

[root@centos Desktop]# yum provides /etc/httpd/conf/httpd.conf
Loaded plugins: fastestmirror, langpacks

httpd-2.4.6-40.el7.centos.x86_64 : Apache HTTP Server
Repo        : base
Matched from:
Filename    : /etc/httpd/conf/httpd.conf



httpd-2.4.6-40.el7.centos.x86_64 : Apache HTTP Server
Repo        : @anaconda
Matched from:
Filename    : /etc/httpd/conf/httpd.conf

Mňam čisté

Príkaz „yum clean all“ odstráni nielen balíčky uložené vo vyrovnávacej pamäti, ale aj všetky hlavičky. Príležitostne to robím, aby som všetko úplne vyprázdnil v prípade, že sú zastarané hlavičky – ktoré môžu tiež zaberať miesto.

mňam čisté balíčky
Odstráňte zo systému všetky balíky uložené vo vyrovnávacej pamäti. Všimnite si, že balík-
vekové skupiny sa po stiahnutí automaticky neodstránia.

mňam čisté hlavičky
Odstráňte všetky súbory, ktoré yum používa na určenie
vzdialená dostupnosť balíkov. Použitie tejto možnosti vynúti
yum na stiahnutie všetkých hlavičiek pri ďalšom spustení.

mňam vyčistiť všetko
Spúšťa yum čisté balíky a yum čisté hlavičky, ako je uvedené vyššie.“

[root@centos Desktop]# yum clean
Loaded plugins: fastestmirror, langpacks
Error: clean requires an option: headers, packages, metadata, dbcache, plugins
, expire-cache, rpmdb, all
[root@centos Desktop]# yum clean all
Loaded plugins: fastestmirror, langpacks
Cleaning repos: adobe-linux-x86_64 base bsrtech epel extras nux-dextop updates
Cleaning up everything
Cleaning up list of fastest mirrors

História mňam

Pri práci s yum sa všetky akcie zaznamenávajú do súboru /var/log/yum.log. Na získanie prehľadu o všetkých vykonaných akciách môžete použiť príkaz yum history.

[root@centos ~]# yum history
Loaded plugins: fastestmirror, langpacks
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    10 | root <root>              | 2016-03-16 15:32 | Erase          |    1   
     9 | root <root>              | 2016-03-16 15:23 | Install        |    1   
     8 | root <root>              | 2016-03-16 14:52 | Install        |    1   
     7 | root <root>              | 2016-03-14 13:49 | Install        |    1   
     6 | root <root>              | 2016-03-14 13:48 | Install        |   37   
     5 | root <root>              | 2016-03-14 13:25 | Install        |    1   
     4 | root <root>              | 2016-03-14 13:25 | Update         |    1   
     3 | root <root>              | 2016-03-14 13:17 | Install        |    1  
     2 | root <root>              | 2016-03-14 12:47 | Install        |    1  
     1 | System <unset>           | 2016-03-14 11:17 | Install        | 1939   
history list

Zo súboru histórie je možné vrátiť späť konkrétne akcie; použite yum history undo, za ktorým nasleduje číslo konkrétnej akcie (uvedené ako ID vo vyššie uvedenom výstupe), ktorú chcete vrátiť späť.

Vo vašom systéme sú udržiavané dve databázy balíkov:
Databáza yum a
  Databáza otáčok.
Keď inštalujete balíky cez yum, najprv sa aktualizuje databáza yum a potom sa aktualizované informácie zosynchronizujú s databázou RPM. Ak inštalujete balíky pomocou príkazu rpm, aktualizácia sa zapíše iba do databázy rpm a nebude aktualizovaná do databázy yum, čo je dôležitý dôvod, prečo už nepoužívať príkaz rpm na inštaláciu softvérových balíkov.