20 εντολές YUM για διαχείριση πακέτων Linux


Σε αυτό το άρθρο, θα μάθουμε πώς να εγκαταστήσουμε, να ενημερώσουμε, να αφαιρέσουμε, να βρίσκουμε πακέτα, να διαχειριζόμαστε πακέτα και αποθετήρια σε συστήματα Linux χρησιμοποιώντας το εργαλείο YUM (Yellowdog Updater Modified) που αναπτύχθηκε από την ισχυρό>Κοκκινοσκάφι.

Τα παραδείγματα εντολών που εμφανίζονται σε αυτό το άρθρο είναι πρακτικά δοκιμασμένα στον διακομιστή μας RHEL 8, μπορείτε να χρησιμοποιήσετε αυτά τα υλικά για σκοπούς μελέτης, πιστοποιήσεις RHEL ή απλώς για να εξερευνήσετε τρόπους εγκατάστασης νέων πακέτων και να διατηρήσετε το σύστημά σας ενημερωμένο.

Η βασική απαίτηση αυτού του άρθρου είναι ότι πρέπει να έχετε μια βασική κατανόηση των εντολών και ένα λειτουργικό λειτουργικό σύστημα Linux, όπου μπορείτε να εξερευνήσετε και να εξασκήσετε όλες τις εντολές που αναφέρονται παρακάτω.

Τι είναι το YUM;

Το YUM (Τροποποιήθηκε το Yellowdog Updater) είναι μια γραμμή εντολών ανοιχτού κώδικα καθώς και ένα εργαλείο διαχείρισης πακέτων που βασίζεται σε γραφικά για RPM ( Συστήματα Linux που βασίζονται στο RedHat Package Manager.

Επιτρέπει στους χρήστες και τους διαχειριστές συστήματος να εγκαταστήσουν, να ενημερώσουν, να αφαιρέσουν ή να αναζητήσουν εύκολα πακέτα λογισμικού σε ένα σύστημα. Αναπτύχθηκε και κυκλοφόρησε από τον Seth Vidal υπό την GPL (Γενική δημόσια άδεια) ως ανοιχτού κώδικα, που σημαίνει ότι μπορεί να επιτρέπεται σε οποιονδήποτε να κάνει λήψη και αποκτήστε πρόσβαση στον κώδικα για να διορθώσετε σφάλματα και να αναπτύξετε προσαρμοσμένα πακέτα.

Το YUM χρησιμοποιεί πολυάριθμα αποθετήρια τρίτων για την αυτόματη εγκατάσταση πακέτων επιλύοντας ζητήματα εξαρτήσεων.

Ενημέρωση: Η εντολή yum αντικαθίσταται από την εντολή 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

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 παρέχει λειτουργία

Η συνάρτηση 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. Εγκαταστήστε ομαδικά πακέτα

Για να εγκαταστήσουμε μια συγκεκριμένη ομάδα πακέτων, χρησιμοποιούμε την επιλογή ως ομαδική εγκατάσταση. Για παράδειγμα, για να εγκαταστήσετε τη "Βάση δεδομένων 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. Καταχωρίστε τα Enabled Yum Repositories

Για να παραθέσετε όλα τα ενεργοποιημένα αποθετήρια 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

Από προεπιλογή, το yum διατηρεί όλα τα δεδομένα πακέτου με δυνατότητα αποθήκευσης στο /var/cache/yum/ με κάθε υποκατάλογο, για να καθαρίσετε όλα τα αποθηκευμένα αρχεία από το ενεργοποιημένο αποθετήριο, πρέπει να εκτελείτε τακτικά την ακόλουθη εντολή στο καθαρίστε όλη τη μνήμη cache και βεβαιωθείτε ότι δεν υπάρχει τίποτα περιττό χώρο που χρησιμοποιείται. Δεν θέλουμε να δώσουμε την έξοδο της παρακάτω εντολής, γιατί μας αρέσει να διατηρούμε τα δεδομένα προσωρινής αποθήκευσης ως έχουν.

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 μπορεί να έχει χαθεί. Ενημερώστε μας μέσω του πλαισίου σχολίων μας. Έτσι, συνεχίζουμε να ενημερώνουμε το ίδιο με βάση τα σχόλια που έχουμε λάβει.