Linux จะค้นหาตัวจัดการแพ็คเกจได้อย่างไร ผู้จัดการแพ็คเกจใน Linux ผู้จัดการแพ็คเกจที่ใช้เดเบียน

สวัสดีเพื่อนรัก คนรู้จัก และบุคคลอื่นๆ

ดังที่คุณอาจทราบและจำได้ ฉันสัญญาว่าจะค่อยๆ ครอบคลุมวงจรของ Linux (ตามคำขอของคุณ) โดยแนะนำให้คุณรู้จักกับพื้นฐานที่แตกต่างกัน และค่อยๆ ไหลจากทฤษฎีไปสู่การปฏิบัติ

วันนี้เราจะมาต่อในหัวข้อทำความรู้จักทฤษฎีและพื้นฐานกันต่อ ดังนั้นเราจะพูดถึงเรื่องที่เก็บข้อมูลและทุกสิ่งที่เกี่ยวข้องกับสิ่งเหล่านั้น เช่น เรามาดูกันว่าซอฟต์แวร์ลีนุกซ์มีหน้าตาเป็นอย่างไรเมื่อมองจากภายใน วิธีการจัดเก็บทั้งหมด และอื่นๆ

แพ็คเกจจำนวนมหาศาลที่มีการพึ่งพาซึ่งกันและกันซึ่งจัดการโดยผู้จัดการแพ็คเกจคือสิ่งที่ประกอบขึ้นเป็นการกระจาย Linux ของคุณ แต่นี่ไม่ใช่แค่ขยะจำนวนมาก แต่เป็นระบบที่เรียกว่า ตาดำ! - ที่เก็บแพ็คเกจซอฟต์แวร์ วงกลมปิดแล้ว - เรากลับไปสู่แนวคิดแรก - พื้นที่เก็บข้อมูลคืออะไร :)

คำไม่กี่คำเกี่ยวกับความแตกต่าง

สุดท้ายนี้ ฉันอยากจะบอกว่าไม่ว่า Linux จะเสถียร เสถียร และทำลายไม่ได้แค่ไหน ผู้ใช้ก็ยังต้องใช้ความระมัดระวังในระดับหนึ่ง ตัวอย่างเช่น:

  1. ไม่จำเป็นต้องล่อลวงชะตากรรมและติดตั้งโปรแกรมบน Linux โดยไม่ต้องผ่านตัวจัดการแพ็คเกจโดยการคอมไพล์ง่ายๆ พวกเขาจะใช้งานได้ แต่ ผู้จัดการแพ็คเกจจะไม่รู้อะไรเกี่ยวกับพวกเขาซึ่งเป็นเหตุผลว่าทำไมเมื่ออัปเดตระบบหรือโปรแกรมคุณเสี่ยงที่จะเกิดปัญหากับหัวมากกว่าที่คุณคิด ติดตั้งโปรแกรมเป็นแพ็คเกจเท่านั้น
  2. ไม่จำเป็นต้องเชื่อมต่อที่เก็บข้อมูลที่คุณมีแนวคิดที่คลุมเครือมาก ตัวอย่างเช่น ไม่จำเป็นต้องเชื่อมต่อที่เก็บข้อมูลด้วยคำว่า การทดสอบ ดีบัก และคำที่คล้ายกัน เนื่องจากที่เก็บข้อมูลเหล่านี้มีไว้สำหรับผู้พัฒนาระบบการแจกจ่ายเป็นหลัก และไม่เสถียรเสมอไป
  3. อย่าเชื่อมต่อที่เก็บข้อมูลที่มีอยู่ทั้งหมดติดต่อกัน นี่อาจเป็นเรื่องตลกร้ายกับคุณได้ เชื่อมต่อเฉพาะที่จำเป็นที่สุด ไม่ต้องโลภ :)

เช่น เมื่อทำการติดตั้ง ระบบปฏิบัติการตามค่าเริ่มต้น Fedora จะมีที่เก็บข้อมูลสองแห่งเชื่อมต่อกันในคราวเดียว:

  • Fedora (แพ็คเกจที่ใส่ซีดีหรือดีวีดีรวมกันได้)
  • อัปเดต (แพ็คเกจที่อัปเดตใหม่กว่าที่เก็บ Fedora)

สำหรับการทำงานปกติ คุณจะต้องเชื่อมต่อพื้นที่เก็บข้อมูล rpmfusion เพิ่มเติม (คุณไม่สามารถทำได้หากไม่มีมัน) ซึ่งจะทำให้สามารถเข้าถึงโปรแกรมที่ไม่สามารถรวมในการแจกจ่ายได้เนื่องจากข้อจำกัดด้านลิขสิทธิ์ (แอปพลิเคชันที่จำเป็นสำหรับ เช่น mp3, dvd ฯลฯ) ฯลฯ – รวมถึงไดรเวอร์ที่เป็นกรรมสิทธิ์สำหรับ ATI และ NVIDIA เกม: พี่น้องของ Bub, Secret Maryo Chronicles, UFO: Alien Invasion, Wörms of Prey, xrick, GLtronและอื่น ๆ อีกมากมาย; อีมูเลเตอร์: Commodore 64 emulator รวมถึง Commodore 8 bit, Amiga emulator, Nestopia, ZSNES และอื่น ๆ อีกมากมาย) หากต้องการเชื่อมต่อที่เก็บนี้ เพียงป้อนคำสั่งต่อไปนี้ในบรรทัดคำสั่ง (เทอร์มินัล) ในฐานะ superuser ():
$ sudo รอบต่อนาที -ivh https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
$ sudo รอบต่อนาที -ivh https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

โปรดทราบว่าพื้นที่เก็บข้อมูล rpmfusion แบ่งออกเป็นสองส่วน: แบบฟรีและไม่ฟรี โปรแกรมแรกประกอบด้วยโปรแกรมฟรีอย่างแท้จริงในแง่ของ FSF ซึ่งเผยแพร่ภายใต้ GPL และใบอนุญาตที่เข้ากันได้ เนื้อหาในส่วนที่สองซึ่งตรงกันข้ามกับชื่อนั้นส่วนใหญ่เป็นโปรแกรมฟรี แต่อยู่ภายใต้ข้อจำกัดด้านสิทธิบัตรที่มีชื่อเสียงของบางรัฐ (เช่น ตัวแปลงสัญญาณเสียงและวิดีโอ)

เช่นเดียวกับผู้จัดการแพ็คเกจใน Fedora สำหรับคนปกติและ ทำงานสบายตัวจัดการแพ็คเกจ (yum) ใน Fedora ขอแนะนำให้เชื่อมต่อปลั๊กอินเพิ่มเติมที่เร็วที่สุดกระจก ปลั๊กอินนี้มีความสำคัญมาก: มันไม่เพียงกำหนดมิเรอร์ที่ใกล้ที่สุดเท่านั้น เช่นเดียวกับยูทิลิตี้ที่คล้ายกันจากระบบการจัดการแพ็คเกจอื่น ๆ แต่ยังติดตั้งมิเรอร์ที่เร็วที่สุดใน ช่วงเวลานี้– ตามเวลาตอบกลับ
$ sudo yum ติดตั้ง yum-plugin-fastestmirror
สรุปว่าประมาณนี้ครับ :)

คำหลัง

ฉันเข้าใจว่าหากไม่มีการฝึกฝนมันค่อนข้างยากที่จะรับรู้ทั้งหมดนี้ได้ทันที แต่ก็ไม่มีอะไรต้องทำ - นี่เป็นข้อมูลทางทฤษฎีขั้นพื้นฐานและพื้นฐานที่สุดซึ่งผู้ใช้ทุกคนควรจะคุ้นเคยอย่างน้อยก็เพื่อที่จะมีแนวคิด ​อะไรคืออะไรและทำไม และอย่าสุ่มสี่สุ่มห้ากดปุ่มและอ่านคำศัพท์ที่ไม่คุ้นเคย

ในบทความต่อไปนี้ เราจะมาดูกันว่าอะไรคือการติดตั้งแพ็คเกจใน Linux โครงสร้างระบบปฏิบัติการนี้เป็นอย่างไร ผู้ใช้มีความหมายอย่างไร (และใครเป็น superuser หรือที่เรียกว่ารูท) และเราจะพูดถึงโปรแกรมด้วย และอย่างอื่น อยู่กับเรา

เช่นเคย หากคุณมีคำถาม เพิ่มเติม ฯลฯ ฉันยินดีที่จะเห็นพวกเขาในความคิดเห็นต่อเนื้อหานี้

ป.ล. ขอขอบคุณสมาชิกของทีม Pantera สำหรับการมีอยู่ของบทความนี้

บางครั้งอาจมีคำถามเกิดขึ้น: ไฟล์นี้เป็นของใคร ห้องสมุดนี้มาจากไหน?? ตัวจัดการแพ็คเกจที่สะดวกช่วยแก้ปัญหาระบบปฏิบัติการหลายอย่าง พูดได้อย่างปลอดภัยว่าหากคุณเป็นเพื่อนกับ MP คุณจะเป็นเพื่อนกับการจัดจำหน่ายด้วย ยิ่งไปกว่านั้น สิ่งสำคัญคือต้องเชี่ยวชาญชุดคำสั่งพื้นฐานและรู้ว่าจะหาข้อมูลเพิ่มเติมได้จากที่ไหน


สิ่งต่อไปนี้คือชุดคำสั่งของสุภาพบุรุษที่จำเป็นสำหรับกิจวัตรประจำวันของการกระจาย Linux หลัก: ติดตั้ง อัปเดตและลบแพ็คเกจ ออกการอัปเดต ตรวจสอบการขึ้นต่อกัน พิจารณาว่าไฟล์เป็นของแพ็คเกจหรือไม่ ฯลฯ

เดเบียนและที่เกี่ยวข้อง

ความนิยมและภาพลักษณ์ที่เป็นมิตร ผู้ใช้ลินุกซ์ชุดแจกจ่ายเล่นเป็นเรื่องตลกที่โหดร้ายบน Ubuntu ผู้เริ่มต้นบางคนคิดว่าพวกเขาสามารถทำอะไรก็ได้ที่ต้องการโดยไม่ต้องมีคนช่วย บรรทัดคำสั่ง. นี่เป็นความเข้าใจผิดและควรกำจัดมันโดยเร็วที่สุด


ความจริงที่ว่า aptitude อยู่ในตัวอย่างไม่ได้หมายความว่ามันถูกต้องมากกว่า apt-get สำหรับฉันมันเป็นแค่เรื่องของนิสัย


$ aptitude ติดตั้งแพ็คเกจ # ติดตั้งแพ็คเกจ; $ aptitude แพ็คเกจอัพเกรดความปลอดภัย #แพ็คเกจอัพเกรด; $ aptitude update #ตรวจสอบและติดตั้งอัพเดต; $ aptitude ลบแพ็คเกจ #ลบแพ็คเกจ; $ aptitude purge package #ลบแพ็คเกจที่สมบูรณ์ ข้อมูลและการตั้งค่าทั้งหมด $ apt-get dist-upgrade #upgrade OS คุณสมบัตินักฆ่าและใช้งานได้! $ แพ็คเกจค้นหาความถนัด #ค้นหาแพ็คเกจ $ apt-cache ขึ้นอยู่กับแพ็คเกจ # การพึ่งพาแพ็คเกจ; $ apt-cache rdepends package #reverse การพึ่งพาแพ็คเกจ

คุณลักษณะบางอย่างสามารถใช้งานได้กับ dpkg MP ซึ่งเป็นอุปกรณ์เสริม


$ dpkg -l #รายการ โปรแกรมที่ติดตั้ง; $ dpkg -L package #รายการไฟล์แพ็คเกจ

เราจะเปรียบเทียบตัวจัดการแพ็คเกจต่างๆใน Linux ระหว่างลีนุกซ์รุ่นต่างๆ ทั้งหมด สิ่งหนึ่งที่พวกเขาแชร์ร่วมกันก็คือ ความจำเป็นในการติดตั้งแพ็คเกจซอฟต์แวร์ใหม่บนระบบ ขึ้นอยู่กับการแจกจ่าย ตัวจัดการแพ็คเกจต่างๆ ที่มีอยู่ ทำให้ผู้ใช้สามารถติดตั้ง จัดการ และลบแพ็คเกจได้อย่างง่ายดายและรวดเร็ว ผู้จัดการแพ็คเกจเก่งมากในการเพิ่มประสิทธิภาพการติดตั้ง โดยมีตำแหน่งการติดตั้งและการกำหนดค่าทั่วไป ในบทความนี้ เราจะพูดถึงตัวจัดการแพ็คเกจต่างๆ ที่ใช้งานได้ ดิสทริบิวชั่นใดบ้างที่สามารถใช้ได้ และอะไรที่ทำให้แต่ละอันมีเอกลักษณ์เฉพาะตัว เราจะครอบคลุมถึงตัวจัดการแพ็คเกจตาม ตัวจัดการแพ็คเกจหลักของ RedHat Enterprise Linux (RHEL) และตัวจัดการแพ็คเกจแบบกำหนดเองอื่นๆ

ผู้จัดการแพ็คเกจที่ใช้ Debian

ตัวจัดการแพ็คเกจ Dpkg

Ubuntu และ Debian ถือเป็นระบบปฏิบัติการสำหรับผู้บริโภคที่ใช้กันอย่างแพร่หลายมากที่สุดระบบหนึ่ง บนพื้นฐานลินุกซ์ที่มีอยู่ในตลาดวันนี้ ตัวจัดการแพ็คเกจเป็นแบบทั่วไป โดยระบบการจัดการแพ็คเกจระดับต่ำสุดคือ "Dpkg" ย่อมาจาก "Debian Package" เป็นโครงกระดูกซอฟต์แวร์การจัดการแพ็คเกจ พร้อมด้วยเครื่องมือสำหรับการติดตั้ง การถอด และสร้างแพ็คเกจ

Dpkg ขาดคุณสมบัติขั้นสูงเพิ่มเติม - ฟังก์ชั่นเช่นการดาวน์โหลดแพ็คเกจจากอินเทอร์เน็ต หรือการติดตั้งการขึ้นต่อกันโดยอัตโนมัติไม่สามารถทำได้ผ่าน DPKG ความสามารถในการดำเนินการนี้จากอินเทอร์เน็ตมีประโยชน์มาก เนื่องจากช่วยให้ผู้ใช้สามารถเพิ่มที่เก็บแพ็กเกจได้ ซึ่งช่วยเพิ่มการเลือกซอฟต์แวร์ที่สามารถติดตั้งบนระบบได้อย่างง่ายดาย นอกจากนี้ยังช่วยลดความซับซ้อนของกระบวนการติดตั้งซอฟต์แวร์ได้อย่างมาก โดยสามารถค้นหาและติดตั้งแพ็คเกจได้อย่างง่ายดายด้วยคำสั่งเพียงคำสั่งเดียว

Pacman เป็นตัวจัดการแพ็คเกจสำหรับ อาร์ค ลินุกซ์. Pacman เป็นเครื่องมือจัดการแพ็คเกจเดียวที่พบใน Arch ทำให้ไม่ใช่ส่วนหน้า Arch Linux เป็นระบบปฏิบัติการที่เผยแพร่พร้อมการอัปเดตที่เพิ่มเข้ามาทุกวัน มีคำสั่งเพียงไม่กี่คำสั่งสำหรับ pacman ที่ออกแบบมาเพื่อค้นหา ติดตั้ง และลบแพ็คเกจ ตัวจัดการแพ็คเกจนี้สามารถเชื่อมต่ออินเทอร์เน็ตและซื้อแพ็คเกจจากที่นั่น ทำให้เป็นมิตรกับผู้ใช้มากขึ้น อย่างไรก็ตาม pacman ได้รับการออกแบบมาเพื่อติดตั้งซอฟต์แวร์จากที่เก็บ Arch ทำให้ไม่สามารถติดตั้งจากที่เก็บของบุคคลที่สามได้

ABS ย่อมาจาก Arch Build System เป็นระบบเครื่องมือที่ออกแบบมาเพื่อสร้างแพ็คเกจซอฟต์แวร์ที่สามารถติดตั้งได้สำหรับ Arch Linux รหัสแหล่งที่มา. ประกอบด้วยเครื่องมือหลายอย่างที่ทำงานร่วมกันเพื่อสร้างแพ็คเกจ - เครื่องมือเหล่านี้ทั้งหมดเป็นโปรแกรมอิสระ เช่น makepkg, pacman, asp และอื่นๆ วิธีการสร้าง/ติดตั้งแพ็คเกจโดยใช้ ABS นั้นแตกต่างจากการแจกจ่าย Linux ทั่วไป แทนที่จะติดตั้งแพ็คเกจที่คอมไพล์แล้ว คุณต้องสร้างไฟล์ PKGBUILD จากสาขา Svn หรือ Git โดยใช้แพ็คเกจ asp จากนั้นคุณใช้คำสั่ง makepkg ซึ่งใช้ไฟล์ PKGBUILD เพื่อดาวน์โหลดและคอมไพล์ซอร์สโค้ดสำหรับระบบของคุณ สิ่งนี้ทำให้ ABS เป็นวิธีการติดตั้งแพ็คเกจบน Arch Linux ที่ใช้งานง่ายน้อยลงเล็กน้อย มีการใช้งานอื่นๆ หลายประการ เช่น การปรับแต่งแพ็คเกจที่มีอยู่ หรือการสร้างและติดตั้งเคอร์เนลของคุณเอง

ตัวติดตั้งแพ็คเกจดำเนินการกับแต่ละแพ็คเกจอะตอมมิก (ขั้นตอนเดียว): แทนที่จะคัดลอกไฟล์จำนวนมากและเรียกใช้สคริปต์หลาย ๆ ไฟล์ ผู้ใช้ป้อนคำสั่ง "ติดตั้ง/ถอนการติดตั้งแพ็คเกจ" คำสั่งเดียว อย่างไรก็ตาม การดำเนินการแบบอะตอมมิกจากมุมมองของผู้ใช้ - การเพิ่มส่วนประกอบใหม่หนึ่งชิ้นให้กับระบบ - สามารถประกอบด้วยการดำเนินการหลายอย่าง (หรือหลายรายการ) บนแพ็คเกจ เมโทเดียสได้พบเจอแล้ว กรณีที่คล้ายกันเรียนรู้จากประสบการณ์ของคุณเองเกี่ยวกับแนวคิดเรื่อง "ห่วงโซ่การพึ่งพา" ที่นี่ตัวติดตั้งแพ็คเกจไม่สามารถทำให้งานของผู้ใช้ง่ายขึ้นได้ เพื่อดำเนินการติดตั้ง ถอนการติดตั้ง และอัพเดต ส่วนประกอบของระบบอะตอมได้รับการพัฒนา ผู้จัดการแพ็คเกจ. ตัวจัดการแพ็คเกจคือโปรแกรมที่คำนวณความซับซ้อนทั้งหมดของการดำเนินการในแต่ละแพ็คเกจที่ต้องดำเนินการเพื่อติดตั้ง/ลบส่วนประกอบใหม่ (แพ็คเกจ) และเปิดตัวเอง ตัวติดตั้งแพ็คเกจกี่ครั้งก็ได้ตามต้องการด้วยพารามิเตอร์ที่ต้องการ นอกจากนี้ ตัวจัดการแพ็คเกจจะจัดเก็บข้อมูลไม่เพียงแต่เกี่ยวกับแพ็คเกจที่ติดตั้งไว้แล้วบนระบบ แต่ยังเกี่ยวกับแพ็คเกจทั้งหมดที่พร้อมสำหรับการติดตั้งจากสื่อใด ๆ หรือผ่านเครือข่าย (เพิ่มเติมเกี่ยวกับสิ่งนี้ในส่วนแพ็คเกจ..การจัดส่ง)

ตัวจัดการแพ็คเกจ โปรแกรมที่ติดตั้ง ลบหรืออัพเดตแพ็คเกจหรือกลุ่มแพ็คเกจใด ๆ และดำเนินการตามขั้นตอนที่จำเป็นทั้งหมดโดยอัตโนมัติ (การส่งแพ็คเกจจากที่เก็บข้อมูลระยะไกล การคำนวณการขึ้นต่อกันและการติดตั้งแพ็คเกจที่จำเป็นสำหรับแพ็คเกจเหล่านั้น การลบแพ็คเกจที่ถูกแทนที่ ฯลฯ)

ตัวจัดการแพ็คเกจที่มีชื่อเสียงและโด่งดังที่สุดเรียกว่า APT ( ขั้นสูง แพคเกจ อู๋) เดิมได้รับการพัฒนาโดยเป็นส่วนหนึ่งของการแจกจ่าย Debian และใช้งานได้กับตัวติดตั้งแพ็คเกจ dpkg เท่านั้น และต่อมามีการพัฒนาเวอร์ชันสำหรับการแจกแจงอื่น ๆ ที่ใช้งานได้กับ rpm การแจกแจงแบบ Methodius ยังใช้ APT

ในการติดตั้งแพ็คเกจ คุณต้องรู้เกี่ยวกับการมีอยู่ของแพ็คเกจก่อน มีแพ็คเกจหลายพันหรือหลายหมื่นแพ็คเกจสำหรับการแจกจ่าย Linux แต่ละครั้ง และการนำทางผ่านแพ็คเกจเหล่านี้ไม่ใช่เรื่องง่าย APT ให้ความสามารถในการค้นหาสิ่งที่คุณต้องการจากแพ็คเกจที่มีอยู่ ด้วยเหตุนี้จึงใช้ยูทิลิตี้ apt-cache แต่ละแพ็คเกจจะต้องมีบทสรุปโดยย่อ (หนึ่งบรรทัด) และคำอธิบายโดยย่อของทรัพยากรที่มีอยู่ในแพ็คเกจ (ไม่เกินสองสามย่อหน้า) โดยคำสั่ง "apt-cache search สตริงย่อย» APT จะค้นหาและแสดงรายการชื่อแพ็กเกจและคำอธิบายประกอบที่พบสตริงย่อยที่ระบุในชื่อ คำอธิบายประกอบ หรือคำอธิบาย

# apt-cache ค้นหาหลาม | wc 146 1158 8994 # apt-cache ค้นหาหลาม | grep "programming" python - ภาษาโปรแกรมเชิงวัตถุเชิงโต้ตอบที่ได้รับการตีความ

ตัวอย่างที่ 9. กำลังค้นหาแพ็คเกจใน APT

ยูทิลิตี้ apt-get ได้รับการออกแบบมาเพื่อติดตั้งและลบแพ็คเกจ และคำสั่งการติดตั้งนั้นค่อนข้างง่าย: “apt-get install package_name" และคุณไม่จำเป็นต้องระบุข้อมูลใด ๆ เกี่ยวกับเวอร์ชันและตำแหน่งของแพ็คเกจ: APT จะค้นหาและติดตั้งเวอร์ชันล่าสุดที่มีอยู่เอง

# apt-get ติดตั้ง python กำลังอ่านรายการแพ็กเกจ... เสร็จสิ้น การสร้างแผนผังการพึ่งพา... เสร็จสมบูรณ์ ถัดไป แพ็คเกจเพิ่มเติมจะถูกติดตั้ง: libpython libgdbm libgmp python-base python-modules python-modules-bsddb python-modules-compiler python-modules-curses python-modules-email python-modules-encodings python-modules-hotshot python-modules-logging python- modules -xml python-strict แพ็คเกจใหม่ต่อไปนี้จะถูกติดตั้ง: libpython libgdbm libgmp python python-base python-modules python-modules-bsddb python-modules-compiler python-modules-curses python-modules-email python-modules-encodings python -modules- hotshot python-modules-logging python-modules-xml python-strict 0 จะได้รับการอัปเดต, ติดตั้งใหม่ 15 รายการ, 0 แพ็คเกจจะถูกลบออก และ 0 จะไม่ได้รับการอัปเดต คุณต้องได้รับไฟล์เก็บถาวรขนาด 0B/4466kB หลังจากแกะกล่องแล้ว จะต้องมีพื้นที่ดิสก์เพิ่มเติม 16.9MB ดำเนินการต่อ? ได้รับ: 1 cdrom://SomeLinux CD RPM/main libpython 2.3.3-some2 ได้รับ: 2 cdrom://SomeLinux CD RPM/main libgdbm 1.8.3-some3 ได้รับ: 3 cdrom://SomeLinux CD RPM/main libgmp 4.1.2-บางคน3 . . . ได้รับ: 14 cdrom://SomeLinux CD RPM/main python-base 2.3.3-some12 ได้รับ: 15 cdrom://SomeLinux CD RPM/main python 2.3.3-some12 ได้รับ 4466kB ใน 0 วินาที (19.5MB/s) ทำการเปลี่ยนแปลง... กำลังเตรียม... ######################################## 1: libpython ######################################## [ 6%] 2: libgdbm ############################################ [ 13%] 3 : libgmp # ######################################## [ 20%] 4: หลาม -base # ################################################################## [26%] . . . 13: การบันทึกโมดูลหลาม ########################################## # [ 86 %] เสร็จสมบูรณ์

ตัวอย่างที่ 10. การติดตั้งแพ็คเกจโดยใช้ APT

APT ดำเนินการขั้นตอนการติดตั้งในหลายขั้นตอน: อันดับแรกจะค้นหาแพ็คเกจที่ร้องขอในรายการที่มีอยู่ เมื่อพบแล้วจะคำนวณว่าแพ็คเกจใดที่ควรติดตั้งเพื่อตอบสนองการขึ้นต่อกัน หลังจากนั้นจะได้รับไฟล์ของแพ็คเกจที่จำเป็นทั้งหมด (ในกรณีนี้ APT พบแพ็คเกจที่จำเป็นในซีดีรอม) และรันตัวติดตั้งแพ็คเกจตามลำดับเพื่อติดตั้งทุกสิ่งที่จำเป็น ในทำนองเดียวกัน หากต้องการลบแพ็คเกจ เพียงรันคำสั่ง "apt-get Remove" package_name ».

นอกจาก APT แล้ว ยังมีผู้จัดการแพ็คเกจอื่นๆ อีกมากมาย ส่วนใหญ่เป็นการกระจายแบบเฉพาะเจาะจง เช่น เกิดขึ้นสำหรับ Gentoo หรือ yast สำหรับ SUSE งานและความสามารถของพวกเขาใกล้เคียงกับ APT โดยประมาณ

การควบคุมความซื่อสัตย์

เนื่องจากตัวจัดการแพ็คเกจสามารถสร้างสายการขึ้นต่อกันของแพ็คเกจซึ่งกันและกันได้ จึงสามารถใช้เพื่อกำหนดว่าการขึ้นต่อกันทั้งหมดเป็นไปตามแพ็คเกจที่ติดตั้งบนระบบหรือไม่ ระบบที่เรียกว่าไม่มีแพ็คเกจที่มีการขึ้นต่อกันที่ไม่พอใจ แบบองค์รวม. หากความสมบูรณ์เสียหาย แสดงว่าซอฟต์แวร์บางส่วนที่ติดตั้งบนระบบไม่สามารถใช้งานได้หรือทำงานไม่ถูกต้อง

ความสมบูรณ์ของระบบอาจถูกละเมิดในขณะที่มีการเปลี่ยนแปลงองค์ประกอบ: เมื่อติดตั้ง, ลบหรืออัพเดตส่วนหนึ่งของแพ็คเกจหรือทั้งระบบ หากคุณใช้ตัวจัดการแพ็คเกจสำหรับการดำเนินการทั้งหมดเหล่านี้ ความสมบูรณ์ของระบบก็ไม่ควรถูกทำลาย แม้ว่าบางครั้งแม้แต่ผู้จัดการแพ็คเกจก็ยังพบว่าเป็นการยากที่จะหาวิธีแก้ปัญหาที่เหมาะสมเพื่อตอบสนองการขึ้นต่อกันทั้งหมดและแก้ไขข้อขัดแย้ง

ด้วยตัวจัดการแพ็คเกจ กลไกการพึ่งพาสามารถเปลี่ยนให้เป็นประโยชน์ต่อมนุษย์ได้ ดังนั้น คุณสามารถสร้างแพ็คเกจที่มีเฉพาะการขึ้นต่อกันและไม่มีทรัพยากร - แพ็คเกจดังกล่าวเรียกว่า เสมือน. สิ่งนี้มีประโยชน์เมื่อคุณต้องการให้ผู้ใช้ติดตั้งสภาพแวดล้อมที่สมบูรณ์เพื่อดำเนินงานได้ง่ายขึ้น แพ็คเกจที่จำเป็นสำหรับการนี้อาจไม่ได้ขึ้นอยู่กับแต่ละแพ็คเกจโดยตรง แต่หากต้องการติดตั้งทั้งหมดในขั้นตอนเดียว ผู้ใช้จะต้องติดตั้งแพ็คเกจเสมือนเพียงแพ็คเกจเดียวเท่านั้น แพ็คเกจเสมือนดังกล่าวกลายเป็นแพ็คเกจ python ในตัวอย่างและอีกแพ็คเกจหนึ่ง - python-strict:

# rpm -ql python (ไม่มีไฟล์) # rpm -ql python-strict (ไม่มีไฟล์)

ตัวอย่างที่ 11. แพ็คเกจเสมือนไม่มีไฟล์

นี่คือสาเหตุที่ apt "ได้รับ" 15 แพ็คเกจ (รวมสองแพ็คเกจเสมือน) แต่ "ทำการเปลี่ยนแปลง" สำหรับ 13 เท่านั้น

จัดส่ง

งานสำคัญที่ตัวติดตั้งแพ็คเกจไม่สามารถแก้ไขได้คือการส่งไฟล์แพ็คเกจไปยังระบบสำหรับการติดตั้งในภายหลัง การเก็บถาวรแพ็คเกจมักจะไม่ถูกจัดเก็บไว้ในระบบ: มีขนาดใหญ่เกินไป (แพ็คเกจนับพัน) และต้องได้รับการอัปเดตเป็นประจำ (การอัปเดตซอฟต์แวร์ เช่น แพ็คเกจเวอร์ชันใหม่ออกวางจำหน่าย) ดังนั้นในการติดตั้ง คุณมักจะต้องคัดลอกไฟล์ที่จำเป็นจากสื่อที่จัดเก็บไฟล์เหล่านั้นก่อน (นี่คือไฟล์ใดไฟล์หนึ่งก็ได้) ดิสก์การติดตั้งชุดแจกจ่ายหรือจัดเก็บข้อมูลบนอินเทอร์เน็ต)

เพื่อให้ APT ทำงานกับแพ็คเกจได้นั้นจะต้องอยู่ในพื้นที่เก็บข้อมูลที่จัดตามกฎพิเศษ - ที่เก็บ. รายการที่มี ที่เก็บ APTเก็บไว้ในไฟล์ /etc/apt/sources.list สำหรับแต่ละพื้นที่เก็บข้อมูลจะมีการระบุวิธีการเข้าถึง (เช่น "cdrom:", "ftp:", "file:" ฯลฯ ) และที่อยู่

Rpm cdrom:/ RPM contrib หลัก rpm ftp://updates.somelinux.com อัปเดต 2.4/i586

ตัวอย่างที่ 12. ไฟล์ Source.list

หลังจากการเปลี่ยนแปลงไฟล์ /etc/apt/sources.list แต่ละครั้ง คุณจะต้องอัปเดตแคช APT ซึ่งจัดเก็บข้อมูลเกี่ยวกับแพ็กเกจที่มีอยู่ด้วยคำสั่ง apt-get update หากต้องการเพิ่มข้อมูลเกี่ยวกับแพ็กเกจที่มีอยู่ในซีดีลงในแคช คุณควรใช้คำสั่ง "apt-cdrom add" แทนที่จะแก้ไข Sources.list ด้วยตนเอง

APT ช่วยให้คุณสามารถส่งแพ็คเกจไปยังระบบได้โดยไม่ต้องติดตั้ง สิ่งนี้เกิดขึ้นเสมอด้วย แพ็คเกจแหล่งที่มาซึ่งจะถูกคัดลอกจากพื้นที่เก็บข้อมูลไปยังไดเร็กทอรีเฉพาะบนระบบโดยใช้คำสั่ง "apt-get source" package_name ».

อัปเดต

ซอฟต์แวร์ในโลก Linux (และไม่เพียงเท่านั้น) ได้รับการอัปเดตอย่างต่อเนื่อง: ข้อผิดพลาดได้รับการแก้ไข ความสามารถได้รับการขยาย นักพัฒนาของการแจกจ่ายแต่ละครั้งเมื่อมีการเปิดตัวโปรแกรมเวอร์ชันใหม่ให้เตรียมแพ็คเกจเวอร์ชันใหม่ที่เกี่ยวข้องและเผยแพร่ในโปรแกรมเหล่านั้น ที่เก็บ(ที่เก็บข้อมูลที่สะท้อนถึงสถานะปัจจุบันของซอฟต์แวร์มีอยู่ในอินเทอร์เน็ต) เป็นเรื่องสมเหตุสมผลที่ผู้ใช้จะติดตามการอัปเดตซอฟต์แวร์ เนื่องจากโปรแกรมเวอร์ชันใหม่หมายถึงความน่าเชื่อถือของระบบและคุณสมบัติใหม่มากขึ้น

ผู้จัดการแพ็คเกจอนุญาตให้คุณทำ การอัปเดตที่ครอบคลุมระบบทั้งหมด ใน APT ขั้นตอนนี้สามารถดำเนินการได้ด้วยคำสั่งเดียว: “apt-get dist-upgrade” ขั้นตอนนี้จะตรวจสอบเนื้อหาของที่เก็บที่มีอยู่ทั้งหมดก่อน และค้นหาว่ามีแพ็คเกจทั้งหมดที่เป็นเวอร์ชันใหม่กว่าแพ็คเกจที่เกี่ยวข้องที่ติดตั้งบนระบบ ขอบเขตของการอัปเดตจะถูกคำนวณ: พื้นที่ที่เกี่ยวข้องของแพ็คเกจที่ล้าสมัยที่ต้องพึ่งพาซึ่งกันและกันจะต้องถูกลบออกและแทนที่ด้วยพื้นที่ที่เกี่ยวข้องของเวอร์ชันที่ใหม่กว่า สถานการณ์ที่ซับซ้อนอาจเกิดขึ้นหากการกระจายทรัพยากรระหว่างแพ็คเกจมีการเปลี่ยนแปลง: แพ็คเกจถูกแยกหรือรวมเข้าด้วยกัน - ซึ่งอาจต้องมีการแทรกแซงจากผู้ใช้ด้วยตนเอง ประเภทของการอัพเดตระบบที่ต้องทำอย่างสม่ำเสมอและ อย่างจำเป็นสิ่งเหล่านี้คือการอัปเดตด้านความปลอดภัย เมื่อมีการค้นพบและแก้ไขข้อผิดพลาดร้ายแรงในโปรแกรมที่คุกคามความปลอดภัยของทั้งระบบ นักพัฒนาซอฟต์แวร์มักจะตรวจสอบให้แน่ใจว่าการอัปเดตที่เหมาะสมไปถึงผู้ใช้ โดยปกติจะมีพื้นที่เก็บข้อมูลแยกต่างหากสำหรับการอัปเดตที่เกี่ยวข้องกับความปลอดภัย

ราคาของความสะดวกสบาย

ต้นทุนของความสะดวกสบายของผู้จัดการแพ็คเกจคือพวกเขาสามารถทำงานให้สำเร็จได้เฉพาะกับแหล่งต้นทางแบบองค์รวมพิเศษเท่านั้น ( ที่เก็บแพ็คเกจ). แม้ว่าสำหรับผู้ใช้ส่วนใหญ่ข้อจำกัดนี้ไม่สำคัญนัก แต่การแจกแจงที่ใช้ตัวจัดการแพ็คเกจมักจะมีที่เก็บแพ็คเกจขนาดใหญ่ที่คุณสามารถค้นหาซอฟต์แวร์เท่าที่จะจินตนาการได้ ถ้า โปรแกรมที่ต้องการอย่างไรก็ตาม ชุดการแจกจ่ายไม่ได้อยู่ในพื้นที่เก็บข้อมูลอย่างเป็นทางการ โดยปกติจะมีพื้นที่เก็บข้อมูล "ส่วนตัว" บนอินเทอร์เน็ต รวมถึงแพ็คเกจที่ไม่รวมอยู่ในพื้นที่เก็บข้อมูลอย่างเป็นทางการ

อย่างไรก็ตาม หากไม่พบแพ็คเกจที่คุณต้องการที่คอมไพล์เพื่อการแจกจ่ายของคุณโดยเฉพาะ คุณสามารถติดตั้งแพ็คเกจบุคคลที่สามได้ แต่สามารถทำได้โดยใช้ตัวติดตั้งแพ็คเกจเท่านั้น ตัวจัดการแพ็คเกจจะไม่มีประโยชน์ในสถานการณ์นี้ คุณสามารถติดตั้งโปรแกรมได้โดยรวบรวมเองจากซอร์สโค้ด แต่ควรคำนึงถึงสิ่งต่อไปนี้

ผู้เขียน โปรแกรมไม่จำเป็นต้องคำนึงถึงรายละเอียดปลีกย่อยทั้งหมดของการกระจายทั้งหมดดังนั้นในด้านหนึ่งความขัดแย้งโดยตรงกับไฟล์ในระบบ (ซึ่งไม่มีใครสามารถติดตามได้อีกต่อไป) จึงเป็นไปได้และในทางกลับกันความขัดแย้งที่ซ่อนอยู่และ ความขัดแย้ง (เช่น โปรแกรมถูกติดตั้งในไดเร็กทอรีย่อยของไดเร็กทอรี / usr/local และคาดหวังทุกอย่าง พักผ่อนโปรแกรมก็อยู่ในไดเร็กทอรีนี้ด้วย) ซึ่งหมายความว่าคุณจะต้องทราบด้วยตนเองว่าจะคอมไพล์โปรแกรมอย่างไรและด้วยพารามิเตอร์ใดวิธีการติดตั้งลงในระบบและวิธีหลีกเลี่ยงข้อขัดแย้ง และถ้าเป็นเช่นนั้น หากคุณสามารถประกอบและติดตั้งโปรแกรมที่คุณและคนอื่นต้องการในระบบได้อย่างถูกต้อง ซึ่งยังไม่มีอยู่ในชุดแจกจ่าย สิ่งที่ถูกต้องที่สุดคือการสร้างมันขึ้นมา ถุงพลาสติก, โดย อย่างน้อย แพ็คเกจแหล่งที่มาและถ้ามันได้ผลล่ะก็ ไบนารี่. สิ่งนี้จะทำให้ชีวิตของคุณง่ายขึ้นมากเมื่อคุณคอมไพล์และติดตั้งโปรแกรมนี้อีกครั้ง (บนคอมพิวเตอร์เครื่องอื่นหรืออัปเดตเวอร์ชันของโปรแกรมเอง) และที่สำคัญที่สุดคือ สู่ชุมชนผู้ใช้ทั้งหมดการกระจายของคุณ!

ในที่สุด การแจกแจงสมัยใหม่จำนวนมากก็มีเครื่องมือที่ช่วยสร้างแพ็คเกจไบนารี่ เครื่องมือดังกล่าว (เช่น แพ็คเกจแฮชจาก ALT Linux) ช่วยให้คุณไม่เพียงแต่สามารถคอมไพล์โปรแกรมใน "สภาพแวดล้อมสากล" ที่ประกอบด้วยชุดแพ็คเกจที่กำหนดเท่านั้น แต่ยังสร้างการขึ้นต่อกันโดยอัตโนมัติ ตรวจสอบการติดตั้งที่ถูกต้อง และตรวจสอบข้อขัดแย้ง กล่าวโดยสรุป โดยการสร้างแพ็คเกจโดยใช้เครื่องมือดังกล่าว คุณสามารถอ้างสิทธิ์ได้อย่างจริงจังว่าเป็นผู้ดูแลแพ็คเกจนั้นในการแจกจ่าย ในทางตรงกันข้ามการรวบรวมโปรแกรมอย่างเจ้าเล่ห์โดยใช้หมอผีและการทำงานด้วยตนเองคุณจะเปิดเผยตัวเองว่าเป็นคนเกียจคร้านและเป็นคนเห็นแก่ตัวที่ไม่สนใจการเติบโตและการปรับปรุงระบบปฏิบัติการของตัวเอง

บางครั้งอาจมีคำถามเกิดขึ้น: ไฟล์นี้เป็นของใคร ห้องสมุดนี้มาจากไหน?? ตัวจัดการแพ็คเกจที่สะดวกช่วยแก้ปัญหาระบบปฏิบัติการหลายอย่าง พูดได้อย่างปลอดภัยว่าหากคุณเป็นเพื่อนกับ MP คุณจะเป็นเพื่อนกับการจัดจำหน่ายด้วย ยิ่งไปกว่านั้น สิ่งสำคัญคือต้องเชี่ยวชาญชุดคำสั่งพื้นฐานและรู้ว่าจะหาข้อมูลเพิ่มเติมได้จากที่ไหน


สิ่งต่อไปนี้คือชุดคำสั่งของสุภาพบุรุษที่จำเป็นสำหรับกิจวัตรประจำวันของการกระจาย Linux หลัก: ติดตั้ง อัปเดตและลบแพ็คเกจ ออกการอัปเดต ตรวจสอบการขึ้นต่อกัน พิจารณาว่าไฟล์เป็นของแพ็คเกจหรือไม่ ฯลฯ

เดเบียนและที่เกี่ยวข้อง

ความนิยมและภาพลักษณ์ที่เป็นมิตรต่อผู้ใช้ การกระจายลินุกซ์เล่นเรื่องตลกที่โหดร้ายบน Ubuntu ผู้เริ่มต้นบางคนคิดว่าพวกเขาสามารถทำอะไรก็ได้โดยไม่ต้องใช้บรรทัดคำสั่ง นี่เป็นความเข้าใจผิดและควรกำจัดมันโดยเร็วที่สุด


ความจริงที่ว่า aptitude อยู่ในตัวอย่างไม่ได้หมายความว่ามันถูกต้องมากกว่า apt-get สำหรับฉันมันเป็นแค่เรื่องของนิสัย


$ aptitude ติดตั้งแพ็คเกจ # ติดตั้งแพ็คเกจ; $ aptitude แพ็คเกจอัพเกรดความปลอดภัย #แพ็คเกจอัพเกรด; $ aptitude update #ตรวจสอบและติดตั้งอัพเดต; $ aptitude ลบแพ็คเกจ #ลบแพ็คเกจ; $ aptitude purge package #ลบแพ็คเกจที่สมบูรณ์ ข้อมูลและการตั้งค่าทั้งหมด $ apt-get dist-upgrade #upgrade OS คุณสมบัตินักฆ่าและใช้งานได้! $ แพ็คเกจค้นหาความถนัด #ค้นหาแพ็คเกจ $ apt-cache ขึ้นอยู่กับแพ็คเกจ # การพึ่งพาแพ็คเกจ; $ apt-cache rdepends package #reverse การพึ่งพาแพ็คเกจ

คุณลักษณะบางอย่างสามารถใช้งานได้กับ dpkg MP ซึ่งเป็นอุปกรณ์เสริม


$ dpkg -l #รายการโปรแกรมที่ติดตั้ง; $ dpkg -L package #รายการไฟล์แพ็คเกจ