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