Computer >> 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 tôi sẽ xem xét YUM trình quản lý gói 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 các phần phụ thuộc và quản lý các kho lưu trữ bổ sung. Bài viết này sẽ hữu ích cho những người mới bắt đầu quản trị Linux với tư cách là một cheat sheet yum.

Yum (Yellowdog Updater Modified) là trình quản lý gói giao diện điều khiển dành cho các bản phân phối Linux dựa trên các gói RPM (Trình quản lý gói RedHat). Chúng bao gồm các hệ điều hành phổ biến như RedHat, CentOS, Fedora, Oracle Linux, Scientific Linux.

Cài đặt, cập nhật và xóa các gói bằng YUM

Bắt đầu với cái gì? Giống như trong bất kỳ trường hợp nào khác, hãy bắt đầu với sự trợ giúp:

yum help - sự trợ giúp đầy đủ về bạn

Tôi sẽ đánh dấu các lệnh yum phổ biến nhất:

yum clean all - dọn dẹp bộ nhớ cache của tất cả các gói (thường được sử dụng nếu có bất kỳ sự cố nào xảy ra với yum)

yum makecache - tạo lại bộ nhớ cache của gói

yum repolist - hiển thị danh sách tất cả các kho được kết nối, kết quả đầu ra 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ài đặt kho lưu trữ CentOS 7 tiêu chuẩn trên hệ thống của mình:Cơ sở, Bổ sung và Cập nhật.

yum list available - hiển thị danh sách tất cả các gói có sẵn để cài đặt.

yum list installed - hiển thị danh sách tất cả các gói được cài đặt trong hệ thống.

yum list kernel - hiển thị danh sách các 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ài đặt trên máy chủ CentOS của mình hay chưa (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ể nhận được một 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 một gói, hãy yum install Được sử dụng. Để cài đặt máy chủ web apache, hãy chạy lệnh sau:

yum install httpd

Nếu bạn thấy thông báo “ Traceback (lần gọi gần đây nhất):thread.error:không thể bắt đầu chuỗi mới ”Khi chạy bất kỳ lệnh yum nào, có khả năng là bạn không có đủ RAM trên máy chủ của mình. Cố gắng thêm một số RAM hoặc tắt các plugin yum (chỉ định plugins=0 trong /etc/yum.conf ).

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

yum deplist httpd

Nếu bạn muốn cài đặt một gói nhưng bạn quên tên đầy đủ của nó, bạn có thể sử 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ỉ cần nhập:

yum install epel

No package epel available.
Error: Nothing to do

Bạn sẽ không thấy bất kỳ gói nào có sẵn.

Yum có thể cài đặt nhiều gói cùng một lúc:

yum install httpd php wget rsyslog

Để cài đặt lại một gói:

yum reinstall proftpd

Để xóa một gói đã cài đặt với yum, tham số remove được sử dụng:

yum remove httpd

Trước khi bạn xóa bất kỳ gói nào, bạn nên kiểm tra các phụ thuộc của nó (có những gói gây ra việc xóa một số gói khác khi bạn cố gắng xóa chúng).

yum deplist proftpd

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

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

yum search nginx

Sử dụng tùy chọn cung cấp, bạn có thể tìm thấy các gói chứa tệp cụ thể, ví dụ:

yum provides */squid.conf

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

yum update

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

yum update php

Bạn có thể kiểm tra xem có bất kỳ bản cập nhật nào khả dụng cho hệ thống của mình hay không bằng lệnh sau:

yum check-update

Để nhận thông tin về các bản cập nhật bảo mật hiện có:

yum updateinfo list security

Trong một số trường hợp, sự cố 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 bạn 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ể sử dụng cài đặt nhóm các gói với danh sách nhóm . Có một số nhóm gói được xác định trước với các bộ chương trình khác nhau trong kho lưu trữ. Bạn có thể hiển thị danh sách các nhóm này:

yum grouplist

Hãy xem nó hoạt động như thế nào trong ví dụ về danh sách “Máy chủ web cơ bản”. Để tìm hiểu thêm về nhóm và các gói của nhóm:

yum groupinfo "Basic Web Server"

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

Sau khi kiểm tra, chúng tôi thấy rằng tập hợp các gói và dịch vụ cho máy chủ web sẽ được cài đặt.

Đây là một danh sách nhóm hữu ích khác - “Công cụ quản trị hệ thống”:

yum groupinfo "System Administration Tools”

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

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

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

yum groupinstall "System Administration Tools"

Các gói đã cài đặt sẽ xuất hiện trong một khối riêng biệt (“Nhóm đã cài đặt”):

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

Sử dụng Lệnh Lịch sử YUN

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

yum history list

Đầu ra bao gồm 5 cột, cột đầu tiên hiển thị ID giao dịch mà bạn có thể sử dụng để xem chi tiết giao dịch (các gói đã cài đặt, 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ị xóa:

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ỡ bỏ gói yum trong /var/log/yum.log :

cat /var/log/yum.log

Tùy chọn lệnh YUM hữu ích

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

yum update -y yum install httpd -y

Để nói không theo yêu cầu, hãy sử dụng tùy chọn này:

--assumeno

Để sử dụng yum mà không cần bất kỳ plugin nào hoặc tắt một trong số chúng, hãy sử dụng các thông số:

--noplugins
--disableplugin=fastestmirror

Để kích hoạt một plugin bị vô hiệu hóa:

--enableplugin=fastestmirror

Để sử dụng repo bị vô hiệu hóa:

yum update –enablerepo=atomic

Để tắt một kho lưu trữ cụ thể trong yum:

yum update –disablerepo=atomic

Tệp cấu hình YUM /etc/yum.conf

Tệp cấu hình YUM là /etc/yum.conf .

Các thông số tệp cấu hình chính là:

  • bộ nhớ đệm - bộ đệm ẩn gói cục bộ (theo mặc định, / var / cache / yum)
  • logfile - đường dẫn đến tệp nhật ký yum
  • người hết thời gian - có cập nhật các gói lỗi thời hay 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ữ bộ nhớ đệm không (1 - có, 0 - không)
  • bộ nhớ đệm - thư mục lưu trữ bộ đệm yum (theo mặc định, / var / cache / yum)
  • cấp độ gỡ lỗi - cấp độ gỡ lỗi 1-10
  • plugin —Có thể bật các plugin yum (1 - có, 0 - không)
  • bugtracker_url - liên kết đến nơi các lỗi yum sẽ được đăng ký
  • installonly_limit - số lượng phiên bản tối đa có thể được cài đặt cho một gói

Các plugin YUM hữu ích

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

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

yum-plugin-quickmirror - đo tốc độ phản chiếu và đưa ra tốc độ nhanh nhất để cài đặt các gói.

yum-plugin-security - chỉ cung cấp danh sách các bản cập nhật bảo mật.

yum-plugin-key - cho phép sử dụng khóa, thông tin khóa, dữ liệu khóa, thông số xóa khóa

Thư mục lưu trữ tất cả các plugin là / etc / yum / .

yum-plugin-versionlock - ngăn các gói đã chọn cập nhật

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

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 đặt plugin bằng yum install giống 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, hãy chạy lệnh sau:

yum versionlock nginx

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

yum versionlock list

Để xóa một gói khỏi danh sách bị 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 sử dụng một 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ả các plugin yum:

--noplugins

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

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

proxy=https://proxy_server_name:3128

Nếu máy chủ proxy của bạn yêu cầu xác thực, hãy thêm các dòng:

proxy_proxy_username=proxy_user
proxy_password=proxy_user_passw0rd

Để đảm bảo yum hoạt động thông qua máy chủ proxy, hãy sử dụng lệnh sau:

yum clean all && yum search nginx

Để kiểm tra, tôi đã chỉ định một địa chỉ máy chủ proxy công cộng của Đức và plugin quickmirror được kích hoạt trong quá trình cài đặt và nó đã tìm thấy các bản sao có 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 chỉ muốn sử dụng proxy cho một số kho lưu trữ, bạn không cần thực hiện thay đổi đối với tệp /etc/yum.conf. Bạn có thể chỉ định cài đặt máy chủ proxy trong tệp cấu hình kho lưu trữ /etc/yum.repos.d/your_config.repo thay vào đó.

Vì vậy, chúng tôi đã 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 phần tiếp theo, chúng tôi sẽ hướng dẫn chi tiết hơn cách quản lý kho lưu trữ YUM / DNF.