Các kho lưu trữ RHEL / CentOS tiêu chuẩn (chính thức) cung cấp một số lượng nhỏ các gói cơ bản không phải lúc nào cũng chứa các phiên bản mới nhất của chương trình. Tuy nhiên, bạn có thể sử dụng kho lưu trữ công cộng hoặc riêng tư của bên thứ ba để cài đặt các chương trình mới trong Red Hat Enterprise Linux, CentOS, Oracle Linux và Scientific Linux. Remi và EPEL là kho lưu trữ của bên thứ ba phổ biến nhất. Trong bài viết này, chúng ta sẽ xem xét cách cài đặt, quản lý và sử dụng các kho lưu trữ bổ sung với trình quản lý gói yum (dnf) trong CentOS.
Kho lưu trữ là một kho lưu trữ có thể cập nhật các gói phần mềm RPM cho Linux. Các trình quản lý gói khác nhau có thể sử dụng kho lưu trữ mạng để cài đặt và cập nhật chương trình.
Làm cách nào để bật EPEL và kho lưu trữ Remi trong CentOS?
Khi bạn cài đặt một hệ điều hành (trong ví dụ của chúng tôi, đó là CentOS 7), các kho lưu trữ cơ bản được cài đặt theo mặc định. Bạn có thể xem danh sách chúng bằng lệnh:
yum repolist
Như bạn có thể thấy trong ảnh chụp màn hình, có 3 kho lưu trữ được cài đặt trong hệ thống - base , tính năng bổ sung , cập nhật . Đây là đủ để bắt đầu cài đặt phần mềm cơ bản và kho bổ sung.
Hãy xem xét cách cài đặt các kho lưu trữ bổ sung trong CentOS.
EPEL có thể là kho lưu trữ phổ biến nhất hiện nay.
EPEL (Các gói bổ sung cho Enterprise Linux) là một dự án kho lưu trữ mở và miễn phí được cung cấp bởi nhóm Fedora. Nó chứa các gói phần mềm bổ sung chất lượng cao cho các bản phân phối Linux. Kho này lưu trữ một số lượng lớn các gói từ máy chủ FTP đến PHP và các công cụ giám sát hệ thống. Đây là kho lưu trữ phổ biến nhất. Cần lưu ý rằng các gói EPEL không xung đột với các gói CentOS / RHEL gốc và không thay thế chúng.Rất dễ cài đặt EPEL trong CentOS 7 (không giống như CentOS 6) bằng cách sử dụng gói RPM (đây là phương pháp dễ nhất để thêm một kho mới):
yum install epel-release
Sau khi được cài đặt, kho lưu trữ xuất hiện trong danh sách kho lưu trữ mà không cần thực hiện bất kỳ hành động nào (bạn không cần xóa bộ nhớ cache yum).
Để cài đặt kho lưu trữ Remi trên CentOS, hãy chạy lệnh sau:
rpm -ivh https://rpms.famillecollet.com/enterprise/remi-release-7.rpm
Nếu không có gói RPM nào cho kho lưu trữ bạn cần, bạn có thể thêm gói bằng cách tạo tệp cấu hình .repo trong /etc/yum.repos.d theo cách thủ công (xem phần bài viết tiếp theo).
Để hiểu các gói được cài đặt từ kho nào, bạn có thể hiển thị danh sách đầy đủ các gói:
yum list installed
Như bạn có thể thấy, mọi gói đều có thông tin về kho lưu trữ mà nó được cài đặt từ đó (có các kho cơ sở, cập nhật, epel và anaconda trên ảnh chụp màn hình bên dưới).
Bạn có thể hiển thị danh sách các gói có sẵn để cài đặt trong một repo cụ thể:
yum repo-pkgs epel list
Tệp cấu hình kho lưu trữ (* .repo)
Tất cả các tệp cấu hình kho lưu trữ được đặt trong /etc/yum.repos.d/ và có * .repo gia hạn. Tệp cấu hình điển hình chứa các thông số sau:
- tên - tên kho lưu trữ
- baseurl - liên kết đến một kho lưu trữ (có thể là ftp:// address, https:// address, https:// address hoặc file:// address cho một local repo)
- đã bật - liệu repo này có phải được sử dụng hay không:1 - repo được bật, 0 - repo bị tắt;
- không đồng bộ - có sử dụng tải xuống gói song song không (tự động / bật / tắt)
- gpgcheck - có thực hiện kiểm tra GPG hay không (1 - kiểm tra đang bật)
- gpgkey - liên kết đến khóa GPG
- loại trừ - danh sách các gói bị loại trừ
- compepkgs - danh sách các gói đi kèm
- danh sách phản chiếu - danh sách các nhân bản kho lưu trữ
Tệp repo nhỏ nhất có thể trông giống như sau:
[rep_name] name=rep_name baseurl=rep_url
Ví dụ:sau khi bạn cài đặt kho lưu trữ REMI, một số tệp cấu hình Remi (Remi - *. Repo) sẽ xuất hiện trong thư mục kho lưu trữ.
Như bạn có thể thấy, Remi có một tệp cấu hình riêng cho mỗi phiên bản PHP. Bạn phải kích hoạt phiên bản PHP bạn cần thông qua tệp cấu hình. Ví dụ:tôi sẽ cài đặt PHP 7.3 trên máy chủ của mình, vì vậy tôi đã bật repo tương ứng (tôi đã chỉ định enabled=1
trong remi-php73.repo
):
Bạn có thể kết nối kho lưu trữ theo cách thủ công. Để thực hiện, hãy tạo tệp cấu hình kho lưu trữ trong /etc/yum.repos.d/. Hãy thêm kho MariaDB.
nano /etc/yum.repos.d/mariadb.repo
Thêm dữ liệu do nhà phát triển gói MariaDB cung cấp vào đó:
[mariadb] name = MariaDB baseurl = https://yum.mariadb.org/10.4/centos73-amd64/ gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
Làm cách nào để vô hiệu hóa kho lưu trữ trong CentOS?
Để vô hiệu hóa một trong các kho đã cài đặt, bạn chỉ cần chỉ định đã bật =0 là đủ trong tệp cấu hình của nó.
Sau đó, làm sạch bộ nhớ cache của yum:
yum clean all
Và tạo lại nó:
yum makecache
Sau đó, repo Rem-php73 sẽ không được sử dụng khi bạn cài đặt hoặc cập nhật các gói.
Nếu bạn không muốn sử dụng kho lưu trữ chỉ cho lệnh cài đặt / cập nhật gói hiện tại, bạn có thể tắt nó trong lệnh yum, ví dụ:
yum update —disablerepo=epel
Trong ví dụ này, chúng tôi đã tắt EPEL và cập nhật các gói đã cài đặt.
Bạn có thể tạm thời vô hiệu hóa tất cả các kho mà bạn không cần. Ví dụ:để cập nhật các gói chỉ từ kho lưu trữ MariaDB, hãy chạy lệnh:
yum update --disablerepo "*" --enablerepo=mariadb
Để tắt hoặc xóa repos, yum-config-manager thuộc về công cụ yum-utils được sử dụng.
Cài đặt yum-utils:
yum -y install yum-utils
Vô hiệu hóa hệ thống lưu trữ, ví dụ:Nhắc nhở:
yum-config-manager --disable remi
Để xóa hoàn toàn kho lưu trữ, bạn phải xóa các tệp cấu hình của nó và cập nhật bộ đệm yum.
Làm cách nào để Kiểm tra bản cập nhật gói có sẵn?
Bạn có thể kiểm tra một kho lưu trữ cụ thể để biết cập nhật gói có sẵn.
yum check-update --disablerepo "*" --enablerepo=mariadb
Do đó, bạn có thể quản lý các kho lưu trữ được kết nối trên máy chủ của mình. Lưu ý rằng các kho lưu trữ khác nhau có thể chứa các gói giống nhau và xung đột phiên bản có thể xảy ra trong quá trình cập nhật. Vì vậy, chỉ để lại các kho lưu trữ mà bạn làm việc với được kích hoạt.
Kho lưu trữ bên thứ ba phổ biến cho CentOS và RHEL
MariaDB repo, như bạn có thể đoán theo tên của nó, chứa các gói MariaDB. Kho lưu trữ được tạo bởi các nhà phát triển MariaDB, nó được hỗ trợ và cập nhật liên tục.
Để cài đặt kho này trong hệ thống, hãy tạo một tệp .repo với nội dung sau:
[mariadb] name = MariaDB baseurl = https://yum.mariadb.org/10.4/centos73-amd64/ gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
Giống như kho lưu trữ trước đó, Nginx chứa các gói liên quan đến máy chủ HTTPD nginx.
Để cài đặt kho nginx, hãy tạo tệp .repo và thêm văn bản sau vào đây:
[nginx-stable] name=nginx stable repo baseurl=https://nginx.org/packages/CentOS/$releasever/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://nginx.org/keys/nginx_signing.key
Danh sách kho lưu trữ này đủ để định cấu hình cái gọi là ngăn xếp LAMP với nginx làm máy chủ front-end.
Danh sách kho lưu trữ này có thể đủ cho hầu hết mọi người dùng, tuy nhiên, tôi sẽ đưa ra thêm một số ví dụ.
Webtatic được hỗ trợ bởi một số giới hạn các chuyên gia, chủ yếu là Andy Thompson. Nó chứa các gói liên quan đến PHP, nhưng nó ít phổ biến hơn Remi, vì phiên bản PHP mới nhất trong kho lưu trữ này là 7.2 vào thời điểm bài viết này được viết.
yum repo-pkgs webtatic list | grep php7
mod_php71w.x86_64 7.1.31-1.w7 webtatic mod_php72w.x86_64 7.2.21-1.w7 webtatic ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ php72w-tidy.x86_64 7.2.21-1.w7 webtatic php72w-xml.x86_64 7.2.21-1.w7 webtatic php72w-xmlrpc.x86_64 7.2.21-1.w7 webtatic
Để kích hoạt kho lưu trữ, hãy cài đặt gói RPM sau:
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
MySQL là những gì tôi muốn nhắc nhở. Tôi đã không đặt nó cùng với những cái phổ biến, vì tôi nghĩ MySQL như một máy chủ cơ sở dữ liệu đã mất vị trí của nó. MariaDB thường được cài đặt trên các máy chủ. Tuy nhiên, nếu ai đó muốn cài đặt MySQL, bạn có thể bật repo này. Ví dụ:bạn muốn cài đặt mysql 5.7:
Tải xuống gói:
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
Và cài đặt nó:
rpm -Uvh mysql57-community-release-el7-9.noarch.rpm
Sau khi cài đặt, tôi có thể cài đặt MySQL:
Trong bài viết này, chúng tôi đã chỉ ra một số khía cạnh của quản lý kho lưu trữ trong CentOS và nghiên cứu một số kho lưu trữ hữu ích.