ค้นหาเว็บไซต์

การจัดการแพ็คเกจ 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 และสำหรับงานประจำวันของคุณ อย่าลังเลที่จะแสดงความคิดเห็นหรือคำถามของคุณด้านล่าง เรายินดีอย่างยิ่งที่จะติดต่อกลับโดยเร็วที่สุด