การจัดการแพ็กเกจและที่เก็บซอฟต์แวร์
การแจกแจงแบบอิงลินุกซ์ของ Debian นั้นใช้ที่เก็บข้อมูล (ฐานข้อมูลของแพ็คเกจการติดตั้งแอพพลิเคชั่นและแพ็คเกจอัพเกรด) เพื่อให้ระบบปฏิบัติการได้รับการปรับปรุงและสามารถดึงและติดตั้งแพคเกจซอฟต์แวร์ใหม่ได้ง่าย ตำแหน่งของที่เก็บเหล่านี้ถูกเก็บไว้ใน/etc/apt/sources.listอย่างไรก็ตามแหล่งข้อมูลเพิ่มเติมมักจะไม่ซ้ำกับแอปพลิเคชันเฉพาะสามารถเก็บไว้ใน/etc/apt/sources.list.dไดเรกทอรี
เมื่อคำสั่งอัพเดตดัชนีแพ็กเกจapt-get updateถูกเรียกใช้งานระบบปฏิบัติการของคุณจะตรวจสอบกับที่เก็บแพ็กเกจเหล่านี้เพื่อหาแพ็กเกจที่มีอยู่และลงทะเบียนซอฟต์แวร์ที่มีอยู่ซึ่งพร้อมใช้งานสำหรับระบบปฏิบัติการของคุณซึ่งคุณสามารถติดตั้งได้โดยใช้apt-get install <package>คำสั่งดั้งเดิม
ตัวอย่างหนึ่งในแหล่งซอฟต์แวร์เหล่านี้คือ:
deb http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty main restricted
เป็นสิ่งสำคัญสำหรับแหล่งข้อมูลเหล่านี้เพื่ออ้างอิงการแจกแจงลินุกซ์รุ่นที่เฉพาะเจาะจง ตัวอย่างคือความไว้วางใจซึ่งเป็นชื่อรหัสสำหรับ Ubuntu 14.04 คุณสามารถสอบถามระบบปฏิบัติการของคุณ (เดเบียน based) สำหรับรายละเอียดที่สมบูรณ์แบบด้วยlsb_release -aหรือlsb_release -scซึ่งหมายความว่าในระยะสั้นและสมญานาม
ในคำถามของคุณชิ้นส่วน$(lsb_release -sc)จะถูกตีความและผลลัพธ์จากระบบปฏิบัติการของคุณจะถูกพิมพ์ลงในไฟล์ต้นฉบับที่กำหนดเองros-latest.listซึ่งคำสั่งจะสร้างขึ้นเมื่อมีการดำเนินการ
ล่ามภาษาคำสั่ง
shคำสั่งเป็นบอร์นเชลล์ นี่คือหนึ่งในหลาย ๆ เชลล์ แต่ถือว่าเป็นมาตรฐานเก่าและโดยทั่วไปคุณจะมั่นใจได้ว่ามีอยู่จริง นอกจากนี้ยังเป็นเรื่องธรรมดาที่จะเห็นbashในเชลล์สคริปต์จำนวนมาก การประกาศนั้นระบุเชลล์เพื่อใช้เป็นเชลล์ที่ต่างกันใช้ไวยากรณ์ที่แตกต่างกัน
ในเรื่องเกี่ยวกับ-cธงการอ้างอิงman bash:
หากมีอ็อพชัน -c อยู่คำสั่งจะอ่านจากสตริง หากมีข้อโต้แย้งหลังจากสตริงพวกเขาจะถูกกำหนดให้กับพารามิเตอร์ตำแหน่งเริ่มต้นด้วย $ 0
ทุกสิ่งที่อยู่ภายในนั้น''ถูกอ่านเป็นสตริงคุณไม่จำเป็นต้องคิดออกว่าจะหนีจากเครื่องหมายอัญประกาศต่าง ๆ หรือกังวลเกี่ยวกับเปลือกตีความสิ่งผิดปกติ
TL; DR
คำสั่งพิมพ์deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) mainไปยังไฟล์ต้นฉบับที่กำหนดเองแทนที่$(lsb_release -sc)ด้วยค่าที่ตีความ