Debian Gnu/Linux (Sarge) ile GmailFS

Debian Türkiye sitesinden

Debian Gnu/Linux (Sarge) ile GmailFS (Gmail Dosya Yapısı) Kullanımı ve Özellikleri Yazan : Serdar Aytekin - serdar~aytekin.web.tr Versiyon : 1.0.0 Son Güncellenme Tarihi : 07-09-2004

Giriş :

Belgede yazılanların uygulanıp uygulanmaması tamamen uygulayan kişinin sorumluluğundadır. Belgede bahsedilenlerin uygulanması sonucu ortaya çıkabilecek hertürlü zarardan yazar sorumlu tutulamaz. Belge GNU Özgür Belgeleme Lisansının http://www.gnu.org/copyleft/fdl.html adresinde yer alan -son sürümdeki- lisans içeriğine bağlı kalmak koşulu ile aynen yada kısmen dağıtılabilir, yayınlanabilir.

Bu belgenin son sürümüne;

http://www.debian-tr.org/?q=debian-gmailfs veya

http://www.serdaraytekin.com/docs/os/debian/debian-gmailfs.html adresinden ulaşabilirsiniz.

GmailFS Nedir ?

GmailFs, Gmail (google mail) için özel olarak oluşturulmuş bir dosya sistemi yapısıdır. FUSE (Filesystem in USErspace) modülünü kullanarak, gmail hesabınızda size verilen disk alanını kendi diskiniz makinenize ayrı bir disk alanı olarak bağlamınızı (mount) ve bu alanı normal bir disk alanı gibi kullanmanıza olanak sağlar. Bu alanda echo,cat,ln,ls,rm,mv gibi alışık olduğumuz linux komutlarını kullanabilir, dosyalarınız bu alana yükleyebilirsiniz. Kısaca bu işleme, gmail'in diskinden kendi makinenizin diskine 1000 M'lık bir alanı bağlama (mount) operasyonu diyebiliriz :)

Sistem temel bileşenler olarak; FUSE (Filesystem in USErspace), libgmail (Python dili ile yazılmış, gmail web-mail servisine ulaşmayı sağlayan uygulama) ve yine Python ile yazılmış Gmailfs (gmail'deki disk alanını sistemimize bağlamayı sağlayan dosya yapısı) yapısından oluşur.

GmailFS Resmi Web Adresi : http://richard.jones.name/google-hacks/gmail-filesystem/gmail-filesystem.html

LibGmail : http://libgmail.sourceforge.net

FUSE : http://sourceforge.net/projects/avf

GmailFS Kurulumu :

   * apt-get install fuse-source
   * cd /usr/src/
   * tar -zxvf fuse.tar.gz
   * cd /usr/src/modules/fuse
   * ./configure (veya "./configure --with-kernel=/usr/src/kernel-headers-2.6.7-1-386" benzeri bir komut.Detay için aşağıdaki açıklamayı okuyunuz.)

Açıklama : Şayet kullandığınız kernel versiyonuna ait kernel kaynak kodları veya kernel header dosyanız yoksa yukarıdaki "./configure" komutu yerine aşağıdaki yönergeleri takip ediniz.

"uname -r" komutu ile kernel versiyonunuzu öğrenin (örn: 2.6.7-1-386), daha sonra bu versiyona sahip kernel-headers dosyasını bulup sisteme kurmamız gerekiyor. Onun içinde;

   * apt-cache search kernel-headers*

ile index'imizde var olan kernel headerlarını listeleyip, yukarıdaki örneğimiz için kernel-headers-2.6.7-1-386 dosyasını,

   * apt-get install kernel-headers-2.6.7-1-386 (Bu örnekdir sizin içinde bu dosya gereklidir anlamında değildir.)

ile sisteme kuruyoruz. Daha sonra yukarıdaki configure işlemini artık şu şekilde yapıyoruz.

   * ./configure --with-kernel=/usr/src/kernel-headers-2.6.7-1-386

Yukarıdaki işlem hatasız sonuçlandı ise, devam ediyoruz.

   * make;make install
   * modprobe fuse
   * apt-get install python2.3-dev
   * cd ~/
   * wget http://richard.jones.name/google-hacks/gmail-filesystem/fuse-python.tar.gz
   * tar -zxvf fuse-python.tar.gz
   * cd fuse-python
   * python setup.py build
   * python setup.py install
   * cd ~/
   * wget http://voxel.dl.sourceforge.net/sourceforge/libgmail/libgmail-0.0.8.tgz
   * tar -zxvf libgmail-0.0.8.tgz
   * cd libgmail-0.0.8 cp *.py /usr/lib/python2.3/site-packages/
   * cd ~/
   * wget http://richard.jones.name/google-hacks/gmail-filesystem/gmailfs.tar.gz
   * tar -zxvf gmailfs.tar.gz
   * cd gmailfs
   * cp gmailfs.py /sbin/
   * cp gmailfs.py /usr/local/bin/gmailfs.py

Evet, şimdi kurulum tamamlandı, artık kullanmaya geldi sıra, Bağlama (mount) işlemi için

   * mkdir ~/gmail-acc (buraya bağlama işlemi yapacağım için oluşturuyorum.siz farklı bir dizine bağlayabilirsiniz tabiki.)
   * mount -t gmailfs /usr/local/bin/gmailfs.py ~/gmail-acc -o username=username,password=passwd,fsname=gmailFs

/etc/fstab dan otomatik olarak mount işlemini yapabilmek için;

   * /usr/local/bin/gmailfs.py /mount/yeri/ gmailfs noauto,username=gmail_kullanıcınız, password=gmail_sifreniz, fsname=TahminEdilmesiZorBirsey

NOT : fsname ile belirtilen kısımda,basit bir ifade olmamak koşulu ile (fsname tahmin edilmesi güç bir ifade olmalı) istediğiniz ismi kullanabilirsiniz. Bu sizin google dosya sisteminizin ismi olacaktır. Başkalarınını burada vereceği tanımlama ile çakışmaması gereklidir. örn: fsname=MyGmailAccX2004 vb. gibi.

Evet artık bağlama işlemi tamam,

   #df -h ~root/gmail-acc/
   Dosyasistemi 	1K-blok 	Dolu 	Boş 	Kullanılan 	Bağlanılan Yer
   gmailfs
   	
   1000M
   	
   0
   	1000M 	
   0%
   	
   /root/gmail-acc

Görüldüğü üzere, Gmail hesabımızdaki 1000M'lık (1 GB) disk alanını kendi diskimize bağlamış olduk.

LibGmail'in Getirdikleri, Getirecekleri :

LibGmail birçok avantaj sunacak, ve sunmaya başladı.libgmail dizininde "demos" isimli bir dizin var. Bu dizine girip kontrol ettiğimizde archive.py, gmailftpd.py, gmailpopd.py, gmailsmtp.py ve sendmsg.py isimli uygulamalar göze çarpıyor. Yaptığım denemelerde "sendmsg.py" uygulamasını başarı ile çalıştırabildim :) Buna ilişkin kullanım:

~/libgmail-0.0.8/demos#./sendmsg.py <gmail_kullanıcı_adınız> <mail_gideceği_adres> <konu> <konu_içeriği>

daha sonra size gmail şifresiniz soracak, ve şifre doğrulamasından sonra mailiniz gönderilecek. www.gmail.com adresinden hesabınıza giriş yapıp, konsoldan "sendmsg.py" ile göndermiş olduğunuz e-postayı "Sent Mail" kısmında görebilirsiniz.

LibGmail , aşağıdaki avantajları sunuyor;

   * Gmail hesabınızdaki maillerinizi mbox formatında tutabileceksiniz.
   * Gmail hesabınızı SMTP sunucusu olarak kullanabileceksiniz.
   * Gmail hesabınızı POP sunucusu olarak kullanabileceksiniz.
   * Gmail hesabınızı FTP sunucusu olarak kullanabileceksiniz.

Detay için : http://libgmail.sourceforge.net

TESTLER :

   * cd ~/gmail-acc
   ~/gmail-acc#echo "test test" > test.txt
   ~/gmail-acc# ls -al
   toplam 1
   -rw-r--r-- 0 root root 10 2004-09-07 11:16 test.txt
   ~/gmail-acc# cat test.txt
   test test
   ~/gmail-acc#rm test.txt
   ~/gmail-acc# cp ~root/libgmail-0.0.8.tgz .
   ~/gmail-acc# ls -al
   toplam 19
   -rw-r--r-- 0 root root 18803 2004-09-07 11:49 libgmail-0.0.8.tgz
   Şimdi www.gmail.com adresinden gmail hesabıma login olup inbox'a bakıyorum.
     Evet, benim konsoldan kopyaladığım dosya inbox'ımda duruyor (konu başlığında felan karışık ifadeler var sanırım encoding problemleri mevcut ve birden fazla e-posta görünüyor ama olsun, ileride bunlarında düzeleceğine inanıyoruz. Google'a güveniyoruz :)
     Ek (attach) görünen e-postaya tıklayıp, eki indiriyorum. İsmi tmp7n3hhh ve boyu 18K olarak görünüyor bizim libgmail-0.0.8.tgz. tmp7n3hhh isimli dosyayı masaüzerime kaydedip, ismini libgmail-0.0.8.tgz olarak değiştirip, dosyayı açtığımda sağlıklı bir şekilde arşiv içindeki dosyalara ulaşabildiğimi görüyorum.
     NOT : Dosyalarınızı rm komutu ile konsoldan sildiğinizde, dosyanız gmail hesabınızda Trash dizinine atılacaktır (şu anki libgmail'in versiyonu tamamen temizlemeyi desteklemediği için) . Bu dosyayı tamamen temizlemek için gmail hesabınıza login olduktan sonra Trash dizinini temizlemeniz gerekliAnlaşılan o ki; google yine hayatımızı kolaylaştıran yenilikleri ve sistemleri ile bizleri şaşırtmaya ve Gmail'i halihazırda var olan diğer web-mail sistemlerinden daha ön plana çıkaracak özellikler sunmaya devam edecek.
     http://sourceforge.net/search/ adresinde gmail diye bir arama yaparsanız, gmail ile ilgili bir çok projenin başladığını göreceksiniz. KCheckGmail , Poogle , GMailbox bunlardan bazıları.