ค้นหาเว็บไซต์

20 คำสั่ง YUM สำหรับการจัดการแพ็คเกจ Linux


ในบทความนี้ เราจะได้เรียนรู้วิธีการติดตั้ง อัปเดต ลบ ค้นหาแพ็คเกจ จัดการแพ็คเกจและที่เก็บบนระบบ Linux โดยใช้เครื่องมือ YUM (Yellowdog Updater Modified) ที่พัฒนาโดย < แข็งแกร่ง>เรดแฮท.

คำสั่งตัวอย่างที่แสดงในบทความนี้ได้รับการทดสอบจริงบนเซิร์ฟเวอร์ RHEL 8 ของเรา คุณสามารถใช้เอกสารเหล่านี้เพื่อการศึกษา การรับรอง RHEL หรือเพียงเพื่อสำรวจวิธีการติดตั้งแพ็คเกจใหม่และทำให้ระบบของคุณทันสมัยอยู่เสมอ

ข้อกำหนดพื้นฐานของบทความนี้คือ คุณต้องมีความเข้าใจพื้นฐานเกี่ยวกับคำสั่งและระบบปฏิบัติการ Linux ที่ใช้งานได้ ซึ่งคุณสามารถสำรวจและฝึกฝนคำสั่งทั้งหมดที่แสดงด้านล่าง

ยำคืออะไร?

YUM (Yellowdog Updater Modified) คือบรรทัดคำสั่งแบบโอเพ่นซอร์สและเครื่องมือการจัดการแพ็คเกจแบบกราฟิกสำหรับ 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 provides ใช้ในการค้นหาว่าไฟล์ใดเป็นของแพ็คเกจใด ตัวอย่างเช่น หากคุณต้องการทราบชื่อของแพ็คเกจที่มี /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. ติดตั้งแพ็คเกจกลุ่ม

ในการติดตั้งกลุ่มแพ็คเกจเฉพาะ เราใช้ตัวเลือกเป็น groupinstall ตัวอย่างเช่น หากต้องการติดตั้ง “ฐานข้อมูล 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. แสดงรายการคลังเก็บข้อมูล Yum ที่เปิดใช้งาน

หากต้องการแสดงรายการที่เก็บ 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 มีเชลล์แบบกำหนดเองที่คุณสามารถดำเนินการได้หลายคำสั่ง

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 จะเก็บข้อมูลแพ็กเกจที่เปิดใช้งานพื้นที่เก็บข้อมูลทั้งหมดไว้ใน /var/cache/yum/ กับแต่ละไดเร็กทอรีย่อย เพื่อล้างไฟล์แคชทั้งหมดจากพื้นที่เก็บข้อมูลที่เปิดใช้งาน คุณจะต้องเรียกใช้คำสั่งต่อไปนี้เป็นประจำเพื่อ ทำความสะอาดแคชทั้งหมดและตรวจสอบให้แน่ใจว่าไม่มีการใช้พื้นที่ที่ไม่จำเป็น เราไม่ต้องการให้ผลลัพธ์ของคำสั่งด้านล่าง เนื่องจากเราต้องการเก็บข้อมูลแคชไว้เหมือนเดิม

yum clean all

20. ดูประวัติของยัม

หากต้องการดูธุรกรรมที่ผ่านมาทั้งหมดของคำสั่ง 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 อาจพลาดไป โปรดอัปเดตเราผ่านช่องแสดงความคิดเห็นของเรา ดังนั้นเราจึงอัปเดตสิ่งเดียวกันต่อไปตามคำติชมที่ได้รับ