23 Haziran 2011 Perşembe

Çok Dağıtım, Tek Kullanıcı

Yeni bir yazı ile karşınızdayız. Sanki 10 kişiyiz :D Yok sadece ben varım. Neyse bu yazının içeriği bir problem için ürettiğim çözümü içeriyor olacak. Teknik bilgi kısmına girme ihtimalim var. O yüzden sıkılınca bırakın. Hatta ilginizi çekmiyorsa boşa okumakla uğraşmayın :D

Problemden bahsetmeden önce bir giriş yapayım. Elif'te(bilgisayarımın adı) 2 ayrı linux dağıtımı kullanıyorum. Birisi Pardus 2011.1 diğeri Ubuntu 11.04. Bu iki dağıtım için de aynı sabit diski ev dizini olarak bağlıyorum. Ev dizinlerini ortak yaptığım için kullanıcı adlarının farklı olması gerekiyor ki kullanıcıların evlerindeki ayarlar birbirine girmesin.

İşte problem burada başlıyor. Ben internet ortamında "osmank3" kullanıcı adıyla bilindiğim gibi bilgisayarımda da bu kullanıcı adını kullanmak taraftarıyım. Dağıtımlardan birisi bu ismi kullandığında diğerine başka bir isim vermem gerekiyor ayarlar karışmasın diye. İşte ben takıntılı birisi olduğum için bu durumdan rahatsız
oluyorum. Kullanıcı adları aynı olsun, iki kullanıcı da aynı dizini kullansın istiyorken ayarların da karışmamasını istemek birazcık garip olsa gerek.

Bir önceki yazımda geçen 2 haftanın sonunda kendime yapacak bir iş bulamadım. Boş boş gezinmektense oturup bir betik yazayım da vakit geçsin dedim. Dün akşama doğru yazmaya başladım betiği. Arasıra ara versem de gece 3 gibi betiğin bir halta benzemediğini fark edip sabaha bıraktım. Sabah -aslında öğlen- kalkınca yazdım betiği.

Betik ne iş yapıyor? Betik kullanıcının ev dizinindeki adı nokta ile başlayan ayar dosyalarını dağıtım adına göre bir dizine taşıyor, kullanıcının ev dizininden taşınan dosyalara kısayol oluşturuyor. Bilgisayar her açılışında bu bağlantıları kuruyor, her kapanışta da yeni dosya eklenmişse onu taşıyıp bağlantıları kesiyor.

Betiğin ne iş yaptığından bahsettik. Şimdi biraz da kullanımından bahsedeyim. Aslında kullanımı çok basit. Betiğin adını
linker.py koymuştumdeğiştirdim prephome.py. Bağlantı kurmak için linker.py prephome.py start bağlantı kesmek için de linker.py prephome.py stop komutlarını vermek yeterli. Komutlardan da anlaşılacağı üzere sistem başlangıcına start olanı sistem kapanışına stop olanı eklemeniz betiği kullanabilmek için yeterli.

Betik içinde bir karaliste mevcut. Bu listeye eklenen dosya veya dizinler bu işlemlerde es geçilir. Bunun sebebini şöyle açıklayayım. Mesela Pardus'ta .pulse isimli dizin bağlantı olursa nedenini bilmesem de gelişmiş ses ayarları yapılamıyor, clementine sapıtabiliyor. O yüzden .pulse'yi kara listeye aldım. Benzer şekilde .gvfs dosyası da ubuntuda hata çıkartıyordu. O da karalistede. Bunlar benim test edip görebildiklerim. Betiği deneyip bana başka dosya ve dizin adı iletirseniz onları da eklerim.

Sistem başlangıcına nasıl ekleyeceğiz sorusunu duyar gibi oldum cevaplayayım. Öncelikle betiği indirip /bin veya /usr/bin dizini altına koyup çalıştırılabilir hale getirin (sudo chmod +x /usr/bin/
linker.pyprephome.py). Pardus ve birçok dağıtımda /etc/conf.d/local.start ve /etc/conf.d/local.stop dosyaları mevcut. Betiği kullanmak için gerekli komutları bu iki dosyaya eklemeniz yeterli. Ubuntuda bu dosyaları bulamadım ama araştırmalarım sonucu bunlar gibi çalışan bir şey buldum. O şeyi bu bağlantıdan edinip ilgili eklemeleri yapabilirsiniz.

Çok önemli bir şeyden bahsetmem gerekiyor. Masaüstü oturumunuz açıkken bu betiği çalıştırmamanız kendi açınızdan çok iyi olacaktır. Sistem başlangıcı ve kapanışına koymanızı tavsiye etmemin sebebi yapılan işlemler sırasında veri kaybı olmaması için bu ayar dosyalarının kesinlikle kullanılyor olması gerekiyor.

Yazının sonuna gelirken betiğin bağlantısını vermeyi unuttuğumu fark ettim.

Buradan betiği indirebilir ve inceleyebilirsiniz.

Ha birde bu işi yapacak uygulama belki daha önceden
yazılmıştır. Ama ben sıkıntıdan araştırmadım ve kendim yazayım dedim. Varsa böyle bir uygulama belki ondan da faydalanabilirim.

Düzenleme: betik adı linker.py -> prephome.py şeklinde değiştirildi.