Dotfile'ları Stow ile yönetmek

2021-08-16 2 dk

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.

Tarih: 2021-08-16
Kategoriler: gnu linux
Etiketler: stowdotfiles