การติดตั้งที่สอดคล้องกับ FHS สำหรับไบนารีที่ผู้จัดจำหน่ายเป็นผู้ให้คืออะไร?


0

ผู้จำหน่ายซอฟต์แวร์ต้องสร้างแพคเกจ Debian ที่เป็นไปตามมาตรฐานระบบลำดับชั้นมาตรฐาน (FHS) ต้องใช้การติดตั้งแบบใดสำหรับไบนารี

ซอฟต์แวร์ที่อยู่ใน/binหรือ/usr/binอาจถูกเขียนทับโดยการอัพเกรดระบบ การติดตั้งไบนารี่ในไดเรกทอรีนั้นทำได้หรือไม่? หรือไดเรกทอรีนี้สงวนไว้สำหรับผู้จัดจำหน่ายระบบพื้นฐานหรือไม่

/usr/local/binสำหรับซอฟต์แวร์ที่ติดตั้งโดยผู้ดูแลระบบ ทุกอย่างที่อยู่ภายใต้/usr/localจะต้องไม่ถูกแก้ไขโดยการอัพเกรดระบบ ผู้ขายที่ให้แพคเกจ Debian apt-add-repositoryอาจจะกลายเป็นส่วนหนึ่งของขั้นตอนการอัพเกรดระบบหากมีการดาวน์โหลดจากพื้นที่เก็บข้อมูลแพคเกจและเก็บข้อมูลนี้มีการลงทะเบียนกับ ดังนั้นฉันเดา: ไม่

/opt/<vendor>/binดูเหมือนว่าจะโอเค แต่ไม่ต้องลงทะเบียนไดเรกทอรีนี้เพื่อหลีกเลี่ยงความขัดแย้งกับผู้ขายรายอื่น? และวิธีการรวมไดเรกทอรีนี้ในวิธีที่เป็นไปตาม FHS เพื่อให้$PATHทำงานอย่างไร

คำตอบ:


0

มาดูกันว่า Debian มีโครงร่าง / การเลือก :

/ opt / Add-on แพคเกจซอฟต์แวร์แอปพลิเคชันที่รวบรวมไว้ล่วงหน้า, ไม่ใช่ ".deb" การกระจายแบบไบนารี (tar'ed .. ) ไปที่นี่

/ opt / bin /: เหมือนกับลำดับชั้นระดับสูงสุด

/ opt / include /: เหมือนกับลำดับชั้นระดับสูงสุด

/ opt / lib /: เหมือนกับลำดับชั้นระดับสูงสุด

/ opt / sbin /: เหมือนกับลำดับชั้นระดับสูงสุด

/ opt / share /: เหมือนกับลำดับชั้นระดับสูงสุด

ในทางปฏิบัติฉันได้เห็นแอปพลิเคชันที่ติดตั้ง.debแพ็คเกจด้วยเช่นกัน เป็นการดี/binและ/usr/binควรจะสำรองไว้โดยเฉพาะ/binเพราะมันถูกกำหนดให้เป็น

คำสั่งที่จำเป็นสำหรับปฏิบัติการ (ไบนารี) สำหรับผู้ใช้ทั้งหมด (เช่น cat, ls, cp) (โดยเฉพาะอย่างยิ่งไฟล์ที่จำเป็นสำหรับการบูตหรือช่วยเหลือระบบ)

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

สิ่งที่พบเห็นได้ทั่วไปอีกอย่างหนึ่งคือการเชื่อมโยง: การเข้าสู่/usr/binคือการเชื่อมโยงไปยังตำแหน่งอื่น นี่อาจเป็นตัวเลือกที่ทำงานได้สำหรับการรวมไบนารีเข้า$PATHกับที่คุณกล่าวถึงในคำถาม นอกจากนี้ยังสอดคล้องกับคู่มือบรรจุภัณฑ์ของ Debian เกี่ยวกับสถานะFHS :

4.4 / usr / bin: คำสั่งผู้ใช้ส่วนใหญ่

4.4.1 วัตถุประสงค์

นี่เป็นไดเรกทอรีหลักของคำสั่งที่รันได้บน
ระบบ

4.4.2 ความต้องการ

ต้องไม่มีไดเรกทอรีย่อยใน / usr / bin

ดังนั้นหากคุณมีแอปพลิเคชันที่คาดว่าจะมีไดเรกทอรีย่อย (เช่นโมดูล Python ที่มีไดเรกทอรี submodule) แนวทางปฏิบัติที่ดีที่สุดคือการวางแอปพลิเคชั่นที่อื่น ( ในกรณีของ Pythonนั่นคือ/usr/lib/python*/dist-packagesไดเรกทอรี) พร้อมกับไดเรกทอรีย่อย/usr/bin/my_binary

อีก$PATHบูรณาการที่ผมเคยเห็นถูกทำโดยผู้ขายบางคนคือการแก้ไขของผู้ใช้ตัวแปรและผนวกที่$PATH ~/.bashrc(ใช่นี่เป็นวิธีปฏิบัติที่ไม่ดีและฉันไม่สนับสนุน - เพียงแค่ระบุความจริงว่าเป็นสิ่งที่ฉันเห็นว่าทำไปแล้ว)

"แต่ไม่ต้องลงทะเบียนไดเรกทอรีนี้เพื่อหลีกเลี่ยงความขัดแย้งกับผู้ขายรายอื่น" เอกสาร Debian ที่กล่าวถึงไม่ได้พูดอะไรเกี่ยวกับการลงทะเบียนไดเรกทอรีดังนั้นคำตอบคือไม่จำเป็นต้องทำแต่ถ้าคุณต้องการหลีกเลี่ยงความขัดแย้งคุณสามารถติดตาม schema /opt/vendor/package-v-1.2/bin- นั่นคือระบุแพ็คเกจและรุ่นที่วางจำหน่ายอาจจะ หนึ่งปีเช่นกัน

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