สิ่งที่คุณเห็นว่าเป็นระบบ Unix ที่ทันสมัยไม่ได้เป็นแบบดั้งเดิมจริงๆ
โดยปกติจะมีขั้นต่ำ/
และ/usr
มีลำดับชั้นที่มีเพียงแค่ระบบสาธารณูปโภคจากนั้นโปรแกรมจะถูกติดตั้งแยกต่างหากในไดเรกทอรีย่อย/usr/local
และจากนั้นให้ใช้งานได้โดยการสร้างลิงก์สัญลักษณ์
การตั้งค่าทั่วไปสำหรับซอฟต์แวร์ GNU คือการรวบรวมและติดตั้ง
./configure
make
make install prefix=/usr/local/DIR/program-1
cd /usr/local/DIR
stow program-1
ยูทิลิตี้GNU Stowสร้างลิงก์สัญลักษณ์เพื่อให้ซอฟต์แวร์มีอยู่ในเส้นทางมาตรฐานโดยไม่ต้องเพิ่มไดเรกทอรีใด ๆ ลงในตัวแปร PATH (เช่นเดียวกับ Windows และ cruft มีแนวโน้มที่จะสะสมอยู่ที่นั่น)
ลีนุกซ์รุ่นใหม่จัดส่งทุกอย่างเป็นแพ็คเกจสำเร็จรูปดังนั้นโปรแกรมจึงกลายเป็นส่วนหนึ่งของ "ระบบ" เนื่องจากตัวจัดการแพคเกจดูแลการติดตั้งจึงไม่จำเป็นต้องใช้ลิงก์สัญลักษณ์และการแยกโปรแกรมไม่ได้ทำหน้าที่เป็นประโยชน์ (แต่จะทำให้การเริ่มต้นโปรแกรมช้าลงเนื่องจากจะต้องสแกนไดเรกทอรีขนาดเล็กจำนวนมาก)
หากคุณต้องการติดตั้งซอฟต์แวร์ลงในโฮมไดเร็กตอรี่ของคุณฉันขอแนะนำให้คุณใช้ GNU stow เช่นกัน - สิ่งนี้จะช่วยให้คุณแยกโปรแกรมของคุณออกจากกันซึ่งเหมาะสมถ้าคุณไม่ได้ใช้โปรแกรมจัดการแพ็คเกจ
การตั้งค่าดั้งเดิมของฉันสำหรับที่เป็นหนึ่งในไดเรกทอรี~/software/DIR
ที่ผมติดตั้งโปรแกรมลงแล้วใช้ภายใน Stow DIR
การสร้าง~/software/bin
, ~/software/share
ฯลฯ ซึ่งหมายความว่าฉันมีเพียงแค่เพิ่ม~/software/bin
ให้กับตัวแปร PATH ที่จะได้รับการติดตั้งซอฟต์แวร์ของฉันทั้งหมด
ใช้:
./configure --prefix=~/software
make
make install prefix=~/software/DIR/program-1
cd ~/software/DIR
stow program-1
เพื่อติดตั้งถ้าโปรแกรมปฏิบัติตามอนุสัญญา GNU