ติดตั้งแต่ละโปรแกรมในแผนผังไดเรกทอรีเฉพาะและใช้StowหรือXStowเพื่อทำให้โปรแกรมทั้งหมดปรากฏในลำดับชั้นทั่วไป Stow สร้างลิงก์สัญลักษณ์จากไดเร็กทอรีเฉพาะโปรแกรมไปยังแผนผังทั่วไป
/usr/local/stowในรายละเอียดมากขึ้นเลือกไดเรกทอรีระดับบนสุดเช่น /usr/local/stow/PROGRAM_NAMEติดตั้งแต่ละโปรแกรมภายใต้ ตัวอย่างเช่นจัดเรียงไฟล์ปฏิบัติการที่จะติดตั้งใน/usr/local/stow/PROGRAM_NAME/binman page ของมัน/usr/local/stow/man/man1และอื่น ๆ หากโปรแกรมใช้ autoconf ./configure --prefix /usr/local/stow/PROGRAM_NAMEเรียกใช้แล้ว หลังจากที่คุณทำงานmake installแล้วให้เรียกใช้stow:
./configure --prefix /usr/local/stow/PROGRAM_NAME
make
sudo make install
cd /usr/local/stow
sudo stow PROGRAM_NAME
และตอนนี้คุณจะมีลิงก์สัญลักษณ์เช่นนี้:
/usr/local/bin/foo -> ../stow/PROGRAM_NAME/bin/foo
/usr/local/man/man1/foo.1 -> ../../stow/PROGRAM_NAME/man/man1/foo.1
/usr/local/lib/foo -> ../stow/PROGRAM_NAME/lib/foo
คุณสามารถติดตามว่าคุณติดตั้งโปรแกรมใดโดยการแสดงรายการเนื้อหาของstowไดเรกทอรีและคุณรู้ว่าโปรแกรมใดเป็นไฟล์อยู่เนื่องจากเป็นลิงก์สัญลักษณ์ไปยังตำแหน่งภายใต้ไดเรกทอรีของโปรแกรมนั้น ถอนการติดตั้งโปรแกรมโดยเรียกใช้stow -D PROGRAM_NAMEแล้วลบไดเรกทอรีของโปรแกรม คุณสามารถทำให้โปรแกรมไม่สามารถใช้งานได้ชั่วคราวโดยการเรียกใช้stow -D PROGRAM_NAME(เรียกใช้stow PROGRAM_NAMEเพื่อให้พร้อมใช้งานอีกครั้ง)
หากคุณต้องการสลับระหว่างเวอร์ชันเดียวกันของโปรแกรมเดียวกันอย่างรวดเร็วให้ใช้/usr/local/stow/PROGRAM_NAME-VERSIONเป็นไดเรกทอรีโปรแกรม การอัพเกรดจากรุ่น 3 ถึง 4 รุ่น, ติดตั้งรุ่นที่ 4 stow -D PROGRAM_NAME-3; stow PROGRAM_NAME-4แล้วเรียกใช้
รุ่นเก่าของ Stow ไม่ได้ไปไกลเกินกว่าพื้นฐานที่ฉันได้อธิบายไว้ในคำตอบนี้ รุ่นใหม่เช่นเดียวกับ XStow (ซึ่งยังไม่ได้รับการบำรุงรักษาเมื่อเร็ว ๆ นี้) มีคุณสมบัติขั้นสูงเช่นความสามารถในการละเว้นไฟล์บางไฟล์จัดการกับ symlink ที่มีอยู่นอกไดเรกทอรี stow (เช่นman -> share/man) จัดการความขัดแย้งบางอย่างโดยอัตโนมัติ โปรแกรมให้ไฟล์เดียวกัน) ฯลฯ
~/software/stowหากคุณไม่ได้หรือไม่ต้องการที่จะใช้การเข้าถึงรากคุณสามารถเลือกไดเรกทอรีภายใต้ไดเรกทอรีบ้านของคุณเช่น ในกรณีนี้เพิ่มที่คุณ~/software/bin PATHหากmanไม่ได้โดยอัตโนมัติพบหน้าคนเพิ่มที่คุณ~/software/man MANPATHเพิ่ม~/software/infoที่คุณINFOPATH, ~/software/lib/pythonที่คุณPYTHONPATHและอื่น ๆ ตามความเหมาะสม