.dot dosyaları ve bunların yönetimi

Merhaba sevgili yazılımperver dostlarım, bu yazımda sizlere “dot files” ‘tan ve bunları nasıl yönetebileceğinizden bahsediyor olacağım.

Linux kullanan takipçilerimin muhtemelen vakıf olduğu, olmadıysa da yakında olacağı bir konu bu. Peki ama nedir bu dot dosyaları?

Dot Dosyları Nedir?

Dot dosyaları, Unix benzeri işletim sistemlerinde (Linux, Mac), uygulamalara ait konfigürasyonların/uyarlamaların tutulduğu gizli dosyalardır. İsmini dosyanın başında bulunan “.”‘ dan alır ve genelde home dizinlerinde olur.

İlerlemeden hemen örnek dot dosyalarına bir göz atalım. Aşağıda kendi makinemde, nispeten yeni oluşturulmuş bir kullanıcı home dizininde, ls yazdığımda gördüğüm çıktı:

Şimdi de gizli dosyaları göstermek için kullandığım  ls -a | grep "^\." komutu ile elde ettiğim çıktı:

Yukarıdaki .bashrc/.zshrc örneğin, bash/zshell shell’lerine yönelik konfigürasyonları içerir. Diğerleri de benzer amaçlara hizmet etmektedir. Peki, en çok hangi dot dosyaları ile karşılaşıyor olacaksınız? Hemen bir kaç örneğe göz atalım:

  • .bashrc/.zhrc: Kabuk konfigürasyon dosyaları. En öncelikli el atılması gereken dosya budur. Buraya özellikle kısaltmalar (“aliases”), ortak ortam değişkenleri ve tekrar tekrar yapılmaması istenen işlevler,
  • .gitconfig: En çok kullanılan kaynak kod kontrol aracı olarak kullanılan .git’e yönelik bütün repolar için geçerli olacak olan ayarlar (kullanıcı isimleri, git komut kısaltmaları, vb.)
  • .vimrc/.config/nvim: Sık kullanılan vim ya da neo vim editör ayarları.

Burada bu konfigürasyon dosyaları ile tek tek neler yapılacağına girmeyeceğim ama internette bunlara yönelik oldukça fazla kaynak var onlara başvurabilirsiniz.

Peki bu dosyalar ile ne yapacağım?

Evet güzel bir soru. Uzun bir süre Linux ile çalışmaya başladığınızda, kendinize özel bir takım ayarlamaları ya da özelleştirmeleri her seferinde yapmak yorucu ve vakit alıcı olabiliyor. Ayrıca bu dosyaları ayarladıktan sonra, kullanıcınıza, bilgisayarınıza ya da benzeri beklenmedik bir durumda, bütün bu ayarlar kaybetmek de istemezsiniz. İşte bu yüzden bu dosyaları, saklamak ve yönetmek sizler için doğru bir tercih olacaktır.

Neyse, özetleyecek olursak, dot dosyalarını yönetmek/tutmak size aşağıdakilerini sağlar:

  • Ayarlamala ve uyarlamaları yedekleme,
  • Ayarlamala ve uyarlamaları birden fazla cihaz arasında paylaşma,
  • Üretkenliği arttırma ve zaman

Tabi burada şu hususa da dikkat etmekte fayda var ki, bu kapsamda şifre, API anahtarları, SSH/GPG anahtarlarını kesinlikle git ve benzeri yerlerde tutmamalısınız. Bunu da bir sonraki başlıkta vereceğim yöntem göre, .gitignore ya da benzeri yöntemler ile yapabilirsiniz.

Nasıl uyarlayabilirim?

Şimdi gelelim bu yazımızın en önemli başlığına. Tamam dot dosyalarının ne olduğunu anladım, neler için kullanacağımı da anladım, peki bunları makineler ya da kullanıcılar arasında nasıl paylaşacağım?

Bunun için açıkçası genel kabul görmüş bir kaç yöntemden kısaca bahsedeceğim. Bunlar:

  • El ile indirip kopyalama,
    • Sanırım bu en açık yöntem. Bu kapsamda bu dosyaları ister .zip’leyerek ister de farklı şekillerde manuel olarak kopyalayabiliriz,
    • Bu dosyalar google drive/dropbox tarzı araçlarda tutulabilir,
  • Git benzeri kaynak kontrol araçları,
    • Bu araçları kullanarak bunları saklamak ve yeni makinelere bu araçlar üzerinden taşımak,
  • Bu amaçla oluşturulmuş farklı araçları kullanarak,
    • Bu problem bir çok geliştirici tarafından fark edildikten sonra bu amaçla araçlar geliştirilmeye başlandı,
    • Bunlardan en yaygın olanlarından birisi de GNU Stow’dur. Bu araç, otomatik sembolik link yaratmada yardımcı olan bir araçtır,
    • GNU Stowa yönelik daha detaylı bilgiler için kaynaklara bir  takım sayfalar ekledim, merak edenlere bunlara bakabilir,
    • Buna benzer şekilde geliştirilen diğer araçlara https://dotfiles.github.io/utilities/ sayfasından ulaşabilirsiniz.

Ben de kendi konfigürasyon dosyalarım için, HackerNews kaynağında belirtilen şekilde bare git repository yaklaşımını kullanacağım. Normal git repo’ları ile git bare repo’ları arasındaki fark için kaynaklara göz atabilirsiniz. Bu yaklaşımda, konfigürasyon ve ilgili dosyalara yönelik git dizini farklı bir dizinde tutuluyor (Ör. .config ya da .cfg), bu sayede home dizinindeki olası bir Git reposu ile de karışma ihtimali kalmıyor.  Ayrıca,bu dosyların güncellenmesi ve benzeri işlevler için kullanılabilecek git komutları için özelleşmiş komutlar hazırlanıyor ve bunlar kullanılıyor. Bu özelleşmeler de yine .bashrc ve .zshrc dosyaları içerisinde tutuluyor.

Evet sevgili dostlar, umarım bu dot dosyalarına bir nebze de olsa ışık tutabilmişimdir.

Burada bahsettiklerimi uygulamaya geçirdiğim ve örnek olarak kullanılabilecek bir dot file repository’sine aşağıdaki adresten ulaşabilirsiniz. İlgili repo’da dot file’lar yanında, gerekli kurulumlar için de betikleri bulabilirsiniz.

https://github.com/yazilimperver/dotfiles

Bir sonraki yazımda görüşmek dileğiyle kendinize çok iyi bakın.

Kaynaklar

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.