สคริปต์การติดตั้งทำอะไรในการติดตั้ง apt-get


14

ดูเหมือนว่าapt-get installจะดาวน์โหลดแพ็คเกจ Debian และลองเรียกใช้สคริปต์การติดตั้งสำหรับ:

  • สร้างไดเรกทอรีที่เหมาะสม
  • สร้างบัญชีที่เหมาะสม
  • คัดลอกไฟล์ไบนารี
  • คัดลอกไฟล์ข้อมูล
  • คัดลอกไฟล์ Conf
  • คัดลอกสคริปต์ init.d
  • เริ่มบริการ
  • เป็นต้น

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

คำตอบ:


25

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

รุ่นที่ยาวกว่า:

รอบคัดเลือกโซน:

จากmanpage :

แพ็คเกจทั้งหมดที่แพ็คเกจที่ระบุไว้สำหรับการติดตั้งจะถูกเรียกคืนและติดตั้งด้วย

แพ็คเกจเหล่านั้นถูกเก็บไว้ในที่เก็บในเครือข่าย (อินเทอร์เน็ต) ดังนั้นapt-getดาวน์โหลดแพ็คเกจที่จำเป็นทั้งหมดลงในไดเรกทอรีชั่วคราว ( /var/cache/apt/archives/) พวกเขาจะถูกดาวน์โหลดจากเว็บหรือเซิร์ฟเวอร์ ftp พวกเขามีการระบุไว้ในที่เรียกว่าsources.list; รายการของที่เก็บสำหรับผู้จัดการแพกเกจฉลาด จากนั้นพวกเขาได้รับการติดตั้งทีละขั้นตอน

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

แต่ละแพ็คเกจผ่านขั้นตอนการติดตั้ง

ขั้นตอนการติดตั้งแพคเกจ:

ในลินุกซ์ Debian-based เช่น Ubuntu หรือมิ้นท์แพคเกจเหล่านี้จะอยู่ในรูปแบบมาตรฐานที่ระบุไว้ว่า: Deb -> Debian รูปแบบแพคเกจไบนารี

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

  • preinst: ก่อนการติดตั้งไฟล์ลงในลำดับชั้นไฟล์ระบบ
  • postinst: หลังการติดตั้ง
  • prerm: ก่อนการถอนการติดตั้ง
  • postrm: หลังจากการถอนการติดตั้ง

สคริปต์เหล่านั้นเป็นสถานที่ที่ผู้ใช้เฉพาะถูกสร้างขึ้นหรือบริการบางอย่างที่ต้องเริ่มต้นใหม่หรือขั้นตอนอื่น ๆ ที่จำเป็นสำหรับแพคเกจในการทำงาน

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

มีภาพที่น่าสนใจแสดงขั้นตอนการติดตั้งแพคเกจใหม่:

การติดตั้ง

นอกจากนี้ยังมีไฟล์ควบคุมเพิ่มเติมที่สำคัญที่สุดคือ:

หากคุณสนใจคุณสามารถแกะแพ็คเกจ deb (หลังจากดาวน์โหลด) ด้วยตนเองและดูว่ามีอะไรอยู่ภายใน:

# to only download the package (no installation)
apt-get download package
# to unpack the deb file
ar x package.deb

ตอนนี้คุณจะเห็นไฟล์ที่เรียกว่าdata.tar.gzบรรจุไฟล์และไฟล์ที่เรียกว่าcontrol.tar.gzประกอบด้วยสคริปต์ผู้ดูแลทั้งสี่และไฟล์ควบคุมที่กล่าวถึงข้างต้น


ทุกวันนี้ฉันเชื่อว่ามันจะดีกว่าที่จะใช้dpkg-deb -x package.debแทนar x package.debเนื่องจากdpkgเป็นผู้จัดการแพคเกจอย่างเป็นทางการ (ซึ่งใช้ apt-get)
Fanatique
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.