GNU/Stow bir süredir bildiğim fakat
bir türlü deneme fırsatı bulamadığım çok basit bir paket veya sembolik link
yöneticisi. Her ne kadar /usr/local
içerisindeki linkleri yönetmek için
düşünülmüş olsa da, esnek yapısı nedeniyle kullanım alanlarından biri de ev
dizininde bulunan yapılandırma dosyalarını (yani nokta dosyaları ya da
dotfiles) yönetmek.
Örneğin ~/dotfiles
içerisinde x
ve zsh
adında iki dizininiz var. Bu
dizinler stow için aslında birer paket ve diyelim bu paketlerin yapısı
şu şekilde:
~/dotfiles
├── x
│ ├── .i3
│ │ └── config
│ ├── .Xdefaults
│ ├── .xsession
│ └── ...
└── zsh
├── .zlogin -> .zprezto/runcoms/zlogin
├── .zlogout -> .zprezto/runcoms/zlogout
├── .zprezto
│ └── ...
├── .zpreztorc -> .zprezto/runcoms/zpreztorc
├── .zprofile -> .zprezto/runcoms/zprofile
├── .zshenv -> .zprezto/runcoms/zshenv
└── .zshrc -> .zprezto/runcoms/zshrc
Eğer kullandığınız ve herhangi bir x ortamı bulunmayan bir sunucuda, sadece
zsh ayarlarınızı kullanmak isterseniz stow zsh
dediğinizde,
stow sizin için sadece zsh dizini altında bulunan dosyalar ve dizinlerin
ev dizininde yer alan gerekli linklerini oluşturacaktır. Bu şekilde
yapılandırma dosyalarınızı paketlere bölerek, istediğiniz
yapılandırmayı istediğiniz makinada rahatça kullanmanızı sağlıyor.
Bir başka örnek kullandığım
yapılandırma dosyalarım verilebilir.
git
in sağladığı dağıtık model ile her zaman tüm makineler arası
senkronize olan bu dosyalar, stow ile de sadece gerekli makinede gerekli
uygulamaları yapılandırmak için kullanılabiliyor.