20 Komanda YUM për Menaxhimin e Paketave Linux


Në këtë artikull, ne do të mësojmë se si të instalojmë, përditësojmë, heqim, gjejmë paketa, menaxhojmë paketat dhe depot në sistemet Linux duke përdorur mjetin YUM (Yellowdog Updater Modified) i zhvilluar nga RedHat.

Shembujt e komandave të paraqitura në këtë artikull janë testuar praktikisht në certifikatat tona RHEL, ose thjesht për të eksploruar mënyra për të instaluar paketa të reja dhe për të mbajtur sistemin tuaj të përditësuar.

Kërkesa themelore e këtij artikulli është, ju duhet të keni një kuptim bazë të komandave dhe një sistem operativ Linux që funksionon, ku mund të eksploroni dhe praktikoni të gjitha komandat e listuara më poshtë.

Çfarë është YUM?

YUM (Yellowdog Updater Modified) është një linjë komande me burim të hapur, si dhe një mjet i menaxhimit të paketave të bazuara në grafik për sistemet Linux të bazuara në RPM (RedHat Package Manager).

Ai i lejon përdoruesit dhe administratorët e sistemit të instalojnë, përditësojnë, heqin ose kërkojnë lehtësisht paketat e softuerit në një sistem. Është zhvilluar dhe lëshuar nga Seth Vidal nën GPL (General Public License) si një burim i hapur, që do të thotë se çdokush mund të lejohet të shkarkojë dhe të ketë akses në kod për të rregulluar gabimet dhe për të zhvilluar paketa të personalizuara.

YUM përdor depo të shumta të palëve të treta për të instaluar automatikisht paketat duke zgjidhur çështjet e varësisë së tyre.

Përditësimi: Komanda yum zëvendësohet nga shpërndarjet e bazuara në RPM.

Për të instaluar një paketë të quajtur Firefox, thjesht ekzekutoni komandën e mëposhtme, ajo automatikisht do të gjejë dhe instalojë të gjitha varësitë e kërkuara për Firefox-in.

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

Komanda e mësipërme do të kërkojë konfirmim përpara se të instaloni ndonjë paketë në sistemin tuaj. Nëse dëshironi të instaloni paketat automatikisht pa kërkuar ndonjë konfirmim, përdorni opsionin -y siç tregohet në shembullin më poshtë.

# yum -y install firefox

Për të hequr plotësisht një paketë me të gjitha varësitë, thjesht ekzekutoni komandën e mëposhtme siç tregohet më poshtë.

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

Në të njëjtën mënyrë, komanda e mësipërme do të kërkojë konfirmim përpara se të hiqni një paketë. Për të çaktivizuar kërkesën e konfirmimit, thjesht shtoni opsionin -y siç tregohet më poshtë.

# yum -y remove firefox

Le të themi se keni një version të vjetëruar të paketës MySQL dhe dëshironi ta përditësoni atë në versionin më të fundit të qëndrueshëm. Thjesht ekzekutoni komandën e mëposhtme, ajo automatikisht do të zgjidhë të gjitha çështjet e varësisë dhe do t'i instalojë ato.

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

Përdorni funksionin e listës për të kërkuar paketën specifike me një emër. Për shembull, për të kërkuar një paketë të quajtur OpenSSH, përdorni komandën.

# 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

Për ta bërë kërkimin tuaj më të saktë, përcaktoni emrat e paketave me versionin e tyre, nëse e dini. Për shembull, për të kërkuar një version specifik OpenSSH-4.3p2 të paketës, përdorni komandën.

# yum list openssh-4.3p2

[ Ju gjithashtu mund të pëlqeni: Si të siguroni dhe ngurtësoni serverin OpenSSH ]

Nëse nuk e mbani mend emrin e saktë të paketës, atëherë përdorni funksionin e kërkimit për të kërkuar të gjitha paketat e disponueshme që të përputhen me emrin e paketës që keni specifikuar. Për shembull, për të kërkuar të gjitha paketat që përputhen me fjalën.

# 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

Thuaj se do të dëshironit të dini informacionin për një paketë përpara se ta instaloni atë. Për të marrë informacion mbi një paketë, thjesht lëshoni komandën e mëposhtme.

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

Për të renditur të gjitha paketat e disponueshme në bazën e të dhënave Yum, përdorni komandën e mëposhtme.

# yum list | less

Për të renditur të gjitha paketat e instaluara në një sistem, thjesht lëshoni komandën e mëposhtme, ajo do të shfaqë të gjitha paketat e instaluara.

# yum list installed | less

Funksioni Yum ofron përdoret për të gjetur se cilës paketë i përket një skedar specifik. Për shembull, nëse dëshironi të dini emrin e paketës që ka /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

Për të gjetur se sa paketa të instaluara në sistemin tuaj kanë përditësime të disponueshme, kontrolloni të përdorni komandën e mëposhtme.

# yum check-update

Për ta mbajtur sistemin tuaj të përditësuar me të gjitha përditësimet e paketave të sigurisë dhe binare, ekzekutoni komandën e mëposhtme. Ai do të instalojë të gjitha arnimet më të fundit dhe përditësimet e sigurisë në sistemin tuaj.

# yum update

Në Linux, një numër paketash bashkohen në një grup të caktuar. Në vend që të instaloni paketa individuale me yum, mund të instaloni një grup të caktuar që do të instalojë të gjitha paketat e lidhura që i përkasin grupit. Për shembull, për të renditur të gjitha grupet e disponueshme, thjesht lëshoni komandën e mëposhtme.

# 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

Për të instaluar një grup të caktuar paketash, ne përdorim opsionin si groupinstall. Për shembull, për të instaluar MySQL Database, thjesht ekzekutoni komandën e mëposhtme.

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

Për të përditësuar çdo paketë ekzistuese të grupit të instaluar, thjesht ekzekutoni komandën e mëposhtme siç tregohet më poshtë.

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

Për të fshirë ose hequr çdo grup ekzistues të instaluar nga sistemi, thjesht përdorni komandën e mëposhtme.

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

Për të renditur të gjitha depot e aktivizuara të Yum në sistemin tuaj, përdorni opsionin e mëposhtëm.

# 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 e mëposhtme do të shfaqë të gjitha depot e aktivizuara dhe të çaktivizuara yum në sistem.

# 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

Për të instaluar një paketë të veçantë nga një depo specifike e aktivizuar ose e çaktivizuar, duhet të përdorni një opsion --enablerepo në komandën tuaj yum. Për shembull, për të instaluar paketën PhpMyAdmin, thjesht ekzekutoni komandën.

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

Shërbimi Yum ofron një guaskë të personalizuar ku mund të ekzekutoni komanda të shumta.

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

Si parazgjedhje, yum ruan të gjitha të dhënat e paketës së aktivizuar nga depoja në /var/cache/yum/ me secilën nëndrejtori, për të pastruar të gjithë skedarët e ruajtur në memorie nga depoja e aktivizuar, duhet të ekzekutoni rregullisht komandën e mëposhtme për të pastruar të gjithë cache-në dhe i sigurt se nuk ka asgjë të panevojshme që po përdor hapësirë. Ne nuk duam të japim daljen e komandës së mëposhtme, sepse na pëlqen t'i mbajmë të dhënat e memories ashtu siç janë.

# yum clean all

Për të parë të gjitha transaksionet e kaluara të komandës yum, thjesht përdorni komandën e mëposhtme.

# 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

Ne jemi përpjekur të mbulojmë të gjitha komandat themelore për të avancuar yum me shembujt e tyre. Nëse ndonjë gjë në lidhje me komandat yum mund të ketë humbur. Ju lutemi na përditësoni përmes kutisë sonë të komenteve. Pra, ne vazhdojmë të përditësojmë të njëjtën gjë bazuar në komentet e marra.