ที่เก็บ RHEL/CentOS มาตรฐาน (อย่างเป็นทางการ) มีแพ็คเกจพื้นฐานจำนวนเล็กน้อยซึ่งไม่มีโปรแกรมเวอร์ชันล่าสุดเสมอไป อย่างไรก็ตาม คุณสามารถใช้ที่เก็บสาธารณะหรือส่วนตัวของบุคคลที่สามเพื่อติดตั้งโปรแกรมใหม่ใน Red Hat Enterprise Linux, CentOS, Oracle Linux และ Scientific Linux Remi และ EPEL เป็นที่เก็บของบุคคลที่สามที่ได้รับความนิยมมากที่สุด ในบทความนี้ เราจะมาดูวิธีการติดตั้ง จัดการ และใช้ที่เก็บเพิ่มเติมด้วยตัวจัดการแพ็คเกจ yum (dnf) ใน CentOS
ที่เก็บเป็นที่เก็บแพ็คเกจซอฟต์แวร์ RPM สำหรับ Linux ที่สามารถอัปเดตได้ ตัวจัดการแพ็คเกจที่แตกต่างกันอาจใช้ที่เก็บข้อมูลเครือข่ายเพื่อติดตั้งและอัปเดตโปรแกรม
จะเปิดใช้งาน EPEL และ Remi Repository ใน CentOS ได้อย่างไร
เมื่อคุณติดตั้งระบบปฏิบัติการ (ในตัวอย่างของเราคือ CentOS 7) ที่เก็บพื้นฐานจะถูกติดตั้งตามค่าเริ่มต้น คุณสามารถดูรายการโดยใช้คำสั่ง:
yum repolist
ดังที่คุณเห็นในภาพหน้าจอ มีที่เก็บ 3 แห่งที่ติดตั้งในระบบ — ฐาน , ส่วนเสริม , อัปเดต . สิ่งเหล่านี้เพียงพอที่จะเริ่มติดตั้งซอฟต์แวร์พื้นฐานและที่เก็บเพิ่มเติม
มาดูวิธีการติดตั้งที่เก็บเพิ่มเติมใน CentOS
EPEL อาจเป็นแหล่งเก็บข้อมูลยอดนิยมในปัจจุบัน
EPEL (แพ็คเกจเสริมสำหรับ Enterprise Linux) เป็นโครงการพื้นที่เก็บข้อมูลแบบเปิดและฟรีที่จัดทำโดยทีม Fedora ประกอบด้วยแพ็คเกจซอฟต์แวร์เพิ่มเติมคุณภาพสูงสำหรับ Linux distros พื้นที่เก็บข้อมูลนี้โฮสต์แพ็คเกจจำนวนมากตั้งแต่เซิร์ฟเวอร์ FTP ไปจนถึง PHP และเครื่องมือตรวจสอบระบบ นี่คือพื้นที่เก็บข้อมูลยอดนิยม เป็นที่น่าสังเกตว่าแพ็คเกจ EPEL ไม่ขัดแย้งกับแพ็คเกจ CentOS/RHEL ดั้งเดิมและอย่าแทนที่การติดตั้ง EPEL ใน CentOS 7 นั้นง่ายมาก (ต่างจาก CentOS 6) โดยใช้แพ็คเกจ RPM (เป็นวิธีที่ง่ายที่สุดในการเพิ่ม repo ใหม่):
yum install epel-release
หลังจากติดตั้งแล้ว ที่เก็บจะปรากฏในรายการ repo โดยไม่ต้องดำเนินการใดๆ (คุณไม่จำเป็นต้องล้างแคช yum)
ในการติดตั้งที่เก็บ Remi บน CentOS ให้รันคำสั่งนี้:
rpm -ivh https://rpms.famillecollet.com/enterprise/remi-release-7.rpm
หากไม่มีแพ็คเกจ RPM สำหรับที่เก็บที่คุณต้องการ คุณสามารถเพิ่มได้โดยสร้างไฟล์กำหนดค่า .repo ใน /etc/yum.repos.d ด้วยตนเอง (ดูหัวข้อบทความถัดไป)
เพื่อให้เข้าใจถึงที่เก็บแพ็คเกจที่ติดตั้ง คุณสามารถแสดงรายการแพ็คเกจทั้งหมด:
yum list installed
อย่างที่คุณเห็น ทุกแพ็คเกจมีข้อมูลเกี่ยวกับที่เก็บที่มีการติดตั้ง (มีฐาน อัปเดต epel และ anaconda repos ในภาพหน้าจอด้านล่าง)
คุณสามารถแสดงรายการแพ็คเกจที่พร้อมสำหรับการติดตั้งใน repo เฉพาะ:
yum repo-pkgs epel list
ไฟล์การกำหนดค่าที่เก็บ (*.repo)
ไฟล์การกำหนดค่าที่เก็บทั้งหมดอยู่ใน /etc/yum.repos.d/ และมี *.repo การขยาย. ไฟล์กำหนดค่าทั่วไปประกอบด้วยพารามิเตอร์ต่อไปนี้:
- ชื่อ — ชื่อที่เก็บ
- baseurl — ลิงก์ไปยังที่เก็บ (อาจเป็น ftp://address, https://address, https://address หรือ file://address for a local repo)
- เปิดใช้งาน – ต้องใช้ repo นี้หรือไม่:1 — เปิดใช้งาน repo, 0 — ปิดใช้งาน repo หรือไม่
- ไม่ตรงกัน – ไม่ว่าจะใช้การดาวน์โหลดแพ็คเกจแบบขนาน (อัตโนมัติ/เปิด/ปิด)
- gpgcheck – จะทำการตรวจสอบ GPG หรือไม่ (1 — การตรวจสอบเปิดอยู่)
- gpgkey — ลิงก์ไปยังคีย์ GPG
- ยกเว้น — รายการแพ็คเกจที่ยกเว้น
- รวมpkgs — รายการแพ็คเกจที่ร่วมรายการ
- รายการมิเรอร์ – รายการมิเรอร์ที่เก็บ
ไฟล์ repo ที่เล็กที่สุดอาจมีลักษณะดังนี้:
[rep_name] name=rep_name baseurl=rep_url
ตัวอย่างเช่น หลังจากที่คุณติดตั้งที่เก็บ REMI แล้ว ไฟล์คอนฟิกูเรชัน Remi (remi-*.repo) บางไฟล์จะปรากฏในไดเร็กทอรีที่เก็บ
อย่างที่คุณเห็น Remi มีไฟล์กำหนดค่าแยกต่างหากสำหรับ PHP แต่ละเวอร์ชัน คุณต้องเปิดใช้งานเวอร์ชัน PHP ที่คุณต้องการผ่านไฟล์ปรับแต่ง ตัวอย่างเช่น ฉันจะติดตั้ง PHP 7.3 บนเซิร์ฟเวอร์ของฉัน ดังนั้นฉันจึงเปิดใช้งาน repo ที่เกี่ยวข้อง (ฉันได้ระบุ enabled=1
ใน remi-php73.repo
):
คุณสามารถเชื่อมต่อที่เก็บด้วยตนเอง โดยสร้างไฟล์คอนฟิกูเรชันที่เก็บใน /etc/yum.repos.d/ มาเพิ่ม MariaDB repo กันเถอะ
nano /etc/yum.repos.d/mariadb.repo
เพิ่มข้อมูลที่ได้รับจากผู้พัฒนาแพ็คเกจ MariaDB ลงไป:
[mariadb] name = MariaDB baseurl = https://yum.mariadb.org/10.4/centos73-amd64/ gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
จะปิดการใช้งานที่เก็บใน CentOS ได้อย่างไร
ในการปิดการใช้งานที่เก็บที่ติดตั้งไว้ การระบุ enabled=0 ก็เพียงพอแล้ว ในไฟล์กำหนดค่า
จากนั้นล้างแคช yum:
yum clean all
และสร้างมันขึ้นมาใหม่:
yum makecache
หลังจากนั้น remi-php73 repo จะไม่ถูกใช้เมื่อคุณติดตั้งหรืออัปเดตแพ็คเกจ
หากคุณไม่ต้องการใช้ที่เก็บเฉพาะสำหรับคำสั่งอัพเดต/การติดตั้งแพ็คเกจปัจจุบัน คุณสามารถปิดใช้งานได้ในคำสั่ง yum ตัวอย่างเช่น:
yum update —disablerepo=epel
ในตัวอย่างนี้ เราได้ปิดการใช้งาน EPEL และอัปเดตแพ็คเกจที่ติดตั้งแล้ว
คุณสามารถปิดใช้งานที่เก็บชั่วคราวทั้งหมดที่คุณไม่ต้องการได้ชั่วคราว ตัวอย่างเช่น หากต้องการอัพเดตแพ็คเกจจากที่เก็บ MariaDB เท่านั้น ให้รันคำสั่ง:
yum update --disablerepo "*" --enablerepo=mariadb
หากต้องการปิดใช้งานหรือลบ repos yum-config-manager ที่เป็นของ yum-utils tools ถูกนำมาใช้
ติดตั้ง yum-utils:
yum -y install yum-utils
ปิดใช้งานที่เก็บ เช่น remi:
yum-config-manager --disable remi
หากต้องการลบที่เก็บอย่างสมบูรณ์ คุณต้องลบไฟล์การกำหนดค่าและอัปเดต yum cache
จะตรวจสอบ Repo สำหรับการอัพเดทแพ็คเกจที่มีได้อย่างไร
คุณสามารถตรวจสอบที่เก็บเฉพาะสำหรับการอัพเดทแพ็คเกจที่มีได้
yum check-update --disablerepo "*" --enablerepo=mariadb
ดังนั้น คุณสามารถจัดการ repos ที่เชื่อมต่อบนเซิร์ฟเวอร์ของคุณได้ โปรดทราบว่าที่เก็บต่างกันอาจมีแพ็คเกจเดียวกัน และเวอร์ชันที่ขัดแย้งอาจเกิดขึ้นระหว่างการอัพเดต ดังนั้นให้เปิดเฉพาะที่เก็บที่คุณใช้งานเท่านั้น
ที่เก็บข้อมูลบุคคลที่สามยอดนิยมสำหรับ CentOS และ RHEL
MariaDB repo อย่างที่คุณเดาได้จากชื่อของมัน มีแพ็คเกจ MariaDB ที่เก็บถูกสร้างขึ้นโดยนักพัฒนา MariaDB ซึ่งได้รับการสนับสนุนและอัปเดตอย่างต่อเนื่อง
ในการติดตั้งที่เก็บนี้ในระบบ ให้สร้างไฟล์ .repo ที่มีเนื้อหาดังต่อไปนี้:
[mariadb] name = MariaDB baseurl = https://yum.mariadb.org/10.4/centos73-amd64/ gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
เช่นเดียวกับที่เก็บก่อนหน้านี้ Nginx มีแพ็คเกจที่เกี่ยวข้องกับเซิร์ฟเวอร์ nginx HTTPD
ในการติดตั้ง nginx repo ให้สร้างไฟล์ .repo และเพิ่มข้อความต่อไปนี้ที่นี่:
[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
รายการที่เก็บนี้เพียงพอที่จะกำหนดค่า LAMP stack ที่เรียกว่า nginx เป็นเซิร์ฟเวอร์ส่วนหน้า
รายการที่เก็บนี้อาจเพียงพอสำหรับผู้ใช้เกือบทุกคน อย่างไรก็ตาม ฉันจะยกตัวอย่างเพิ่มเติม
เว็บทาติก ได้รับการสนับสนุนจากผู้เชี่ยวชาญจำนวนจำกัด ส่วนใหญ่เป็น Andy Thompson ประกอบด้วยแพ็คเกจที่เกี่ยวข้องกับ PHP แต่ได้รับความนิยมน้อยกว่า Remi เนื่องจากเวอร์ชัน PHP ล่าสุดในที่เก็บนี้เป็น 7.2 ในขณะที่เขียนบทความนี้
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
หากต้องการเปิดใช้งานที่เก็บ ให้ติดตั้งแพ็คเกจ RPM ต่อไปนี้:
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
MySQL คือสิ่งที่ฉันต้องการเตือน ฉันไม่ได้วางมันร่วมกับสิ่งที่ได้รับความนิยมเนื่องจากฉันคิดว่า MySQL เป็นเซิร์ฟเวอร์ฐานข้อมูลได้สูญเสียตำแหน่ง โดยปกติ MariaDB จะถูกติดตั้งบนเซิร์ฟเวอร์แทน อย่างไรก็ตาม หากใครต้องการติดตั้ง MySQL คุณสามารถเปิดใช้งาน repo นี้ได้ ตัวอย่างเช่น คุณต้องการติดตั้ง mysql 5.7:
ดาวน์โหลดแพ็คเกจ:
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
และติดตั้ง:
rpm -Uvh mysql57-community-release-el7-9.noarch.rpm
หลังการติดตั้ง ฉันสามารถติดตั้ง MySQL:
ในบทความนี้ เราได้แสดงบางแง่มุมของการจัดการพื้นที่เก็บข้อมูลใน CentOS และศึกษาที่เก็บที่มีประโยชน์บางส่วน