Dotfiles, Türkçe karşılığı ile nokta dosyaları, ismindeki ilk karakteri .
olan ve konfigürasyon barındıran gizli düz metin dosyaları diyebiliriz. Bu dosyalar git aracınızı da konfigüre ediyor olabilir, komut satırında kullandığınız fonksiyonları da.
Stow ve nokta dosyalar
GNU/Linux veya benzerini kullanıyorsanız, zaten birçok dotfile'a sahipsinizdir. Örneğin, ~/.bashrc
veya varsa ~/.gitconfig
dosyanıza bir göz atın. Bunlar üzerinde kendi düzenlemelerinizi yaptıkça, bu değişiklikleri saklamak ve yönetebilmek isteyeceksiniz. Stow aracı bu konuda bana çok yardımcı oluyor ve dotfile'larımı git gibi bir versiyon kontrol sistemi ile yönetebiliyorum.
Stow nasıl yüklenir?
Arch:
pacman -S stow
Ubuntu:
apt-get install stow
Stow nasıl kullanılır?
Stow'un çalışma mantığı basit. Örnek üzerinden gidelim. SSH ile alakalı konfigürasyon dosyalarımızı yönetmek istiyoruz. Bu dosyaları ~/.ssh
klasöründe bulabiliriz.
Şimdi dotfiles
isminde bir klasör oluşturun. İçine de ssh
isminde bir başka klasör oluşturun. Az önce kopyaladığınız .ssh
klasörünü de, versiyon kontrol sisteminizde teşhir etmek istemediğiniz dosyaları hariç tutarak içeriğiyle birlikte bu ssh
klasörünün içine yapıştırın. Şöyle bir yapı oluşacak:
dotfiles
└── ssh
└── .ssh
└── config
Artık ssh modülümüz Stow ile yönetilebilir. Bu dotfiles
klasörünüzü saklamak istediğiniz yere taşıyın. Ben ana dizinde gizli klasör olarak tutuyorum: ~/.dotfiles
. Deneme yapmak için, ~/.ssh
klasörünüzdeki az önce kopyaladığınız dosyaları silin. Aşağıdaki komutu çalıştırın:
$ stow ssh
# eğer `dotfiles` klasörünüz ana dizinde değilse:
$ stow -t ~/ ssh
Bu komutla birlikte Stow, ana dizininizde klasör yapısını da koruyarak sembolik linkler oluşturuyor. Yani şimdi yine bir ~/.ssh
klasörünüz var ama bu kez ~/dotfiles
klasörüne sembolik linkler barındırıyor. Yani asıl dosyalar ~/dotfiles
klasörünüzde:
$ ls -la ~/.ssh
drwx------ 2 user user 4096 Nov 12 16:50 .
drwx------ 44 user user 4096 Nov 12 16:50 ..
lrwxrwxrwx 1 user user 28 Nov 12 2021 config -> ../dotfiles/ssh/.ssh/config
Yeni bir bilgisayara geçtiğinizde yapmanız gereken tek şey bu dotfiles
klasörünü bu bilgisayara kopyaladıktan sonra stow komutu ile yedeklerinizi stow'lamak.
dotfiles klasörü içine oluşturduğunuz diğer klasörlerin (modüllerin) içine ne koyarsanız, Stow aracı bu dosyalara sembolik linkler oluşturur ve bunları da varsayılan olarak ebeveyn dizine yerleştirir. Olay bundan ibaret. Varsayılan hedef dizini -t DIR, --target=DIR
seçeneğiyle değiştirebilirsiniz.