Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Linux

Sử dụng trình quản lý gói YUM trên CentOS và RHEL

Trong bài viết này, chúng ta sẽ xem xét trình quản lý gói YUM cho phép quản lý cài đặt, gỡ bỏ và cập nhật chương trình (gói RPM), tự động giải quyết phụ thuộc và quản lý kho bổ sung. Bài viết sẽ hữu ích cho quản trị viên Linux mới bắt đầu như một cheat sheet yum.

Yum (Yellowdog Updater Modified) là trình quản lý gói console cho các bản phân phối Linux dựa trên gói RPM (RedHat Package Manager). Các hệ điều hành phổ biến bao gồm RedHat, CentOS, Fedora, Oracle Linux, Scientific Linux.

Cài đặt, cập nhật và gỡ bỏ gói bằng YUM

Bắt đầu từ đâu? Giống như mọi trường hợp, hãy bắt đầu từ trợ giúp:

yum help — trợ giúp đầy đủ về yum

Tôi sẽ nhấn mạnh các lệnh yum phổ biến nhất:

  • yum clean all — dọn dẹp cache tất cả gói (thường dùng khi có vấn đề với yum)
  • yum makecache — tạo lại cache gói
  • yum repolist — hiển thị danh sách tất cả kho đã kết nối, đầu ra trông như sau:
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base:
* extras:
* updates:
repo id repo name status
base/7/x86_64 CentOS-7 - Base 10,019
extras/7/x86_64 CentOS-7 - Extras 435
updates/7/x86_64 CentOS-7 - Updates 2,500
repolist: 12,954

Tôi chỉ có kho tiêu chuẩn CentOS 7 trên hệ thống: Base, Extras và Updates.

  • yum list available — hiển thị danh sách tất cả gói có sẵn để cài đặt.
  • yum list installed — hiển thị danh sách tất cả gói đã cài đặt trong hệ thống.
  • yum list kernel — hiển thị danh sách gói liên quan đến nhân Linux.

Bạn có thể kiểm tra xem một gói cụ thể có được cài đặt trên máy chủ CentOS hay không (ví dụ, kiểm tra trạng thái gói apache):

yum list installed httpd
Installed Packages
httpd.x86_64 2.4.6-89.el7.centos.1 @updates

Bạn có thể lấy thông tin chi tiết về một gói cụ thể. Ví dụ, hãy lấy thêm thông tin về gói MariaDB:

yum info mariadb

Sử dụng trình quản lý gói YUM trên CentOS và RHEL

Để cài đặt gói, dùng yum install. Để cài máy chủ web apache, chạy lệnh:

yum install httpd

Nếu bạn thấy lỗi "Traceback (most recent call last):thread.error: can’t start new thread" khi chạy bất kỳ lệnh yum nào, có thể máy chủ của bạn không đủ RAM. Hãy thử thêm RAM hoặc tắt plugin yum (chỉ định plugins=0 trong /etc/yum.conf).

Trước khi cài gói, bạn có thể kiểm tra phụ thuộc của nó bằng lệnh:

yum deplist httpd

Nếu bạn muốn cài gói nhưng quên tên đầy đủ, bạn có thể dùng ký tự đại diện *. Ví dụ:

yum install epel-*
Resolving Dependencies
--> Running transaction check
---> Package epel-release.noarch 0:7-11 will be installed
--> Finished Dependency Resolution
Install 1 Package
Total download size: 15 k
Installed size: 24 k
Is this ok [y/d/N]:

Nếu bạn chỉ nhập:

yum install epel
No package epel available.
Error: Nothing to do

Bạn sẽ không thấy gói nào khả dụng.

Yum có thể cài nhiều gói cùng lúc:

yum install httpd php wget rsyslog

Để cài lại gói:

yum reinstall proftpd

Để gỡ bỏ gói đã cài đặt bằng yum, dùng tham số remove:

yum remove httpd

Trước khi gỡ bất kỳ gói nào, khuyến khích kiểm tra phụ thuộc (có gói khiến gỡ các gói khác khi bạn cố gắng gỡ chúng).

yum deplist proftpd

Sử dụng trình quản lý gói YUM trên CentOS và RHEL

Để tìm gói theo tên hoặc mô tả:

yum search nginx

Sử dụng tùy chọn provides, bạn có thể tìm gói chứa file cụ thể, ví dụ:

yum provides */squid.conf

Để cập nhật tất cả gói đã cài đặt, chạy lệnh:

yum update

Bạn có thể cập nhật gói theo tên:

yum update php

Bạn có thể kiểm tra xem có cập nhật nào cho hệ thống không bằng lệnh:

yum check-update

Để lấy thông tin về cập nhật bảo mật:

yum updateinfo list security

Trong một số trường hợp, vấn đề có thể xảy ra sau khi bạn cập nhật gói hoặc dịch vụ. Ví dụ, trang web của bạn ngừng hoạt động sau khi cập nhật phiên bản php. Bạn có thể quay lại phiên bản gói trước bằng yum:

yum downgrade php

Bạn cũng có thể dùng cài đặt nhóm gói với grouplist. Trong kho có một số nhóm gói được định nghĩa trước với các bộ chương trình khác nhau. Bạn có thể hiển thị danh sách các nhóm này:

yum grouplist

Hãy xem cách nó hoạt động trên ví dụ danh sách "Basic Web Server". Để biết thêm về nhóm và các gói của nó:

yum groupinfo "Basic Web Server"

Sử dụng trình quản lý gói YUM trên CentOS và RHEL

Sau kiểm tra, chúng ta thấy bộ gói và dịch vụ cho máy chủ web sẽ được cài đặt.

Đây là một nhóm hữu ích khác — "System Administration Tools":

yum groupinfo "System Administration Tools"

Sử dụng trình quản lý gói YUM trên CentOS và RHEL

Như bạn thấy, danh sách chứa công cụ giám sát và gỡ lỗi.

Bạn có thể cài đặt nhóm bằng lệnh:

yum groupinstall "System Administration Tools"

Các gói đã cài sẽ xuất hiện trong một khối riêng ("Installed Groups"):

Sử dụng trình quản lý gói YUM trên CentOS và RHEL

Sử dụng lệnh YUM History

Bạn có thể hiển thị lịch sử cài đặt yum (danh sách giao dịch) bằng:

yum history list

Đầu ra gồm 5 cột, cột đầu tiên hiển thị ID giao dịch bạn có thể dùng để xem chi tiết giao dịch (gói đã cài, phụ thuộc).

Ví dụ:

yum history info 10

Sử dụng trình quản lý gói YUM trên CentOS và RHEL

Hơn nữa, bạn có thể hoàn tác giao dịch bằng lệnh:

yum history undo 10

Trong trường hợp của tôi, 4 gói sẽ bị gỡ:

Sử dụng trình quản lý gói YUM trên CentOS và RHEL

Bạn có thể xem thông tin về cài đặt/gỡ gói yum trong /var/log/yum.log:

cat /var/log/yum.log

Các tùy chọn lệnh YUM hữu ích

Yum có một số tùy chọn hữu ích bạn có thể thường cần để quản lý gói. Dùng tùy chọn -y để ẩn tất cả đầu ra yum trừ lỗi. Ví dụ:

yum update -y
yum install httpd -y

Để nói không với yêu cầu, dùng tùy chọn:

--assumeno

Để dùng yum không có plugin hoặc tắt một plugin, dùng tham số:

--noplugins
--disableplugin=fastestmirror

Để bật plugin đã tắt:

--enableplugin=fastestmirror

Để dùng kho đã tắt:

yum update --enablerepo=atomic

Để tắt một kho cụ thể trong yum:

yum update --disablerepo=atomic

File cấu hình YUM /etc/yum.conf

File cấu hình YUM là /etc/yum.conf.

Các tham số chính của file cấu hình:

  • cachedir — cache gói cục bộ (mặc định, /var/cache/yum)
  • logfile — đường dẫn đến file log yum
  • obsoletes — có cập nhật gói lỗi thời không (1 — có, 0 — không)
  • gpgcheck — xác minh gói trước khi cài đặt (1 — có, 0 — không)
  • keepcache — có giữ cache không (1 — có, 0 — không)
  • cachedir — thư mục lưu cache yum (mặc định, /var/cache/yum)
  • debuglevel — mức gỡ lỗi 1-10
  • plugins — bật plugin yum (1 — có, 0 — không)
  • bugtracker_url — liên kết nơi lỗi yum sẽ được đăng ký
  • installonly_limit — số lượng phiên bản tối đa có thể cài cho một gói

Các Plugin YUM hữu ích

Tại sao cần plugin trong yum? Giống như mọi nơi, chúng làm cho công việc của chúng ta dễ dàng hơn.

Dưới đây là một số plugin phổ biến và mô tả:

  • yum-plugin-fastestmirror — đo tốc độ mirror và đề xuất mirror nhanh nhất để cài gói.
  • yum-plugin-security — cung cấp danh sách chỉ cập nhật bảo mật.
  • yum-plugin-keys — cho phép sử dụng tham số keys, keys-info, keys-data, keys-remove
  • yum-plugin-versionlock — ngăn chặn các gói được chọn khỏi việc cập nhật

Thư mục chứa tất cả plugin là /etc/yum/.

Để hiển thị danh sách plugin yum có sẵn, chạy lệnh:

yum search yum-plugin
=======================================================================
N/S matched: yum-plugin =======================================================================
PackageKit-yum-plugin.x86_64 : Tell PackageKit to check for updates when yum exits
fusioninventory-agent-yum-plugin.noarch : Ask FusionInventory agent to send an inventory when yum exits
kabi-yum-plugins.noarch : The CentOS Linux kernel ABI yum plugin
yum-plugin-aliases.noarch : Yum plugin to enable aliases filters
yum-plugin-auto-update-debug-info.noarch : Yum plugin to enable automatic updates to installed debuginfo packages
yum-plugin-changelog.noarch : Yum plugin for viewing package changelogs before/after updating
yum-plugin-copr.noarch : Yum plugin to add copr command
yum-plugin-fastestmirror.noarch : Yum plugin which chooses fastest repository from a mirrorlist
yum-plugin-filter-data.noarch : Yum plugin to list filter based on package data
yum-plugin-fs-snapshot.noarch : Yum plugin to automatically snapshot your filesystems during updates
yum-plugin-keys.noarch : Yum plugin to deal with signing keys
yum-plugin-list-data.noarch : Yum plugin to list aggregate package data
yum-plugin-local.noarch : Yum plugin to automatically manage a local repo. of downloaded packages
yum-plugin-merge-conf.noarch : Yum plugin to merge configuration changes when installing packages
yum-plugin-ovl.noarch : Yum plugin to work around overlayfs issues
yum-plugin-post-transaction-actions.noarch : Yum plugin to run arbitrary commands when certain pkgs are acted on
yum-plugin-pre-transaction-actions.noarch : Yum plugin to run arbitrary commands when certain pkgs are acted on
yum-plugin-priorities.noarch : plugin to give priorities to packages from different repos
yum-plugin-protectbase.noarch : Yum plugin to protect packages from certain repositories.
yum-plugin-ps.noarch : Yum plugin to look at processes, with respect to packages
yum-plugin-remove-with-leaves.noarch : Yum plugin to remove dependencies which are no longer used because of a removal
yum-plugin-rpm-warm-cache.noarch : Yum plugin to access the rpmdb files early to warm up access to the db
yum-plugin-show-leaves.noarch : Yum plugin which shows newly installed leaf packages
yum-plugin-tmprepo.noarch : Yum plugin to add temporary repositories
yum-plugin-tsflags.noarch : Yum plugin to add tsflags by a commandline option
yum-plugin-upgrade-helper.noarch : Yum plugin to help upgrades to the next distribution version
yum-plugin-verify.noarch : Yum plugin to add verify command, and options
yum-plugin-versionlock.noarch : Yum plugin to lock specified packages from being updated

Bạn có thể cài plugin bằng yum install như bất kỳ gói nào khác:

yum install yum-plugin-changelog
yum -y install yum-versionlock

Để chặn cập nhật gói bằng plugin, chạy lệnh:

yum versionlock nginx

Để hiển thị danh sách gói bị chặn:

yum versionlock list

Để xóa gói khỏi danh sách chặn:

yum versionlock delete nginx

Sử dụng trình quản lý gói YUM trên CentOS và RHEL

Nếu bạn không muốn dùng plugin, bạn có thể tắt nó bằng cách thêm tùy chọn sau vào lệnh yum:

--disableplugin=fastestmirror

Hoặc bạn có thể tắt tất cả plugin yum:

--noplugins

Cách cấu hình Proxy cho YUM?

Yum sử dụng giao thức HTTP/1.1 để tương tác với kho gói. Nếu máy chủ Linux của bạn chỉ truy cập Internet qua máy chủ proxy HTTP, bạn có thể chỉ định tên máy chủ proxy trong phần [main] của file /etc/yum.conf:

proxy=https://proxy_server_name:3128

Nếu máy chủ proxy yêu cầu xác thực, thêm các dòng sau:

proxy_username=proxy_user
proxy_password=proxy_user_passw0rd

Để đảm bảo yum hoạt động qua proxy, dùng lệnh:

yum clean all && yum search nginx

Để kiểm tra, tôi đã chỉ định địa chỉ proxy công cộng Đức, và plugin fastestmirror được kích hoạt trong quá trình cài đặt và tìm thấy mirror với tốc độ nhanh nhất:

Sử dụng trình quản lý gói YUM trên CentOS và RHEL

Nếu bạn muốn dùng proxy chỉ cho một số kho, bạn không cần thay đổi file /etc/yum.conf. Bạn có thể chỉ định cài đặt proxy trong file cấu hình kho /etc/yum.repos.d/your_config.repo.

Vậy là chúng ta đã xem xét các tính năng cơ bản của yum, trình quản lý gói RPM, trong Linux CentOS/RHEL. Trong bài tiếp theo, chúng ta sẽ chỉ cách quản lý kho YUM/DNF chi tiết hơn.