ใช้ไดเร็กทอรี / opt และ / usr / local ในบริบทของพีซี


65

ความแตกต่างระหว่าง/optและ/usr/localไดเรกทอรีและประเภทของโปรแกรมควรติดตั้งให้พวกเขาคืออะไร?

ฉันอ้างถึงลำดับชั้นของระบบไฟล์ Linuxแต่คำอธิบายนั้นไม่ชัดเจน ตามลิงค์ด้านบน;

/opt : - ไดเรกทอรีนี้สงวนไว้สำหรับซอฟต์แวร์และแพ็คเกจเสริมทั้งหมดที่ไม่ได้เป็นส่วนหนึ่งของการติดตั้งเริ่มต้น

/usr/local: - /usr/localลำดับชั้นใช้สำหรับผู้ดูแลระบบเมื่อติดตั้งซอฟต์แวร์แบบโลคัล จะต้องปลอดภัยจากการเขียนทับเมื่อมีการอัพเดทซอฟต์แวร์ระบบ

ในบริบทของพีซีที่ไม่มีคอมพิวเตอร์ในเครือข่ายควรมีไดเรคทอรีสำหรับติดตั้งซอฟต์แวร์ที่ผู้ใช้หลายคนในพื้นที่สามารถเข้าถึงได้หรือไม่ (เช่นที่ฉันควรติดตั้งซอฟต์แวร์เช่น netbeans)

ขอขอบคุณ


4
Google Chrome optต้องการใช้ไดเรกทอรีนั้นด้วยเหตุผลบางประการ
Camilo Martin

2
@CamiloMartin ฉันคิดว่ามันเป็นoptional
becko

4
@ เบ็คก็ต้องoptเลือก imal ถ้าโฆษณา Google opted มัน
Camilo Martin

3
แม้ว่าคุณจะอยู่ในตำแหน่งที่ถูกต้องoptมัสไพม์ก็ฟังดูดีกว่า
erm3nda

2
ฮ่า ๆ .. ฉันมาช้าไปงานปาร์ตี้ .. แต่ดูเหมือนว่าคุณมีคนoptเลียนแบบความคิดเห็นมากมาย .. : P
john400

คำตอบ:


71

/optสำหรับแอปพลิเคชันของบุคคลที่สามที่ไม่ต้องพึ่งพาการพึ่งพาใด ๆ นอกขอบเขตของแพคเกจดังกล่าว /usr/localใช้สำหรับแพ็คเกจที่ติดตั้งบนเครื่องนี้นอกขอบเขตของตัวจัดการแพ็กเกจการกระจาย

ตัวอย่าง:

เปิดแหล่งที่มาจิบลูกค้าจัดเป็น .deb /usrจะติดตั้งเป็น ถ้ามันถูกสร้างขึ้นด้วยเฟรมเวิร์ก Qt apt จะดึงมันเข้ามาในฐานะการพึ่งพา

sip-client แบบโอเพ่นซอร์สเดียวกันนั้นจะอยู่ใน/usr/localดังนั้นมันจะไม่ถูกทำให้ยุ่งเหยิงโดย apt หากคุณติดตั้งแพคเกจ. deb ในภายหลังสำหรับแอปพลิเคชันเดียวกัน คุณสามารถสร้างการพึ่งพาจากแหล่งที่มาหรือรับพวกเขาจากผู้จัดการแพคเกจ

แอปพลิเคชันของบุคคลที่สามที่/optควรจะอยู่ในตัวเอง ตัวอย่างเช่น sip-client ที่เป็นกรรมสิทธิ์ซึ่งใช้ Qt จะไม่พึ่งพาเวอร์ชันจาก apt แต่จะให้รวมหรือลิงก์แบบสแตติก

สำหรับข้อมูลเพิ่มเติมโปรดดูที่เป็นระบบแฟ้มลำดับชั้นมาตรฐาน


1
ดังนั้น netbeans ไปที่ / usr / local ตามที่มันขึ้นอยู่กับ jdk และคอมไพเลอร์อื่น ๆ + บวกกับมันตามด้วย linux FHS?
Niroshan

1
คำตอบคือใช่
Egil

1
หากฉันต้องการติดตั้งcondaทั่วโลกตามที่แนะนำที่นี่เป็น/optสถานที่ที่เหมาะสมหรือไม่
Alexey

@Egil ทำไม mac ไม่มีไดเรกทอรี opt
Pacerier

ก่อนหน้านี้ผม upvoted คำตอบนี้ แต่ตอนนี้ผมเห็นว่าข้อสรุปของมันแตกต่างจากนี้Linux Journalบทความ บทความแสดงให้เห็นว่ามีซอฟต์แวร์สำเร็จรูป, มันเป็นเรื่องสำคัญที่ที่จัดแพคเกจ ถ้าแพคเกจจาก repo แพคเกจของ OS แล้วมันควรจะได้รับการติดตั้งไว้ใต้/usr(หรือสันนิษฐานว่าแม้โดยตรงภายใต้/bin, /libฯลฯ ) ตามปกติ /usr/localแต่ถ้ามันมาจากแหล่งอื่นแล้วมันควรจะใส่ลงไป ซึ่งอาจรวมถึง "โอเพ่นซอร์ส sip-client" .debในคำตอบ
sampablokuper

12

/optฉันจะติดตั้งไบนารีเท่านั้นแพคเกจของบุคคลที่สาม

/usr/localสิ่งที่คุณสร้างตัวเองจากแหล่งที่ฉันจะใส่ใน

netbeansอยู่ใน Ubuntu Repos คุณต้องการรุ่นที่เฉพาะเจาะจงหรือไม่?


มีเหตุผลใด ๆ ที่อยู่เบื้องหลังหรือเป็นเพียงการปฏิบัติที่ดี? (ฉันพูดถึง netbeans เป็นตัวอย่าง - ฉันเปลี่ยนส่วนนั้นเพื่อลบความคลุมเครือใด ๆ ) ขอบคุณ
Niroshan

ฉันคิดว่าคำตอบอื่น ๆ พูดได้ดีที่สุด โดยปกติแล้วไบนารีของบุคคลที่สามนั้นมีอยู่ในตัวเอง
Broam

สิ่งที่เกี่ยวกับสิ่งที่ขึ้นอยู่กับ runtimes เช่นซอฟต์แวร์ Python หรือ Java ฉันใส่พวกเขา/optแต่ไม่แน่ใจว่าถูกต้องหรือไม่
Camilo Martin

8

มันคือทั้งหมดที่เกี่ยวกับบรรจุภัณฑ์ หากสิ่งที่บรรจุในวิธี LHS (ใส่ executables ลงในถังขยะ / ไลบรารีลงใน lib / ฯลฯ ) มันควรจะเข้าไปใน / usr / local

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

ดูเพิ่มเติมคำถามนี้เกี่ยวกับ superuser


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