ความแตกต่างระหว่างโฟลเดอร์ lib มากมายใน Linux


14

ความแตกต่างระหว่าง libs จำนวนมากในระบบ Linux คืออะไร? (/ lib, / usr / lib, / var / lib, / usr / share / lib ฯลฯ ฯลฯ )

ฉันรู้ว่ามันจัดการโดยอัตโนมัติโดย synaptic เมื่อใดก็ตามที่ฉันติดตั้งแอปพลิเคชัน แต่ในกรณีที่ฉันต้องการเป็นนักพัฒนา Linux ฉันต้องทราบว่าจะวาง libs แอปพลิเคชันของฉันไว้ที่ไหนในระบบ

คำตอบ:


10

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

สังเกตุฉันไม่ได้พูดถึง "lib" โดยเฉพาะ มีหลายตำบลย่อยภายใต้คำนำหน้า lib เป็นเพียงหนึ่งในพวกเขา "bin" ใช้สำหรับ executables, "share" สำหรับไฟล์ข้อมูล, "lib" สำหรับ shared library และอื่น ๆ ดังนั้นหากโปรแกรมของคุณเป็นไลบรารี่คุณสามารถติดตั้งได้โดยค่าเริ่มต้นเป็น / usr / local / lib หากเป็นโปรแกรมปกติคุณสามารถติดตั้งเพื่อ / usr / local / bin ด้วยไฟล์ข้อมูลของคุณใน / usr / local / share สิ่งสำคัญคือคุณต้องทำเพื่อให้สามารถเลือกส่วนนำหน้าได้ในเวลารวบรวม บางคนอาจต้องการติดตั้งเพื่อ / usr มากกว่า / usr / local หรือในทางกลับกัน


ดังนั้นประเด็นของคุณคือที่ตั้งค่อนข้างเป็นแนวทางมากกว่าขีด จำกัด ยาก
Andreas Wong

1
มันเป็นแนวทาง แต่ควรปฏิบัติตามและแอพพลิเคชั่นมากมายคาดหวังว่าไฟล์บางไฟล์ในบางที่
Jim Deville

@james point taken: D
Andreas Wong

8

นอกจากนี้ยังมีมาตรฐานที่อธิบายถึงลำดับชั้นของระบบไฟล์ linux / unix มันสามารถพบได้ที่: http://www.pathname.com/fhs/ สิ่งนี้มีไว้สำหรับนักพัฒนาการแจกจ่าย แต่ฉันไม่เห็นเหตุผลที่ผู้ใช้ / นักพัฒนาไม่ควรรับรู้


0

/ bin และ / sbin

  • ไบนารีที่ใช้สำหรับการบริหารระบบและยังอยู่ใน usermode เดียว ไฟล์ไลบรารีของพวกเขาอยู่ใน / lib

/ usr / bin และ / usr / sbin

  • มีไบนารีที่ไม่จำเป็นที่ไม่จำเป็นที่ใช้โดยผู้ใช้และไบนารีที่ใช้สำหรับบริการเครือข่ายและไลบรารีทั้งหมดของพวกเขาจะอยู่ใน / usr / lib

/ var / lib

  • มีไฟล์ที่เก็บข้อมูลเกี่ยวกับสถานะของการรันโปรแกรมหรืออินสแตนซ์ของโปรแกรม. user ไม่จำเป็นต้องเปลี่ยนแปลงสิ่งนี้

/ usr / share / lib

  • มีไฟล์ข้อมูลที่ไม่ขึ้นกับสถาปัตยกรรม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.