Trong bài này, chúng ta sẽ học cách cài đặt, cập nhật, gỡ bỏ, tìm gói, quản lý gói và kho lưu trữ trên hệ thống Linux bằng cách sử dụng YUM (Yellowdog Updater đã được sửa đổi) công cụ được phát triển bởi Mũ đỏ.

Các lệnh ví dụ hiển thị trong bài viết này được thử nghiệm thực tế trên máy chủ RHEL 8 của chúng tôi, bạn có thể sử dụng các tài liệu này cho mục đích học tập, chứng nhận RHEL hoặc chỉ để khám phá các cách cài đặt gói mới và cập nhật hệ thống của bạn.

Yêu cầu cơ bản của bài viết này là bạn phải có hiểu biết cơ bản về các lệnh và hệ điều hành Linux đang hoạt động, nơi bạn có thể khám phá và thực hành tất cả các lệnh được liệt kê dưới đây.

YUM là gì?

YUM (Yellowdog Updater đã được sửa đổi) là một dòng lệnh mã nguồn mở cũng như công cụ quản lý gói dựa trên đồ họa cho RPM (Trình quản lý gói RedHat) dựa trên hệ thống Linux.

Nó cho phép người dùng và quản trị viên hệ thống dễ dàng cài đặt, cập nhật, gỡ bỏ hoặc tìm kiếm các gói phần mềm trên hệ thống. Nó được phát triển và phát hành bởi Seth Vidal Dưới GPL (giấy phép cộng đồng chung) dưới dạng mã nguồn mở, có nghĩa là bất kỳ ai cũng có thể được phép tải xuống và truy cập mã để sửa lỗi và phát triển các gói tùy chỉnh.

YUM sử dụng nhiều kho lưu trữ của bên thứ ba để tự động cài đặt các gói bằng cách giải quyết các vấn đề phụ thuộc của chúng.

Cập nhật: Các yum lệnh được thay thế bằng lệnh dnf, là phiên bản thế hệ tiếp theo của yum và được coi là sự thay thế cho YUM trong hầu hết các bản phân phối dựa trên RPM mới hơn.

1. Cài đặt Gói với YUM

Để cài đặt một gói có tên là Firefox, chỉ cần chạy lệnh dưới đây, nó sẽ tự động tìm và cài đặt tất cả các phần phụ thuộc cần thiết cho 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!

Lệnh trên sẽ yêu cầu xác nhận trước khi cài đặt bất kỳ gói nào trên hệ thống của bạn. Nếu bạn muốn tự động cài đặt các gói mà không yêu cầu bất kỳ xác nhận nào, hãy sử dụng tùy chọn -y như hình bên dưới ví dụ.

# yum -y install firefox

2. Loại bỏ một gói với YUM

Để loại bỏ hoàn toàn một gói với tất cả các phụ thuộc, chỉ cần chạy lệnh sau như hình dưới đây.

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

Theo cách tương tự, lệnh trên sẽ yêu cầu xác nhận trước khi xóa gói. Để tắt lời nhắc xác nhận, chỉ cần thêm tùy chọn -y như hình bên dưới.

# yum -y remove firefox

3. Cập nhật Gói bằng YUM

Giả sử bạn có một phiên bản gói MySQL đã lỗi thời và bạn muốn cập nhật gói đó lên phiên bản ổn định mới nhất. Chỉ cần chạy lệnh sau, nó sẽ tự động giải quyết tất cả các vấn đề phụ thuộc và cài đặt chúng.

# 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. Liệt kê một Gói bằng YUM

Sử dụng danh sách chức năng tìm kiếm gói cụ thể có tên. Ví dụ để tìm kiếm một gói được gọi là OpenSSH, sử dụng lệnh.

# 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

Để làm cho tìm kiếm của bạn chính xác hơn, hãy xác định tên gói với phiên bản của chúng, trong trường hợp bạn biết. Ví dụ để tìm kiếm một phiên bản cụ thể OpenSSH-4.3p2 của gói, sử dụng lệnh.

# yum list openssh-4.3p2

[ You might also like: How to Secure and Harden OpenSSH Server ]

See also  35 Ví dụ thực tế về lệnh Find trong Linux

5. Tìm kiếm một Gói bằng YUM

Nếu bạn không nhớ tên chính xác của gói, hãy sử dụng Tìm kiếm chức năng tìm kiếm tất cả các gói có sẵn để khớp với tên của gói bạn đã chỉ định. Ví dụ, để tìm kiếm tất cả các gói phù hợp với từ.

# 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. Nhận Thông tin về Gói bằng YUM

Giả sử bạn muốn biết thông tin về một gói trước khi cài đặt nó. Để nhận thông tin về một gói chỉ cần đưa ra lệnh dưới đây.

# 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. Liệt kê tất cả các Gói có sẵn bằng YUM

Để liệt kê tất cả các gói có sẵn trong cơ sở dữ liệu Yum, hãy sử dụng lệnh dưới đây.

# yum list | less

8. Liệt kê tất cả các Gói đã cài đặt bằng YUM

Để liệt kê tất cả các gói đã cài đặt trên một hệ thống, chỉ cần đưa ra lệnh dưới đây, nó sẽ hiển thị tất cả các gói đã cài đặt.

# yum list installed | less

9. Yum cung cấp chức năng

Yum cung cấp hàm được sử dụng để tìm gói nào mà một tệp cụ thể thuộc về. Ví dụ: nếu bạn muốn biết tên của gói có /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. Kiểm tra các bản cập nhật có sẵn bằng Yum

Để biết có bao nhiêu gói đã cài đặt trên hệ thống của bạn có sẵn các bản cập nhật, hãy kiểm tra để sử dụng lệnh sau.

# yum check-update

11. Cập nhật hệ thống bằng Yum

Để giữ cho hệ thống của bạn luôn được cập nhật với tất cả các bản cập nhật gói nhị phân và bảo mật, hãy chạy lệnh sau. Nó sẽ cài đặt tất cả các bản vá và cập nhật bảo mật mới nhất cho hệ thống của bạn.

# yum update

12. Liệt kê tất cả các Gói nhóm có sẵn

Trong Linux, một số gói được gộp vào một nhóm cụ thể. Thay vì cài đặt các gói riêng lẻ với yum, bạn có thể cài đặt một nhóm cụ thể sẽ cài đặt tất cả các gói liên quan thuộc về nhóm đó. Ví dụ: để liệt kê tất cả các nhóm có sẵn, chỉ cần đưa ra lệnh sau.

# 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. Cài đặt các gói nhóm

Để cài đặt một nhóm gói cụ thể, chúng tôi sử dụng tùy chọn như cài đặt nhóm. Ví dụ: để cài đặt “Cơ sở dữ liệu MySQL“, Chỉ cần thực hiện lệnh dưới đây.

# 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. Cập nhật gói nhóm

Để cập nhật bất kỳ gói nhóm đã cài đặt hiện có nào, chỉ cần chạy lệnh sau như được hiển thị bên dưới.

# 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. Loại bỏ các gói nhóm

Để xóa hoặc loại bỏ bất kỳ nhóm đã cài đặt hiện có nào khỏi hệ thống, chỉ cần sử dụng lệnh dưới đây.

# 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. Liệt kê các kho lưu trữ Yum đã bật

Để liệt kê tất cả các kho lưu trữ Yum đã kích hoạt trong hệ thống của bạn, hãy sử dụng tùy chọn sau.

# 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. Liệt kê tất cả các Kho lưu trữ Yum đã Bật và Đã tắt

Lệnh sau sẽ hiển thị tất cả các kho yum được kích hoạt và vô hiệu hóa trên hệ thống.

# 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. Cài đặt một gói từ một kho lưu trữ cụ thể

Để cài đặt một gói cụ thể từ một kho lưu trữ được kích hoạt hoặc bị vô hiệu hóa cụ thể, bạn phải sử dụng --enablerepo một tùy chọn trong lệnh yum của bạn. Ví dụ để Cài đặt gói PhpMyAdmin, chỉ cần thực hiện lệnh.

# 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. Vỏ Yum tương tác

Tiện ích Yum cung cấp một trình bao tùy chỉnh nơi bạn có thể thực thi nhiều lệnh.

# 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. Làm sạch Yum Cache

Theo mặc định, yum giữ tất cả dữ liệu gói đã bật kho lưu trữ trong / var / cache / yum / với mỗi thư mục con, để làm sạch tất cả các tệp được lưu trong bộ nhớ cache khỏi kho lưu trữ đã bật, bạn cần chạy lệnh sau thường xuyên để dọn sạch tất cả bộ nhớ cache và đảm bảo rằng không có dung lượng không cần thiết nào đang được sử dụng. Chúng tôi không muốn cung cấp đầu ra của lệnh dưới đây, vì chúng tôi muốn giữ nguyên dữ liệu được lưu trong bộ nhớ cache.

# yum clean all

20. Xem Lịch sử của Yum

Để xem tất cả các giao dịch trước đây của lệnh yum, chỉ cần sử dụng lệnh sau.

# 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

Chúng tôi đã cố gắng bao gồm tất cả các lệnh cơ bản để nâng cao yum với các ví dụ của chúng. Nếu bất cứ điều gì liên quan đến lệnh yum có thể đã bị bỏ sót. Vui lòng cập nhật cho chúng tôi thông qua hộp bình luận của chúng tôi. Vì vậy, chúng tôi tiếp tục cập nhật tương tự dựa trên phản hồi nhận được.

See also  30 lệnh Linux hữu ích cho quản trị viên hệ thống

By admin

Leave a Reply