การจัดการแพ็คเกจ Linux ด้วย Yum, RPM, Apt, Dpkg, Aptitude และ Zypper - ตอนที่ 9
เมื่อเดือนสิงหาคมปีที่แล้ว Linux Foundation ได้ประกาศการรับรอง LFCS (Linux Foundation Certified Sysadmin) ซึ่งเป็นโอกาสอันดีสำหรับผู้ดูแลระบบทุกที่ที่จะแสดงให้เห็นผ่านการสอบตามประสิทธิภาพว่าพวกเขา สามารถประสบความสำเร็จในการสนับสนุนการดำเนินงานโดยรวมสำหรับระบบ Linux ผู้ดูแลระบบที่ได้รับการรับรอง Linux Foundation มีความเชี่ยวชาญในการสนับสนุนระบบที่มีประสิทธิภาพ การแก้ไขปัญหาและการตรวจสอบระดับแรก รวมถึงการยกระดับปัญหาในที่สุดเมื่อจำเป็น ไปยังทีมสนับสนุนด้านวิศวกรรม
ดูวิดีโอต่อไปนี้ที่อธิบายเกี่ยวกับ Linux Foundation Certification Program
บทความนี้เป็นตอนที่ 9 ของชุดบทช่วยสอนขนาดยาว 10 ชุด วันนี้ในบทความนี้ เราจะแนะนำคุณเกี่ยวกับการจัดการแพ็คเกจ Linux ที่จำเป็นสำหรับการสอบรับรอง LFCS
การจัดการแพ็คเกจ
พูดง่ายๆ ก็คือ การจัดการแพ็คเกจเป็นวิธีการติดตั้งและบำรุงรักษาซอฟต์แวร์บนระบบ (ซึ่งรวมถึงการอัปเดตและอาจลบออกด้วย)
ในยุคแรกๆ ของ Linux โปรแกรมถูกเผยแพร่ในรูปแบบซอร์สโค้ดเท่านั้น พร้อมด้วย man page ที่จำเป็น ไฟล์คอนฟิกูเรชันที่จำเป็น และอื่นๆ อีกมากมาย ปัจจุบันนี้ ผู้จัดจำหน่าย Linux ส่วนใหญ่ใช้โปรแกรมที่สร้างไว้ล่วงหน้าหรือชุดของโปรแกรมที่เรียกว่าแพ็คเกจเป็นค่าเริ่มต้น ซึ่งจะแสดงต่อผู้ใช้ที่พร้อมสำหรับการติดตั้งในการแจกจ่ายนั้น อย่างไรก็ตาม สิ่งมหัศจรรย์อย่างหนึ่งของ Linux ก็คือความเป็นไปได้ที่จะได้รับซอร์สโค้ดของโปรแกรมที่จะศึกษา ปรับปรุง และคอมไพล์
ระบบการจัดการแพ็คเกจทำงานอย่างไร
หากแพ็คเกจใดแพ็คเกจหนึ่งต้องการทรัพยากรบางอย่าง เช่น ไลบรารี่แบบแบ่งใช้ หรือแพ็คเกจอื่น จะมีการกล่าวกันว่ามีการขึ้นต่อกัน ระบบการจัดการแพ็คเกจสมัยใหม่ทั้งหมดมีวิธีการแก้ปัญหาการพึ่งพาเพื่อให้แน่ใจว่าเมื่อมีการติดตั้งแพ็คเกจ การขึ้นต่อกันทั้งหมดก็ได้รับการติดตั้งเช่นกัน
ระบบบรรจุภัณฑ์
ซอฟต์แวร์เกือบทั้งหมดที่ติดตั้งบนระบบ Linux สมัยใหม่จะพบได้บนอินเทอร์เน็ต ผู้จัดจำหน่ายสามารถจัดหาให้ผ่านทางที่เก็บข้อมูลส่วนกลาง (ซึ่งอาจมีแพ็คเกจหลายพันชุด ซึ่งแต่ละแพ็คเกจได้รับการสร้าง ทดสอบ และบำรุงรักษาเพื่อการแจกจ่ายโดยเฉพาะ) หรืออยู่ในซอร์สโค้ดที่สามารถดาวน์โหลดและติดตั้งได้ด้วยตนเอง .
เนื่องจากตระกูลการจัดจำหน่ายที่แตกต่างกันใช้ระบบบรรจุภัณฑ์ที่แตกต่างกัน (Debian: *.deb/CentOS: *.rpm/openSUSE: *.rpm สร้างขึ้นเป็นพิเศษสำหรับ openSUSE) แพ็คเกจที่มีไว้สำหรับการแจกจ่ายหนึ่งจะไม่สามารถใช้งานร่วมกับการแจกจ่ายอื่นได้ อย่างไรก็ตาม การแจกจ่ายส่วนใหญ่มีแนวโน้มที่จะจัดอยู่ในกลุ่มการจัดจำหน่ายหนึ่งในสามกลุ่มที่ครอบคลุมโดยการรับรอง LFCS
เครื่องมือแพ็คเกจระดับสูงและต่ำ
เพื่อที่จะดำเนินการจัดการแพ็คเกจได้อย่างมีประสิทธิภาพ คุณต้องทราบว่าคุณจะมียูทิลิตี้สองประเภทที่พร้อมใช้งาน: เครื่องมือ ระดับต่ำ (ซึ่งจัดการในแบ็กเอนด์สำหรับการติดตั้งจริง อัปเกรด และ การลบไฟล์แพ็กเกจออก) และเครื่องมือระดับสูง (ซึ่งมีหน้าที่ดูแลให้แน่ใจว่างานการแก้ไขการพึ่งพาและการค้นหาข้อมูลเมตา - ”ข้อมูลเกี่ยวกับข้อมูล ”- ได้รับการดำเนินการ)
DISTRIBUTION | LOW-LEVEL TOOL | HIGH-LEVEL TOOL |
Debian and derivatives | dpkg | apt-get / aptitude |
CentOS | rpm | yum |
openSUSE | rpm | zypper |
เรามาดูรายละเอียดของเครื่องมือระดับต่ำและระดับสูงกัน
dpkg เป็นตัวจัดการแพ็กเกจระดับต่ำสำหรับระบบที่ใช้ Debian สามารถติดตั้ง ลบ ให้ข้อมูลเกี่ยวกับและสร้างแพ็คเกจ *.deb ได้ แต่ไม่สามารถดาวน์โหลดและติดตั้งการขึ้นต่อกันที่เกี่ยวข้องได้โดยอัตโนมัติ
อ่านเพิ่มเติม: ตัวอย่างคำสั่ง 15 dpkg
apt-get เป็นตัวจัดการแพ็คเกจระดับสูงสำหรับ Debian และอนุพันธ์ และมอบวิธีง่ายๆ ในการดึงข้อมูลและติดตั้งแพ็คเกจ รวมถึงการแก้ไขการขึ้นต่อกัน จากหลายแหล่งโดยใช้บรรทัดคำสั่ง ต่างจาก dpkg ตรงที่ apt-get จะไม่ทำงานโดยตรงกับไฟล์ *.deb แต่จะใช้ชื่อแพ็กเกจที่ถูกต้อง
อ่านเพิ่มเติม: 25 ตัวอย่างคำสั่ง apt-get
ความถนัดเป็นผู้จัดการแพ็คเกจระดับสูงอีกตัวหนึ่งสำหรับระบบที่ใช้ Debian และสามารถใช้เพื่อดำเนินการจัดการ (การติดตั้ง อัปเกรด และลบแพ็คเกจ รวมถึงจัดการการแก้ไขการขึ้นต่อกันโดยอัตโนมัติ) ด้วยวิธีที่รวดเร็วและง่ายดาย . มีฟังก์ชันการทำงานเหมือนกับ apt-get และฟังก์ชันเพิ่มเติม เช่น เสนอการเข้าถึงแพ็คเกจหลายเวอร์ชัน
rpm คือระบบการจัดการแพ็กเกจที่ใช้โดยการกระจายที่สอดคล้องกับ Linux Standard Base (LSB) สำหรับการจัดการแพ็กเกจระดับต่ำ เช่นเดียวกับ dpkg มันสามารถสืบค้น ติดตั้ง ตรวจสอบ อัปเกรด และลบแพ็คเกจได้ และถูกใช้บ่อยกว่าโดยการกระจายแบบ Fedora เช่น RHEL และ CentOS
อ่านเพิ่มเติม: ตัวอย่างคำสั่ง 20 rpm
yum เพิ่มฟังก์ชันการทำงานของการอัปเดตอัตโนมัติและการจัดการแพ็คเกจพร้อมการจัดการการพึ่งพาไปยังระบบที่ใช้ RPM เนื่องจากเป็นเครื่องมือระดับสูง เช่น apt-get หรือ aptitude yum จึงทำงานร่วมกับ repositories ได้
อ่านเพิ่มเติม: ตัวอย่างคำสั่ง 20 yum
การใช้งานทั่วไปของเครื่องมือระดับต่ำ
งานที่พบบ่อยที่สุดที่คุณจะทำกับเครื่องมือระดับต่ำมีดังนี้:
1. การติดตั้งแพ็คเกจจากไฟล์ที่คอมไพล์แล้ว (*.deb หรือ *.rpm)
ข้อเสียของวิธีการติดตั้งนี้คือ ไม่มีการระบุวิธีแก้ปัญหาการขึ้นต่อกัน คุณมักจะเลือกที่จะติดตั้งแพ็คเกจจากไฟล์ที่คอมไพล์แล้ว เมื่อแพ็คเกจดังกล่าวไม่มีอยู่ในที่เก็บของการแจกจ่าย จึงไม่สามารถดาวน์โหลดและติดตั้งผ่านเครื่องมือระดับสูงได้ เนื่องจากเครื่องมือระดับต่ำไม่ได้ดำเนินการแก้ปัญหาการขึ้นต่อกัน เครื่องมือเหล่านี้จะออกพร้อมกับข้อผิดพลาดหากเราพยายามติดตั้งแพ็คเกจที่มีการขึ้นต่อกันที่ไม่ได้รับการตอบสนอง
dpkg -i file.deb [Debian and derivative]
rpm -i file.rpm [CentOS / openSUSE]
หมายเหตุ: อย่าพยายามติดตั้งไฟล์ *.rpm บน CentOS ที่สร้างขึ้นสำหรับ openSUSE หรือในทางกลับกัน!
2. การอัพเกรดแพ็คเกจจากไฟล์ที่คอมไพล์แล้ว
ขอย้ำอีกครั้งว่า คุณจะอัปเกรดแพ็คเกจที่ติดตั้งด้วยตนเองเมื่อไม่มีอยู่ในที่เก็บข้อมูลกลางเท่านั้น
dpkg -i file.deb [Debian and derivative]
rpm -U file.rpm [CentOS / openSUSE]
3. การแสดงรายการแพ็คเกจที่ติดตั้ง
เมื่อคุณได้สัมผัสกับระบบที่ใช้งานได้อยู่แล้ว คุณอาจต้องการทราบว่ามีการติดตั้งแพ็คเกจใดบ้าง
dpkg -l [Debian and derivative]
rpm -qa [CentOS / openSUSE]
หากคุณต้องการทราบว่ามีการติดตั้งแพ็คเกจใดโดยเฉพาะหรือไม่ คุณสามารถไพพ์เอาต์พุตของคำสั่งข้างต้นไปที่ grep ตามที่อธิบายไว้ในการจัดการไฟล์ใน Linux – ตอนที่ 1 ของซีรี่ส์นี้ สมมติว่าเราจำเป็นต้องตรวจสอบว่าแพ็คเกจ mysql-common ได้รับการติดตั้งบนระบบ Ubuntu หรือไม่
dpkg -l | grep mysql-common
อีกวิธีในการพิจารณาว่ามีการติดตั้งแพ็คเกจหรือไม่
dpkg --status package_name [Debian and derivative]
rpm -q package_name [CentOS / openSUSE]
ตัวอย่างเช่น มาดูกันว่ามีการติดตั้งแพ็คเกจ sysdig ในระบบของเราหรือไม่
rpm -qa | grep sysdig
4. ค้นหาว่าแพ็คเกจใดติดตั้งไฟล์
dpkg --search file_name
rpm -qf file_name
ตัวอย่างเช่น แพ็คเกจใดที่ติดตั้ง pw_dict.hwm
rpm -qf /usr/share/cracklib/pw_dict.hwm
การใช้งานทั่วไปของเครื่องมือระดับสูง
งานที่พบบ่อยที่สุดที่คุณจะทำกับเครื่องมือระดับสูงมีดังนี้
1. ค้นหาแพ็คเกจ
การอัปเดตความถนัด จะอัปเดตรายการแพ็คเกจที่มีอยู่ และ การค้นหาความถนัด จะทำการค้นหาจริงสำหรับ package_name
aptitude update && aptitude search package_name
ในตัวเลือกการค้นหาทั้งหมด yum จะค้นหา package_name ไม่เพียงแต่ในชื่อแพ็คเกจเท่านั้น แต่ยังรวมถึงคำอธิบายแพ็คเกจด้วย
yum search package_name
yum search all package_name
yum whatprovides “*/package_name”
สมมติว่าเราต้องการไฟล์ชื่อ sysdig หากต้องการทราบว่าเราจะต้องติดตั้งแพ็คเกจนั้น มาเริ่มกันเลย
yum whatprovides “*/sysdig”
whatprovides บอกให้ yum ค้นหาแพ็คเกจ โดยจะจัดเตรียมไฟล์ที่ตรงกับนิพจน์ทั่วไปข้างต้น
zypper refresh && zypper search package_name [On openSUSE]
2. การติดตั้งแพ็คเกจจากพื้นที่เก็บข้อมูล
ขณะติดตั้งแพ็คเกจ คุณอาจได้รับแจ้งให้ยืนยันการติดตั้งหลังจากที่ตัวจัดการแพ็คเกจได้แก้ไขการขึ้นต่อกันทั้งหมดแล้ว โปรดทราบว่าการเรียกใช้การอัปเดตหรือรีเฟรช (ตามตัวจัดการแพ็คเกจที่ใช้) นั้นไม่จำเป็นอย่างเคร่งครัด แต่การทำให้แพ็คเกจที่ติดตั้งให้ทันสมัยอยู่เสมอเป็นแนวทางปฏิบัติที่ดีของผู้ดูแลระบบด้วยเหตุผลด้านความปลอดภัยและการพึ่งพา
aptitude update && aptitude install package_name [Debian and derivatives]
yum update && yum install package_name [CentOS]
zypper refresh && zypper install package_name [openSUSE]
3. การถอดแพ็คเกจ
ตัวเลือก remove จะถอนการติดตั้งแพ็กเกจ แต่ยังคงไฟล์การกำหนดค่าไว้เหมือนเดิม ในขณะที่การล้างข้อมูลจะลบร่องรอยของโปรแกรมทั้งหมดออกจากระบบของคุณ
# ความถนัด ลบ/ล้าง package_name
# ยำลบ package_name
---Notice the minus sign in front of the package that will be uninstalled, openSUSE ---
zypper remove -package_name
ผู้จัดการแพ็คเกจส่วนใหญ่ (ถ้าไม่ใช่ทั้งหมด) จะแจ้งให้คุณทราบตามค่าเริ่มต้น หากคุณแน่ใจเกี่ยวกับการดำเนินการถอนการติดตั้งก่อนดำเนินการจริง ดังนั้นอ่านข้อความบนหน้าจออย่างระมัดระวังเพื่อหลีกเลี่ยงปัญหาที่ไม่จำเป็น!
4. การแสดงข้อมูลเกี่ยวกับแพ็คเกจ
คำสั่งต่อไปนี้จะแสดงข้อมูลเกี่ยวกับแพ็คเกจ วันเกิด
aptitude show birthday
yum info birthday
zypper info birthday
สรุป
การจัดการแพ็คเกจเป็นสิ่งที่คุณไม่สามารถซุกซ่อนได้ในฐานะผู้ดูแลระบบ คุณควรเตรียมพร้อมใช้เครื่องมือที่อธิบายไว้ในบทความนี้ทันที หวังว่าคุณจะพบว่ามีประโยชน์ในการเตรียมตัวสำหรับการสอบ LFCS และสำหรับงานประจำวันของคุณ อย่าลังเลที่จะแสดงความคิดเห็นหรือคำถามของคุณด้านล่าง เรายินดีอย่างยิ่งที่จะติดต่อกลับโดยเร็วที่สุด