ในฐานะที่เป็นอูเธอร์กล่าวถึง , /usr/local
มีวัตถุประสงค์เพื่อเป็นคำนำหน้าเป็นหลักซอฟต์แวร์ที่ติดตั้งโดยผู้ดูแลระบบในขณะที่/usr
ควรจะใช้สำหรับการติดตั้งซอฟต์แวร์จากแพคเกจการกระจายของ
แนวคิดเบื้องหลังนี้คือการหลีกเลี่ยงการปะทะกันกับซอฟต์แวร์แบบกระจาย (เช่นrpm
และdeb
แพ็คเกจ) และมอบการดูแลเต็มรูปแบบแก่ผู้ดูแลระบบสำหรับคำนำหน้า "local"
ซึ่งหมายความว่าผู้ดูแลระบบสามารถติดตั้งซอฟต์แวร์ที่คอมไพล์เองได้ในขณะที่ยังคงใช้ distro เช่น debian
ซอฟต์แวร์ที่วางใน / หรือ / usr อาจถูกเขียนทับโดยการอัพเกรดระบบ (แม้ว่าเราขอแนะนำว่าการกระจายอย่าเขียนทับข้อมูลใน / etc ภายใต้สถานการณ์เหล่านี้) ด้วยเหตุผลนี้จะต้องไม่วางซอฟต์แวร์ในพื้นที่นอก / usr / local โดยไม่มีเหตุผลที่ดี
เมื่อติดตั้งซอฟต์แวร์เฉพาะผู้ใช้uther แนะนำให้ใช้$HOME
เป็นคำนำหน้าเนื่องจากมั่นใจว่าคุณมีสิทธิ์ในการเขียน โดยส่วนตัวแล้วฉันรู้สึกว่ามัน$HOME/.local
เป็นทางออกที่หรูหรามากขึ้นเพราะมันจะหลีกเลี่ยงความยุ่งเหยิงของคุณ (หวังว่า) ไดเรกทอรีที่ดีและเป็นระเบียบ!
$HOME/.local/share
ถูกนำมาใช้แล้วในfreedesktop.org ข้อกำหนด XDG ฐานสารบบดังนั้นจึงไม่ใช้เวลามากที่จะจินตนาการเพิ่ม$HOME/.local/bin
ไปของคุณ$PATH
และทำให้$HOME/.local/lib
ฯลฯ ในขณะที่คุณกำลังที่จะ
หากคุณไม่ต้องการให้คำนำหน้าของคุณเป็นไดเรกทอรีที่ซ่อนอยู่จริงๆคุณสามารถสร้างลิงก์สัญลักษณ์ได้อย่างง่ายดายเช่น:
ln -s .local ~/local
sidenote
เป็นที่น่าสังเกตว่า.config
(ไม่ใช่.local/etc
) เป็นค่าเริ่มต้นสำหรับ$XDG_CONFIG_HOME
ใช้สำหรับไฟล์ปรับแต่งเฉพาะของผู้ใช้ ฉันควรจะชี้ให้เห็นว่าโชคไม่ดีที่ซอฟต์แวร์ส่วนใหญ่ละเว้น XDG และสร้างไฟล์กำหนดค่าได้ทุกที่ที่ต้องการ (โดยปกติจะอยู่ในรูทของ$HOME
) นอกจากนี้โปรดทราบว่า$XDG_CONFIG_HOME
อาจไม่ได้รับการตั้งค่าหาก$HOME/.config
ต้องการค่าเริ่มต้น
น่าแปลกที่ไม่มีไดเรกทอรีที่สงวนไว้สำหรับไฟล์กำหนดค่าเริ่มต้นของการแจกจ่ายดังนั้นจึงไม่มีทางทราบว่าไฟล์ที่/etc
จัดหาโดย distro หรือแก้ไขโดยผู้ดูแลระบบ