25 Ví dụ lệnh yum hữu ích để quản lý gói trong Linux

Tác giả sysadmin, T.M.Hai 28, 2022, 02:30:53 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

25 Ví dụ lệnh yum hữu ích để quản lý gói trong Linux


Công cụ sửa đổi trình cập nhật Yellowdog (yum) là trình quản lý gói dựa trên RPM được sử dụng để cài đặt và cập nhật các gói trong các bản phân phối Linux khác nhau bao gồm CentOS, RHEL và Fedora.

Yum khá mạnh vì nó có khả năng tự động giải quyết các vấn đề phụ thuộc và tương tự như các trình quản lý gói khác, chẳng hạn như 'apt-get' trong các bản phân phối dựa trên Debian.

Những ví dụ này sẽ đóng vai trò là nguồn giới thiệu, hướng dẫn hoặc tài nguyên phong cách bảng gian lận hữu ích về cách sử dụng lệnh yum trong Linux.

1. Cài đặt gói mới từ kho lưu trữ

Lệnh yum có thể được sử dụng để cài đặt các gói từ kho lưu trữ với đối số 'cài đặt', theo sau là tên gói. Trong ví dụ bên dưới, chúng tôi đang cài đặt Apache, được cung cấp trong gói 'httpd'.

Mã nguồn [Chọn]
[root@centos7 ~]# yum install httpd
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-40.el7.centos.4 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================
 Package        Arch        Version                   Repository    Size
========================================================================
Installing:
 httpd          x86_64      2.4.6-40.el7.centos.4     updates      2.7 M

Transaction Summary
========================================================================
Install  1 Package

Total download size: 2.7 M
Installed size: 9.4 M
Is this ok [y/d/N]: y
Downloading packages:
httpd-2.4.6-40.el7.centos.4.x86_64.rpm        | 2.7 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : httpd-2.4.6-40.el7.centos.4.x86_64            1/1
  Verifying  : httpd-2.4.6-40.el7.centos.4.x86_64            1/1

Installed:
  httpd.x86_64 0:2.4.6-40.el7.centos.4

Complete!

Lưu ý rằng sau khi xác nhận các gói sẽ được cài đặt, bạn sẽ được yêu cầu cung cấp đầu vào. Trong trường hợp này, chúng tôi đã nhập 'y' cho có để tiến hành cài đặt, sau đó quá trình cài đặt đã hoàn tất thành công.

2. Tuỳ chọn -y

Trong ví dụ đầu tiên, chúng tôi được nhắc nhấn phím 'y' để tiến hành cài đặt. Thay vì được nhắc mỗi lần nhập dữ liệu của người dùng, chúng ta chỉ cần chỉ định tùy chọn '-y' trong lệnh của mình để giả sử có. Bằng cách này, chúng tôi sẽ không được nhắc nhập bất kỳ thông tin đầu vào nào và yum sẽ cho rằng mọi thứ sẽ được trả lời bằng có.

Mã nguồn [Chọn]
[root@centos7 ~]# yum install httpd-manual -y
Resolving Dependencies
--> Running transaction check
---> Package httpd-manual.noarch 0:2.4.6-40.el7.centos.4 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==========================================================================
 Package              Arch      Version                  Repository   Size
==========================================================================
Installing:
 httpd-manual         noarch    2.4.6-40.el7.centos.4    updates     1.3 M

Transaction Summary
==========================================================================
Install  1 Package

Total download size: 1.3 M
Installed size: 5.5 M
Downloading packages:
httpd-manual-2.4.6-40.el7.centos.4.noarch.rpm      | 1.3 MB  00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : httpd-manual-2.4.6-40.el7.centos.4.noarch        1/1
  Verifying  : httpd-manual-2.4.6-40.el7.centos.4.noarch        1/1

Installed:
  httpd-manual.noarch 0:2.4.6-40.el7.centos.4

Complete!

Lưu ý rằng trong ví dụ này, chúng tôi không được nhắc nhập dữ liệu, vì giả sử có đã được cung cấp, vì vậy gói đã được cài đặt đầy đủ mà không cần thêm bất kỳ tương tác nào của người dùng.

3. Kiểm tra các bản cập nhật có sẵn

Chúng tôi có thể chạy yum với đối số 'kiểm tra cập nhật' sẽ kiểm tra với các kho lưu trữ đã bật của chúng tôi để biết bất kỳ bản cập nhật nào có thể có sẵn cho các gói mà chúng tôi đã cài đặt. Điều này không thực sự thực hiện bất kỳ cập nhật nào, nó chỉ cung cấp cho chúng tôi một danh sách các gói có sẵn các bản cập nhật để cài đặt.

Mã nguồn [Chọn]
[root@centos7 ~]# yum check-update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

bash.x86_64                             4.2.46-20.el7_2        updates
dbus.x86_64                             1:1.6.12-14.el7_2      updates
dbus-libs.x86_64                        1:1.6.12-14.el7_2      updates
device-mapper-persistent-data.x86_64    0.6.2-1.el7_2          updates
glibc.x86_64                            2.17-106.el7_2.8       updates
glibc-common.x86_64                     2.17-106.el7_2.8       updates
initscripts.x86_64                      9.49.30-1.el7_2.3      updates
kernel.x86_64                           3.10.0-327.28.3.el7    updates
kernel-tools.x86_64                     3.10.0-327.28.3.el7    updates
kernel-tools-libs.x86_64                3.10.0-327.28.3.el7    updates
...

4. Cập nhật gói mới từ kho lưu trữ

Trong ví dụ trước, chúng tôi đã được cung cấp một danh sách các gói hiện có sẵn các bản cập nhật gói. Chúng tôi có thể thực hiện cập nhật cho một gói cụ thể bằng cách chỉ định gói đó sau đối số 'cập nhật', như minh họa bên dưới.

Mã nguồn [Chọn]
[root@centos7 ~]# yum update bash -y
Resolving Dependencies
--> Running transaction check
---> Package bash.x86_64 0:4.2.46-19.el7 will be updated
---> Package bash.x86_64 0:4.2.46-20.el7_2 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

=================================================================
 Package         Arch       Version             Repository   Size
=================================================================
Updating:
 bash            x86_64     4.2.46-20.el7_2     updates     1.0 M

Transaction Summary
=================================================================
Upgrade  1 Package

Total download size: 1.0 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
bash-4.2.46-20.el7_2.x86_64.rpm        | 1.0 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : bash-4.2.46-20.el7_2.x86_64            1/2
  Cleanup    : bash-4.2.46-19.el7.x86_64              2/2
  Verifying  : bash-4.2.46-20.el7_2.x86_64            1/2
  Verifying  : bash-4.2.46-19.el7.x86_64              2/2

Updated:
  bash.x86_64 0:4.2.46-20.el7_2

Complete!

Lưu ý rằng chúng tôi không phải chạy cập nhật kiểm tra trước đó.

Mặc dù chúng tôi có thể cập nhật các gói được chỉ định theo cách này, nhưng việc áp dụng tất cả các bản cập nhật có sẵn cho tất cả các gói trên hệ thống bằng 'cập nhật yum' sẽ dễ dàng hơn.

5. Tải xuống tệp RPM của gói

Thay vì cài đặt gói từ kho lưu trữ như đã trình bày trước đây, chúng tôi có thể tùy chọn tải xuống tệp.rpm từ kho lưu trữ bằng lệnh 'yumdownloader'.

Lệnh 'yumdownloader' xuất phát từ gói 'yum-utils', vì vậy chúng tôi cài đặt lệnh này trước.

Mã nguồn [Chọn]
[root@centos7 ~]# yum install yum-utils -y
Bây giờ chúng ta có thể tải tệp RPM xuống hệ thống cục bộ.

Mã nguồn [Chọn]
[root@centos7 ~]# yumdownloader unbound
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.ventraip.net.au
 * extras: mirror.optus.net
 * updates: mirror.optus.net
unbound-1.4.20-26.el7.x86_64.rpm
[root@centos7 ~]# ls -la unbound-1.4.20-26.el7.x86_64.rpm
-rw-r--r--. 1 root root 483136 Nov 26  2015 unbound-1.4.20-26.el7.x86_64.rpm

6. Thực hiện cài đặt cục bộ tệp RPM

Trong ví dụ này, chúng tôi sẽ cài đặt tệp.rpm mà chúng tôi vừa tải xuống bằng 'yumdownloader'. Mặc dù chúng tôi có thể vừa cài đặt gói này trực tiếp từ kho lưu trữ bằng 'yum install', nhưng đôi khi bạn có thể được cung cấp trực tiếp các tệp.rpm để cài đặt, vì vậy bạn nên biết cách cài đặt chúng.

Mặc dù các tệp.rpm có thể được cài đặt bằng lệnh 'rpm', nhưng việc sử dụng yum có lợi thế là tự động phát hiện và cài đặt bất kỳ gói phụ thuộc nào khác cũng có thể được yêu cầu.

Mã nguồn [Chọn]
[root@centos7 ~]# yum localinstall unbound-1.4.20-26.el7.x86_64.rpm
Loaded plugins: fastestmirror
Examining unbound-1.4.20-26.el7.x86_64.rpm: unbound-1.4.20-26.el7.x86_64
Marking unbound-1.4.20-26.el7.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package unbound.x86_64 0:1.4.20-26.el7 will be installed
--> Processing Dependency: unbound-libs(x86-64) = 1.4.20-26.el7 for package: unbound-1.4.20-26.el7.x86_64
Loading mirror speeds from cached hostfile
 * base: mirror.ventraip.net.au
 * extras: mirror.optus.net
 * updates: mirror.optus.net
--> Processing Dependency: ldns >= 1.6.13 for package: unbound-1.4.20-26.el7.x86_64
--> Processing Dependency: libevent-2.0.so.5()(64bit) for package: unbound-1.4.20-26.el7.x86_64
--> Processing Dependency: libldns.so.1()(64bit) for package: unbound-1.4.20-26.el7.x86_64
--> Processing Dependency: libunbound.so.2()(64bit) for package: unbound-1.4.20-26.el7.x86_64
--> Running transaction check
---> Package ldns.x86_64 0:1.6.16-7.el7 will be installed
---> Package libevent.x86_64 0:2.0.21-4.el7 will be installed
---> Package unbound-libs.x86_64 0:1.4.20-26.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=========================================================================================
 Package          Arch       Version             Repository                         Size
=========================================================================================
Installing:
 unbound          x86_64     1.4.20-26.el7       /unbound-1.4.20-26.el7.x86_64     1.6 M
Installing for dependencies:
 ldns             x86_64     1.6.16-7.el7        base                              473 k
 libevent         x86_64     2.0.21-4.el7        base                              214 k
 unbound-libs     x86_64     1.4.20-26.el7       base                              296 k

Transaction Summary
=========================================================================================
Install  1 Package (+3 Dependent packages)

Total size: 2.6 M
Total download size: 982 k
Installed size: 4.4 M
Is this ok [y/d/N]: y
Downloading packages:
(1/3): unbound-libs-1.4.20-26.el7.x86_64.rpm                      | 296 kB  00:00:00
(2/3): ldns-1.6.16-7.el7.x86_64.rpm                               | 473 kB  00:00:00
(3/3): libevent-2.0.21-4.el7.x86_64.rpm                           | 214 kB  00:00:00
-----------------------------------------------------------------------------------------
Total                                                       1.5 MB/s | 982 kB  00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : ldns-1.6.16-7.el7.x86_64                                              1/4
  Installing : libevent-2.0.21-4.el7.x86_64                                          2/4
  Installing : unbound-libs-1.4.20-26.el7.x86_64                                     3/4
  Installing : unbound-1.4.20-26.el7.x86_64                                          4/4
  Verifying  : unbound-1.4.20-26.el7.x86_64                                          1/4
  Verifying  : unbound-libs-1.4.20-26.el7.x86_64                                     2/4
  Verifying  : libevent-2.0.21-4.el7.x86_64                                          3/4
  Verifying  : ldns-1.6.16-7.el7.x86_64                                              4/4

Installed:
  unbound.x86_64 0:1.4.20-26.el7

Dependency Installed:
  ldns.x86_64 0:1.6.16-7.el7                    libevent.x86_64 0:2.0.21-4.el7
  unbound-libs.x86_64 0:1.4.20-26.el7

Complete!

7. Gỡ cài đặt gói

Các gói có thể được gỡ cài đặt bằng đối số 'xóa', như được hiển thị bên dưới.

Mã nguồn [Chọn]
[root@centos7 ~]# yum remove httpd
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-40.el7.centos.4 will be erased
--> Processing Dependency: httpd = 2.4.6-40.el7.centos.4 for package: httpd-manual-2.4.6-40.el7.centos.4.noarch
--> Running transaction check
---> Package httpd-manual.noarch 0:2.4.6-40.el7.centos.4 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================================================================================================
 Package                                      Arch                                   Version                                                  Repository                                Size
=============================================================================================================================================================================================
Removing:
 httpd                                        x86_64                                 2.4.6-40.el7.centos.4                                    @updates                                 9.4 M
Removing for dependencies:
 httpd-manual                                 noarch                                 2.4.6-40.el7.centos.4                                    @updates                                 5.5 M

Transaction Summary
=============================================================================================================================================================================================
Remove  1 Package (+1 Dependent package)

Installed size: 15 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : httpd-manual-2.4.6-40.el7.centos.4.noarch                                                                                                                                 1/2
  Erasing    : httpd-2.4.6-40.el7.centos.4.x86_64                                                                                                                                        2/2
  Verifying  : httpd-manual-2.4.6-40.el7.centos.4.noarch                                                                                                                                 1/2
  Verifying  : httpd-2.4.6-40.el7.centos.4.x86_64                                                                                                                                        2/2

Removed:
  httpd.x86_64 0:2.4.6-40.el7.centos.4

Dependency Removed:
  httpd-manual.noarch 0:2.4.6-40.el7.centos.4

Complete!

Lưu ý rằng để xóa một gói, tất cả các gói khác phụ thuộc vào gói đó cũng sẽ bị xóa. Vì lý do đó, bạn không nên sử dụng tùy chọn -y cho 'assumeyes' khi xóa một gói để bạn có cơ hội đọc những gì sẽ bị xóa trước khi tiếp tục, vì nó có thể nhiều hơn bạn mong đợi.

Trong ví dụ trên, gói thủ công httpd mà chúng tôi đã cài đặt trước đó yêu cầu gói httpd. Do đó, khi chúng tôi xóa gói httpd, httpd-manual cũng phải hoạt động.

8. Cài đặt lại gói

Nếu gặp sự cố với một gói, bạn có thể dễ dàng cài đặt lại gói đó bằng đối số 'cài đặt lại'.

Mã nguồn [Chọn]
[root@centos7 ~]# yum reinstall httpd -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.ventraip.net.au
 * extras: mirror.optus.net
 * updates: mirror.optus.net
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-40.el7.centos.4 will be reinstalled
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================================================================================================
 Package                                 Arch                                     Version                                                    Repository                                 Size
=============================================================================================================================================================================================
Reinstalling:
 httpd                                   x86_64                                   2.4.6-40.el7.centos.4                                      updates                                   2.7 M

Transaction Summary
=============================================================================================================================================================================================
Reinstall  1 Package

Total download size: 2.7 M
Installed size: 9.4 M
Downloading packages:
httpd-2.4.6-40.el7.centos.4.x86_64.rpm                                                                                                                                | 2.7 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : httpd-2.4.6-40.el7.centos.4.x86_64                                                                                                                                        1/1
  Verifying  : httpd-2.4.6-40.el7.centos.4.x86_64                                                                                                                                        1/1

Installed:
  httpd.x86_64 0:2.4.6-40.el7.centos.4

Complete!

Điều này tương tự như thực hiện 'yum remove', sau đó là 'yum install', tuy nhiên, ở đây nó được thực hiện trong một lệnh và cấu hình tùy chỉnh không bị xóa, vì 'yum remove' sẽ xóa tất cả các tệp cấu hình do gói quản lý.

9. Xem thông tin kho lưu trữ

Theo mặc định, chúng tôi có nhiều kho lưu trữ được định cấu hình trong thư mục /etc/yum.repos.d/, chúng có thể được xem bằng các đối số 'repolist' và 'repoinfo'.

Mã nguồn [Chọn]
[root@centos7 ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.ventraip.net.au
 * extras: mirror.optus.net
 * updates: mirror.optus.net
repo id                 repo name               status
base/7/x86_64           CentOS-7 - Base         9,007
extras/7/x86_64         CentOS-7 - Extras       375
updates/7/x86_64        CentOS-7 - Updates      2,303
repolist: 11,685

Theo mặc định, 'repolist' chỉ hiển thị thông tin cho các kho lưu trữ đã bật, tuy nhiên, chúng tôi có thể chỉ định 'tất cả' sau đó để liệt kê ngay cả các kho lưu trữ bị vô hiệu hóa.

Mã nguồn [Chọn]
[root@centos7 ~]# yum repolist all

repo id                      repo name                   status
base/7/x86_64                CentOS-7 - Base             enabled: 9,007
base-debuginfo/x86_64        CentOS-7 - Debuginfo        disabled
base-source/7                CentOS-7 - Base Sources     disabled
c7-media                     CentOS-7 - Media            disabled
centosplus/7/x86_64          CentOS-7 - Plus             disabled
...

Thông tin thêm về một kho lưu trữ cụ thể sau đó có thể được xem bằng 'repoinfo' theo sau là tên kho lưu trữ mà bạn muốn truy vấn.

Mã nguồn [Chọn]
[root@centos7 ~]# yum repoinfo CentOS-7 - Base
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.ventraip.net.au
 * extras: mirror.optus.net
 * updates: mirror.optus.net
Repo-id      : base/7/x86_64
Repo-name    : CentOS-7 - Base
Repo-status  : enabled
Repo-revision: 1449700451
Repo-updated : Thu Dec 10 09:35:45 2015
Repo-pkgs    : 9,007
Repo-size    : 6.5 G
Repo-mirrors : http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock
Repo-baseurl : http://mirror.ventraip.net.au/CentOS/7.2.1511/os/x86_64/ (9 more)
Repo-expire  : 21,600 second(s) (last: Mon Aug 29 14:25:35 2016)
Repo-filename: /etc/yum.repos.d/CentOS-Base.repo

repolist: 9,007

10. Thêm kho lưu trữ mới

Chúng ta có thể chỉ định kho lưu trữ mới bằng cách chỉnh sửa thủ công hoặc tạo tệp.repo mới trong thư mục /etc/yum.repos.d, tuy nhiên, chúng ta có thể dễ dàng tạo kho lưu trữ liên tục hơn nhiều bằng lệnh yum-config-manager. Lệnh này xuất phát từ gói 'yum-utils' mà chúng tôi đã cài đặt trước đó, vì vậy nếu bạn muốn sử dụng 'yum-config-manager', hãy đảm bảo cài đặt 'yum-utils' trước.

Mã nguồn [Chọn]
[root@centos7 ~]# yum-config-manager --add-repo="https://mirror.aarnet.edu.au/pub/centos/7"
Loaded plugins: fastestmirror
adding repo from: https://mirror.aarnet.edu.au/pub/centos/7

[mirror.aarnet.edu.au_pub_centos_7]
name=added from: https://mirror.aarnet.edu.au/pub/centos/7
baseurl=https://mirror.aarnet.edu.au/pub/centos/7
enabled=1

Chúng tôi chỉ cung cấp một URL kho lưu trữ đã biết trong tùy chọn –add-repo và điều này tạo ra một tệp.repo dựa trên tên của URL kho lưu trữ được chỉ định. Trong trường hợp này, /etc/yum.repos.d/mirror.aarnet.edu.au_pub_centos_7.repo đã được tạo với nội dung được chỉ định ở trên trong đầu ra của lệnh. Bây giờ chúng ta có thể cài đặt hoặc cập nhật các gói từ máy nhân bản mới được chỉ định này.

11. Kích hoạt hoặc vô hiệu hóa kho lưu trữ cụ thể

Có thể đôi khi chúng ta muốn thực hiện một hành động trong khi bật hoặc tắt một kho lưu trữ cụ thể. Ví dụ: nếu chúng tôi muốn cài đặt một gói cụ thể, chúng tôi có thể muốn đảm bảo rằng gói đó đến từ một máy nhân bản cụ thể.

Mã nguồn [Chọn]
yum --enablerepo=disabled-repo install package-example
Điều này sẽ kích hoạt một repo đã bị vô hiệu hóa trước đó có tên là 'repo bị vô hiệu hóa' để cài đặt 'ví dụ về gói' từ nó.

Nếu chúng tôi có sẵn các gói giống nhau tại nhiều kho lưu trữ, chúng tôi có thể muốn vô hiệu hóa một gói và cập nhật hoặc cài đặt từ một kho lưu trữ cụ thể. Điều này có thể được thực hiện bằng cách vô hiệu hóa kho lưu trữ với --disablerepo.

Mã nguồn [Chọn]
yum --disablerepo=enabled-repo install package-example
12. Tìm kiếm các gói trong kho lưu trữ

Đối số 'tìm kiếm' là một tính năng yum rất hữu ích, vì nó cho phép chúng tôi tìm kiếm thông qua các gói trên kho lưu trữ, điều này có thể hữu ích nếu chúng tôi không biết chính xác những gì chúng tôi đang muốn cài đặt.

Mã nguồn [Chọn]
[root@centos7 ~]# yum search php
===================================================================================== N/S matched: php ======================================================================================
graphviz-php.x86_64 : PHP extension for graphviz
php.x86_64 : PHP scripting language for creating dynamic web sites
php-bcmath.x86_64 : A module for PHP applications for using the bcmath library
php-cli.x86_64 : Command-line interface for PHP
php-common.x86_64 : Common files for PHP
php-dba.x86_64 : A database abstraction layer module for PHP applications
php-devel.x86_64 : Files needed for building PHP extensions
php-embedded.x86_64 : PHP library for embedding in applications
php-enchant.x86_64 : Enchant spelling extension for PHP applications
php-fpm.x86_64 : PHP FastCGI Process Manager
php-gd.x86_64 : A module for PHP applications for using the gd graphics library
...
  Name and summary matches only, use "search all" for everything.

Trong ví dụ này, chúng tôi tìm kiếm tên gói và phần tóm tắt cho thuật ngữ "PHP" và thấy một số gói có sẵn tại kho sẵn sàng để chúng tôi cài đặt hoặc tải xuống.

13. Tìm gói nào cung cấp thứ gì đó

Đây là một trong những tính năng yêu thích của tôi về lệnh yum vì nó rất hữu ích. Bạn đã bao giờ muốn chạy một lệnh, nhưng bạn không chắc gói nào là cần thiết cho nó? Đây là nơi đối số 'cung cấp' được sử dụng.

Trong ví dụ này, chúng tôi muốn tạo một bộ khởi tạo iSCSI, việc này được thực hiện bằng lệnh 'iscsiadm'. Chúng tôi có thể sử dụng 'cung cấp' theo sau tên của lệnh để tìm kiếm các gói cung cấp lệnh này.

Mã nguồn [Chọn]
[root@centos7 ~]# yum provides iscsiadm
iscsi-initiator-utils-6.2.0.873-32.el7.i686 : iSCSI daemon and utility programs
Repo        : base
Matched from:
Filename    : /usr/sbin/iscsiadm

Như được hiển thị, gói 'iscsi-initiator-utils' có thể được cài đặt để cung cấp lệnh 'iscsiadm'.

Điều này cũng có thể được sử dụng đối với một tệp trên hệ thống tệp để kiểm tra xem gói nào cung cấp tệp đó.

Mã nguồn [Chọn]
[root@centos7 ~]# yum provides /etc/httpd/conf/httpd.conf
httpd-2.4.6-40.el7.centos.x86_64 : Apache HTTP Server
Repo        : base
Matched from:
Filename    : /etc/httpd/conf/httpd.conf

Trong ví dụ này, chúng ta có thể thấy rằng tệp /etc/httpd/conf/httpd.conf đến từ gói 'httpd'.

14. Xem thông tin gói

Thông tin chi tiết hơn về gói có thể được xem bằng đối số 'thông tin'. Như được hiển thị bên dưới, điều này cung cấp cho chúng tôi thông tin hữu ích như kiến trúc, số phiên bản, số phát hành, tổng kích thước cũng như mô tả về chức năng thực sự của gói.

Mã nguồn [Chọn]
[root@centos7 ~]# yum info httpd
Available Packages
Name        : httpd
Arch        : x86_64
Version     : 2.4.6
Release     : 40.el7.centos.4
Size        : 2.7 M
Repo        : updates/7/x86_64
Summary     : Apache HTTP Server
URL         : http://httpd.apache.org/
License     : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible
            : web server.

Điều này có thể được sử dụng trước khi cài đặt gói hoặc sau khi cài đặt, thông tin giống nhau sẽ được cung cấp trong cả hai trường hợp.

15. Xem lịch sử giao dịch

Lịch sử yum chứa tất cả các hành động đã được thực hiện bởi lệnh yum. Điều này cho phép chúng tôi xem điều gì đã xảy ra với hệ thống Linux của mình theo thời gian và thậm chí hoàn tác, làm lại hoặc khôi phục giao dịch.

Mã nguồn [Chọn]
[root@centos7 ~]# yum history
ID     | Login user      | Date and time    | Action(s)      | Altered
------------------------------------------------------------------------
    15 | root            | 2016-08-29 15:20 | Erase          |    1
    14 | root            | 2016-08-29 14:55 | Install        |    1
    13 | root            | 2016-08-29 14:55 | Erase          |    1 EE
    12 | root            | 2016-08-29 14:54 | Reinstall      |    1
    11 | root            | 2016-08-29 14:54 | Install        |   31
    10 | root            | 2016-08-29 14:53 | Install        |    1
     9 | root            | 2016-08-29 14:47 | Erase          |    2
     8 | root            | 2016-08-29 14:45 | Install        |    4
     7 | root            | 2016-08-29 14:40 | Install        |    3
     6 | root            | 2016-08-29 14:37 | Update         |    1
     5 | root            | 2016-08-29 14:32 | Install        |    1
     4 | root            | 2016-08-29 14:28 | Install        |    1
     3 | root            | 2016-08-29 14:28 | Erase          |    1
     2 | root            | 2016-08-29 14:28 | Install        |    5
     1 | System          | 2016-08-29 14:17 | Install        |  298
history list

Các giao dịch mới nhất xuất hiện ở đầu danh sách và chúng tôi có thể xem thêm thông tin về giao dịch bằng cách chỉ định ID của giao dịch đó, như được hiển thị bên dưới.

Mã nguồn [Chọn]
[root@centos7 ~]# yum history info 15
Transaction ID : 15
Begin time     : Mon Aug 29 15:20:57 2016
Begin rpmdb    : 341:c62a7835aef7986909a89bc51d654acf51b8d756
End time       :                           (0 seconds)
End rpmdb      : 340:8701e1360e8e5403f96a5cc61994740ba7d8daf8
User           : root
Return-Code    : Success
Command Line   : remove httpd -y
Transaction performed with:
    Installed     rpm-4.11.3-17.el7.x86_64                      @anaconda
    Installed     yum-3.4.3-132.el7.centos.0.1.noarch           @anaconda
    Installed     yum-plugin-fastestmirror-1.1.31-34.el7.noarch @anaconda
Packages Altered:
    Erase httpd-2.4.6-40.el7.centos.4.x86_64 @updates
history info

Vì vậy, giao dịch gần đây nhất có ID là 15 đã được sử dụng để xóa gói httpd. Bây giờ chúng tôi có thể hoàn tác giao dịch này nếu muốn, thao tác này sẽ cài đặt lại gói httpd vì điều này sẽ hoàn tác việc xóa.

Mã nguồn [Chọn]
[root@centos7 ~]# yum history undo 15 -y
Undoing transaction 15, from Mon Aug 29 15:20:57 2016
    Erase httpd-2.4.6-40.el7.centos.4.x86_64 @updates
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-40.el7.centos.4 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

============================================================================
 Package              Arch      Version                 Repository    Size
============================================================================
Installing:
 httpd               x86_64    2.4.6-40.el7.centos.4    updates       2.7 M

Transaction Summary
============================================================================
Install  1 Package

Total download size: 2.7 M
Installed size: 9.4 M
Downloading packages:
httpd-2.4.6-40.el7.centos.4.x86_64.rpm                   | 2.7 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : httpd-2.4.6-40.el7.centos.4.x86_64                       1/1
  Verifying  : httpd-2.4.6-40.el7.centos.4.x86_64                       1/1

Installed:
  httpd.x86_64 0:2.4.6-40.el7.centos.4

Complete!

Sau đó, chúng tôi có thể chạy lại quá trình xóa bằng 'làm lại lịch sử yum'.

Mã nguồn [Chọn]
[root@centos7 ~]# yum history redo 15 -y
Repeating transaction 15, from Mon Aug 29 15:20:57 2016
    Erase httpd-2.4.6-40.el7.centos.4.x86_64 @updates
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-40.el7.centos.4 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

==========================================================================
 Package              Arch       Version                Repository   Size
==========================================================================
Removing:
 httpd                x86_64     2.4.6-40.el7.centos.4  @updates    9.4 M

Transaction Summary
==========================================================================
Remove  1 Package

Installed size: 9.4 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : httpd-2.4.6-40.el7.centos.4.x86_64  1/1
  Verifying  : httpd-2.4.6-40.el7.centos.4.x86_64  1/1

Removed:
  httpd.x86_64 0:2.4.6-40.el7.centos.4

Complete!

Cũng đáng lưu ý rằng các gói cài đặt, cập nhật hoặc xóa cũng được ghi vào tệp /var/log/yum.log, đây là một ví dụ về nội dung được ghi tại đây.

Mã nguồn [Chọn]
[root@centos7 ~]# tail /var/log/yum.log
Aug 29 14:28:24 Installed: httpd-2.4.6-40.el7.centos.4.x86_64
Aug 29 14:28:29 Erased: httpd-2.4.6-40.el7.centos.4.x86_64
Aug 29 14:28:41 Installed: httpd-2.4.6-40.el7.centos.4.x86_64
Aug 29 14:32:55 Installed: httpd-manual-2.4.6-40.el7.centos.4.noarch
Aug 29 14:37:28 Updated: bash-4.2.46-20.el7_2.x86_64

16. Xóa thông tin đã lưu trong bộ nhớ đệm

Theo mặc định, yum sẽ lưu trữ dữ liệu vào thư mục /var/cache/yum, chẳng hạn như dữ liệu gói và kho lưu trữ. Điều này tăng tốc yum để nó không phải tiếp tục truy vấn thông tin này từ Internet.

Đôi khi bạn có thể muốn xóa dữ liệu đã lưu trong bộ nhớ cache này, chẳng hạn như nếu một kho lưu trữ có các gói được cập nhật nhưng hệ thống Linux của bạn có dữ liệu đã lưu trong bộ nhớ cache không chính xác hoặc cũ, điều này có thể gây ra nhiều sự cố khác nhau khi cố gắng cài đặt một gói.

Mã nguồn [Chọn]
[root@centos7 ~]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: base extras updates
Cleaning up everything
Cleaning up list of fastest mirrors

Thao tác này sẽ xóa tất cả các mục đã lưu trong bộ nhớ cache, có thể chỉ định các thành phần cụ thể cần xóa (chẳng hạn như gói, siêu dữ liệu, bộ đệm hết hạn, rpmdb hoặc plugin) tuy nhiên, điều này sẽ tiết kiệm rất nhiều thời gian nếu bạn không chắc chắn nên xóa những gì.

17. Xây dựng bộ đệm

Bộ nhớ cache yum sẽ được tự động tạo theo thời gian khi bạn thực hiện các truy vấn yum khác nhau, chẳng hạn như cài đặt hoặc cập nhật gói, tuy nhiên, chúng tôi có tùy chọn tạo bộ nhớ cache theo cách thủ công để các hành động trong tương lai sẽ nhanh hơn với đối số 'makecache'.

Mã nguồn [Chọn]
[root@centos7 ~]# time yum makecache
Loaded plugins: fastestmirror, langpacks
base                                            | 3.6 kB  00:00:00
extras                                          | 3.4 kB  00:00:00
updates                                         | 3.4 kB  00:00:00
(1/12): base/7/x86_64/group_gz                  | 155 kB  00:00:00
(2/12): extras/7/x86_64/prestodelta             |  72 kB  00:00:00
(3/12): extras/7/x86_64/filelists_db            | 426 kB  00:00:00
(4/12): extras/7/x86_64/primary_db              | 160 kB  00:00:00
(5/12): base/7/x86_64/filelists_db              | 6.2 MB  00:00:01
(6/12): extras/7/x86_64/other_db                | 652 kB  00:00:00
(7/12): base/7/x86_64/other_db                  | 2.3 MB  00:00:01
(8/12): updates/7/x86_64/prestodelta            | 698 kB  00:00:00
(9/12): base/7/x86_64/primary_db                | 5.3 MB  00:00:01
(10/12): updates/7/x86_64/filelists_db          | 4.4 MB  00:00:01
(11/12): updates/7/x86_64/primary_db            | 7.1 MB  00:00:01
(12/12): updates/7/x86_64/other_db              |  61 MB  00:00:07
Determining fastest mirrors
 * base: centos.mirror.crucial.com.au
 * extras: centos.mirror.crucial.com.au
 * updates: centos.mirror.crucial.com.au
Metadata Cache Created

real    0m40.785s
user    0m32.504s
sys     0m1.937s

Chúng tôi cũng có thể thêm tùy chọn 'fast' vào cuối, sẽ mất ít thời gian hơn nhưng chỉ lưu trữ ít kho lưu trữ hơn.

Mã nguồn [Chọn]
[root@centos7 ~]# time yum makecache fast
Loaded plugins: fastestmirror, langpacks
base                                     | 3.6 kB  00:00:00
extras                                   | 3.4 kB  00:00:00
updates                                  | 3.4 kB  00:00:00
(1/4): base/7/x86_64/group_gz            | 155 kB  00:00:00
(2/4): extras/7/x86_64/primary_db        | 160 kB  00:00:00
(3/4): base/7/x86_64/primary_db          | 5.3 MB  00:00:00
(4/4): updates/7/x86_64/primary_db       | 7.1 MB  00:00:01
Determining fastest mirrors
 * base: mirror.nsw.coloau.com.au
 * extras: mirror.nsw.coloau.com.au
 * updates: mirror.nsw.coloau.com.au
Metadata Cache Created

real    0m8.879s
user    0m3.451s
sys     0m0.343s

Như chúng ta có thể thấy bộ đệm nhanh nhanh hơn đáng kể.

18. Liệt kê các gói đã cài đặt

Chúng tôi có khả năng liệt kê tất cả các gói hiện đang được cài đặt trên hệ thống Linux của chúng tôi với 'danh sách yum đã cài đặt'. Tôi chưa bao gồm đầu ra đầy đủ ở đây vì tôi có hàng trăm gói được cài đặt trên hệ thống của mình, tuy nhiên đoạn trích nhỏ này sẽ cho bạn ý tưởng về những gì sẽ xảy ra.

Mã nguồn [Chọn]
[root@centos7 ~]# yum list installed | head -n 15
Installed Packages
NetworkManager.x86_64                1:1.0.6-30.el7_2             @anaconda
NetworkManager-libnm.x86_64          1:1.0.6-30.el7_2             @anaconda
NetworkManager-team.x86_64           1:1.0.6-30.el7_2             @anaconda
NetworkManager-tui.x86_64            1:1.0.6-30.el7_2             @anaconda
NetworkManager-wifi.x86_64           1:1.0.6-30.el7_2             @anaconda
acl.x86_64                           2.2.51-12.el7                @anaconda
aic94xx-firmware.noarch              30-6.el7                     @anaconda
alsa-firmware.noarch                 1.0.28-2.el7                 @anaconda
alsa-lib.x86_64                      1.0.28-2.el7                 @anaconda
alsa-tools-firmware.x86_64           1.0.28-2.el7                 @anaconda
apr.x86_64                           1.4.8-3.el7                  @base
apr-util.x86_64                      1.5.2-6.el7                  @base
audit.x86_64                         2.4.1-5.el7                  @anaconda
...

Khi được đưa vào lệnh grep, điều này trở nên cực kỳ mạnh mẽ vì nó cho phép chúng tôi tìm kiếm một gói cụ thể để xem nó đã được cài đặt chưa.

Mã nguồn [Chọn]
[root@centos7 ~]# yum list installed | grep httpd
httpd.x86_64                         2.4.6-40.el7.centos.4          @updates
httpd-tools.x86_64                   2.4.6-40.el7.centos.4          @updates

19. Liệt kê các gói có sẵn

Trong ví dụ trên, chúng tôi đã học cách liệt kê các gói hiện được cài đặt trên hệ thống Linux của chúng tôi bằng lệnh yum, bây giờ chúng tôi muốn có thể truy vấn một kho lưu trữ và thay vào đó liệt kê các gói có sẵn của nó.

Điều này khá giống nhau, ngoại trừ việc chúng tôi thay thế 'đã cài đặt' bằng 'có sẵn' để thay vào đó liệt kê tất cả các gói có sẵn.

Mã nguồn [Chọn]
[root@centos7 ~]# yum list installed | wc -l
343
[root@centos7 ~]# yum list available | wc -l
8972

Như chúng ta có thể thấy, chúng ta hiện có hơn 300 gói được cài đặt, tuy nhiên trong kho lưu trữ có tổng cộng gần 9000 gói để chúng ta cài đặt.

Chúng tôi cũng có thể chạy 'yum list all' để liệt kê cả gói đã cài đặt và gói có sẵn cùng nhau hoặc 'yum list updates' để chỉ liệt kê các gói hiện có sẵn bản cập nhật, đầu ra tương tự như lệnh 'yum check-update' được đề cập trước đây.

20. Nhóm gói

Các gói có liên quan với nhau có thể được nhóm lại với nhau thành một nhóm gói. Điều này cho phép chúng tôi cài đặt, cập nhật hoặc xóa nhóm gói thực sự được tạo thành hoặc nhiều gói riêng lẻ khác.

Ví dụ: chúng tôi có thể chạy 'danh sách nhóm yum' để xem các nhóm có sẵn để chúng tôi sử dụng theo mặc định.

Mã nguồn [Chọn]
[root@centos7 ~]# yum grouplist
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Available Environment Groups:
   Minimal Install
   Compute Node
   Infrastructure Server
   File and Print Server
   Basic Web Server
   Virtualization Host
   Server with GUI
   GNOME Desktop
   KDE Plasma Workspaces
   Development and Creative Workstation
Available Groups:
   Compatibility Libraries
   Console Internet Tools
   Development Tools
   Graphical Administration Tools
   Legacy UNIX Compatibility
   Scientific Support
   Security Tools
   Smart Card Support
   System Administration Tools
   System Management
Done

Khi chúng tôi có danh sách các nhóm khả dụng, chúng tôi có thể sử dụng 'yum groupinfo' trên bất kỳ nhóm nào trong số đó để biết ý tưởng về các gói được đưa vào như một phần của nhóm.

Mã nguồn [Chọn]
[root@centos7 ~]# yum groupinfo "Basic Web Server"
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)

Environment Group: Basic Web Server
 Environment-Id: web-server-environment
 Description: Server for serving static and dynamic internet content.
 Mandatory Groups:
   +base
   +core
   +web-server

[root@centos7 ~]# yum groupinfo "web-server"
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)

Group: Web Server
 Group-Id: web-server
 Description: Allows the system to act as a web server, and run Perl and Python web applications.
 Mandatory Packages:
    httpd
 Default Packages:
   +crypto-utils
   +httpd-manual
   +mod_fcgid
   +mod_ssl

Ở đây chúng ta có thể thấy nhóm "Basic Web Server" thực sự được tạo thành từ ba nhóm khác là base, core và web-server. Nếu chúng ta xem xét kỹ hơn nhóm máy chủ web, chúng ta có thể thấy rằng nó sử dụng gói httpd cũng như một số gói bổ sung mà chúng ta chưa cài đặt nhưng có sẵn, được biểu thị bằng ký hiệu '+'.

Cuối cùng, chúng ta có thể cài đặt nhóm bằng lệnh 'yum groupinstall', như hình bên dưới.

Mã nguồn [Chọn]
[root@centos7 ~]# yum groupinstall "web server" -y
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Resolving Dependencies
--> Running transaction check
---> Package crypto-utils.x86_64 0:2.4.1-42.el7 will be installed
--> Processing Dependency: perl(Newt) for package: crypto-utils-2.4.1-42.el7.x86_64
---> Package httpd-manual.noarch 0:2.4.6-40.el7.centos.4 will be installed
---> Package mod_fcgid.x86_64 0:2.3.9-4.el7 will be installed
---> Package mod_ssl.x86_64 1:2.4.6-40.el7.centos.4 will be installed
--> Running transaction check
---> Package perl-Newt.x86_64 0:1.08-36.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================================================================================================
 Package                                      Arch                                   Version                                                   Repository                               Size
=============================================================================================================================================================================================
Installing for group install "Web Server":
 crypto-utils                                 x86_64                                 2.4.1-42.el7                                              base                                     78 k
 httpd-manual                                 noarch                                 2.4.6-40.el7.centos.4                                     updates                                 1.3 M
 mod_fcgid                                    x86_64                                 2.3.9-4.el7                                               base                                     79 k
 mod_ssl                                      x86_64                                 1:2.4.6-40.el7.centos.4                                   updates                                 104 k
Installing for dependencies:
 perl-Newt                                    x86_64                                 1.08-36.el7                                               base                                     64 k

Transaction Summary
=============================================================================================================================================================================================
Install  4 Packages (+1 Dependent package)

Total download size: 1.6 M
Installed size: 6.2 M
Downloading packages:
(1/5): crypto-utils-2.4.1-42.el7.x86_64.rpm                                                                                                                           |  78 kB  00:00:00
(2/5): perl-Newt-1.08-36.el7.x86_64.rpm                                                                                                                               |  64 kB  00:00:00
(3/5): mod_fcgid-2.3.9-4.el7.x86_64.rpm                                                                                                                               |  79 kB  00:00:00
(4/5): mod_ssl-2.4.6-40.el7.centos.4.x86_64.rpm                                                                                                                       | 104 kB  00:00:00
(5/5): httpd-manual-2.4.6-40.el7.centos.4.noarch.rpm                                                                                                                  | 1.3 MB  00:00:00
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                        2.5 MB/s | 1.6 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : perl-Newt-1.08-36.el7.x86_64                                                                                                                                              1/5
  Installing : crypto-utils-2.4.1-42.el7.x86_64                                                                                                                                          2/5
  Installing : 1:mod_ssl-2.4.6-40.el7.centos.4.x86_64                                                                                                                                    3/5
  Installing : httpd-manual-2.4.6-40.el7.centos.4.noarch                                                                                                                                 4/5
  Installing : mod_fcgid-2.3.9-4.el7.x86_64                                                                                                                                              5/5
  Verifying  : perl-Newt-1.08-36.el7.x86_64                                                                                                                                              1/5
  Verifying  : mod_fcgid-2.3.9-4.el7.x86_64                                                                                                                                              2/5
  Verifying  : crypto-utils-2.4.1-42.el7.x86_64                                                                                                                                          3/5
  Verifying  : httpd-manual-2.4.6-40.el7.centos.4.noarch                                                                                                                                 4/5
  Verifying  : 1:mod_ssl-2.4.6-40.el7.centos.4.x86_64                                                                                                                                    5/5

Installed:
  crypto-utils.x86_64 0:2.4.1-42.el7          httpd-manual.noarch 0:2.4.6-40.el7.centos.4          mod_fcgid.x86_64 0:2.3.9-4.el7          mod_ssl.x86_64 1:2.4.6-40.el7.centos.4

Dependency Installed:
  perl-Newt.x86_64 0:1.08-36.el7

Complete!

Nhóm cũng có thể được cập nhật bằng 'yum groupupdate' hoặc tất cả các gói trong nhóm bị xóa bằng 'yum groupremove'.

21. Chỉ cài đặt các bản cập nhật bảo mật

Mặc dù chúng tôi có thể chỉ cần thực hiện 'cập nhật yum' để cập nhật tất cả các gói đã cài đặt của mình lên phiên bản mới nhất, nhưng điều này có thể không lý tưởng trong môi trường sản xuất. Có thể cài đặt các bản cập nhật chỉ bảo mật trong khi vá lỗi có thể là một yêu cầu trong môi trường của bạn và có thể được thực hiện với 'yum update --security'.

Mã nguồn [Chọn]
[root@centos7 ~]# yum update --security
22. Loại trừ gói cụ thể

Chúng tôi có thể tùy ý loại trừ một gói cụ thể khỏi quá trình cập nhật, cài đặt hoặc gỡ bỏ bằng lệnh -x sẽ loại trừ gói đó. Trong ví dụ này, chúng tôi thực hiện 'cập nhật kiểm tra yum' và xác nhận rằng đã có bản cập nhật kernel, tuy nhiên chúng tôi không muốn cài đặt gói này vào lúc này. Với sự trợ giúp của -x, chúng tôi bỏ qua cập nhật kernel và thay vào đó thực hiện 'cập nhật yum' cho biết rằng nó sẽ cập nhật mọi thứ ngoại trừ kernel không được liệt kê.

Mã nguồn [Chọn]
[root@centos7 ~]# yum check-update

device-mapper-persistent-data.x86_64                                                               0.6.2-1.el7_2                                                                      updates
initscripts.x86_64                                                                                 9.49.30-1.el7_2.3                                                                  updates
kernel.x86_64                                                                                      3.10.0-327.28.3.el7                                                                updates
kernel-tools.x86_64                                                                                3.10.0-327.28.3.el7                                                                updates
kernel-tools-libs.x86_64                                                                           3.10.0-327.28.3.el7                                                                updates
microcode_ctl.x86_64                                                                               2:2.1-12.el7_2.1                                                                   updates
python-perf.x86_64                                                                                 3.10.0-327.28.3.el7                                                                updates

[root@centos7 ~]# yum update -x kernel
Resolving Dependencies
--> Running transaction check
---> Package device-mapper-persistent-data.x86_64 0:0.5.5-1.el7 will be updated
---> Package device-mapper-persistent-data.x86_64 0:0.6.2-1.el7_2 will be an update
---> Package initscripts.x86_64 0:9.49.30-1.el7_2.2 will be updated
---> Package initscripts.x86_64 0:9.49.30-1.el7_2.3 will be an update
---> Package kernel-tools.x86_64 0:3.10.0-327.22.2.el7 will be updated
---> Package kernel-tools.x86_64 0:3.10.0-327.28.3.el7 will be an update
---> Package kernel-tools-libs.x86_64 0:3.10.0-327.22.2.el7 will be updated
---> Package kernel-tools-libs.x86_64 0:3.10.0-327.28.3.el7 will be an update
---> Package microcode_ctl.x86_64 2:2.1-12.el7 will be updated
---> Package microcode_ctl.x86_64 2:2.1-12.el7_2.1 will be an update
---> Package python-perf.x86_64 0:3.10.0-327.22.2.el7 will be updated
---> Package python-perf.x86_64 0:3.10.0-327.28.3.el7 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================================================================================================
 Package                                                    Arch                                Version                                           Repository                            Size
=============================================================================================================================================================================================
Updating:
 device-mapper-persistent-data                              x86_64                              0.6.2-1.el7_2                                     updates                              366 k
 initscripts                                                x86_64                              9.49.30-1.el7_2.3                                 updates                              429 k
 kernel-tools                                               x86_64                              3.10.0-327.28.3.el7                               updates                              2.4 M
 kernel-tools-libs                                          x86_64                              3.10.0-327.28.3.el7                               updates                              2.3 M
 microcode_ctl                                              x86_64                              2:2.1-12.el7_2.1                                  updates                              535 k
 python-perf                                                x86_64                              3.10.0-327.28.3.el7                               updates                              2.4 M

Transaction Summary
=============================================================================================================================================================================================
Upgrade  6 Packages

Total download size: 8.4 M
Is this ok [y/d/N]:

23. Thêm thời gian chờ ngẫu nhiên

Đôi khi, bạn có thể muốn chèn một khoảng thời gian ngẫu nhiên trước khi thực hiện một số lệnh yum, ví dụ: nếu bạn quản lý hàng trăm máy chủ và cập nhật tất cả chúng vào một ngày cụ thể, bạn có thể không muốn tất cả chúng tấn công kho lưu trữ đồng thời vì điều này có thể khiến quá trình chạy rất chậm. Với tùy chọn -R, chúng ta có thể chỉ định thời gian ngẫu nhiên tối đa tính bằng phút mà yum sẽ đợi trước khi thực hiện lệnh, một nơi nào đó trong khoảng thời gian này sẽ được chọn ngẫu nhiên.

Mã nguồn [Chọn]
[root@centos7 ~]# time yum remove httpd -y -R 2
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-40.el7.centos.4 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================================================================================================
 Package                                 Arch                                     Version                                                   Repository                                  Size
=============================================================================================================================================================================================
Removing:
 httpd                                   x86_64                                   2.4.6-40.el7.centos.4                                     @updates                                   9.4 M

Transaction Summary
=============================================================================================================================================================================================
Remove  1 Package

Installed size: 9.4 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : httpd-2.4.6-40.el7.centos.4.x86_64                                                                                                                                        1/1
  Verifying  : httpd-2.4.6-40.el7.centos.4.x86_64                                                                                                                                        1/1

Removed:
  httpd.x86_64 0:2.4.6-40.el7.centos.4

Complete!

real    1m21.954s
user    0m0.409s
sys     0m0.156s

Trong ví dụ này, tôi đã thêm lệnh 'thời gian' vào lệnh 'yum' để chúng ta có thể xem mất bao lâu để hoàn thành, trong ví dụ này, chúng ta có thể thấy rằng việc này mất khoảng 1 phút 22 giây để hoàn thành, đây là một sự ngẫu nhiên. khoảng thời gian từ 0 đến 2 phút như đã được chỉ định.

24. Ẩn tất cả đầu ra

Như bạn đã thấy trong các ví dụ trên, lệnh yum có thể cung cấp khá nhiều đầu ra. Nếu chúng tôi không muốn hiển thị các thông báo đầu ra, chúng tôi chỉ cần chỉ định tùy chọn -q cho silent, tùy chọn này sẽ ẩn tất cả đầu ra. Trong ví dụ bên dưới, chúng tôi gỡ cài đặt hoàn toàn gói có yum và không có thông báo nào xuất ra.

Mã nguồn [Chọn]
[root@centos7 ~]# yum install httpd -y -q
[root@centos7 ~]#

25. Hiển thị thông tin chi tiết

Ngoài ra, nếu bạn đang khắc phục sự cố, bạn có thể chỉ định tùy chọn -v để bật đầu ra dài dòng. Trong ví dụ chi tiết dưới đây, chúng ta có thể thấy thông tin bổ sung trong đầu ra không có sẵn trước đó.

Mã nguồn [Chọn]
[root@centos7 ~]# yum remove httpd -y -v
Loading "fastestmirror" plugin
Config time: 0.007
Yum version: 3.4.3
rpmdb time: 0.000
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-40.el7.centos.4 will be erased
Checking deps for httpd.x86_64 0:2.4.6-40.el7.centos.4 - e
--> Finished Dependency Resolution
Dependency Process ending
Depsolve time: 0.220

Dependencies Resolved

=========================================================================
 Package              Arch       Version                Repository   Size
=========================================================================
Removing:
 httpd                x86_64     2.4.6-40.el7.centos.4  @updates    9.4 M

Transaction Summary
=========================================================================
Remove  1 Package

Installed size: 9.4 M
Downloading packages:
Member: httpd.x86_64 0:2.4.6-40.el7.centos.4 - e
Removing Package httpd-2.4.6-40.el7.centos.4.x86_64
Running transaction check
Transaction check time: 0.001
Running transaction test
Transaction test succeeded
Transaction test time: 0.014
Running transaction
  Erasing    : httpd-2.4.6-40.el7.centos.4.x86_64     1/1
  Verifying  : httpd-2.4.6-40.el7.centos.4.x86_64     1/1
VerifyTransaction time: 0.049
Transaction time: 0.425

Removed:
  httpd.x86_64 0:2.4.6-40.el7.centos.4

Complete!

Hướng dẫn này đã trình bày cách sử dụng yum với 25 ví dụ khác nhau trong đó bạn có thể sử dụng lệnh yum trên thực tế.