Instal setiap program dalam pohon direktori khusus, dan gunakan Stow atau XStow untuk membuat semua program muncul dalam hierarki umum. Stow membuat tautan simbolis dari direktori khusus program ke pohon umum.
Secara lebih rinci, pilih direktori tingkat atas, misalnya /usr/local/stow
. Instal setiap program di bawah /usr/local/stow/PROGRAM_NAME
. Sebagai contoh, atur agar executable-nya dapat diinstal /usr/local/stow/PROGRAM_NAME/bin
, halaman manualnya /usr/local/stow/man/man1
dan sebagainya. Jika program menggunakan autoconf, maka jalankan ./configure --prefix /usr/local/stow/PROGRAM_NAME
. Setelah Anda menjalankan make install
, jalankan stow
:
./configure --prefix /usr/local/stow/PROGRAM_NAME
make
sudo make install
cd /usr/local/stow
sudo stow PROGRAM_NAME
Dan sekarang Anda akan memiliki tautan simbolis seperti ini:
/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
Anda dapat dengan mudah melacak program apa yang telah Anda instal dengan mendaftar isi stow
direktori, dan Anda selalu tahu program apa yang dimiliki file karena itu adalah tautan simbolis ke lokasi di bawah direktori program itu. Hapus instalasi program dengan menjalankan stow -D PROGRAM_NAME
lalu menghapus direktori program. Anda dapat membuat program sementara tidak tersedia dengan menjalankan stow -D PROGRAM_NAME
(jalankan stow PROGRAM_NAME
untuk membuatnya tersedia lagi).
Jika Anda ingin dapat dengan cepat beralih di antara berbagai versi program yang sama, gunakan /usr/local/stow/PROGRAM_NAME-VERSION
sebagai direktori program. Untuk memutakhirkan dari versi 3 ke versi 4, instal versi 4, lalu jalankan stow -D PROGRAM_NAME-3; stow PROGRAM_NAME-4
.
Stow versi lama tidak terlalu jauh melampaui dasar-dasar yang saya jelaskan dalam jawaban ini. Versi yang lebih baru, serta XStow (yang belum dipelihara akhir-akhir ini) memiliki fitur yang lebih canggih, seperti kemampuan untuk mengabaikan file tertentu, lebih baik mengatasi symlink yang ada di luar direktori penyimpanan (seperti man -> share/man
), menangani beberapa konflik secara otomatis (ketika dua program menyediakan file yang sama), dll.
Jika Anda tidak memiliki atau tidak ingin menggunakan akses root, Anda dapat memilih direktori di bawah direktori home Anda, mis ~/software/stow
. Dalam hal ini, tambahkan ~/software/bin
ke PATH
. Jika man
tidak secara otomatis menemukan halaman manual, tambahkan ~/software/man
ke halaman Anda MANPATH
. Tambahkan ~/software/info
ke Anda INFOPATH
, ~/software/lib/python
ke Anda PYTHONPATH
, dan seterusnya sebagaimana berlaku.