20 Haziran 2008 Cuma

Dosya Sıkıştırma - tar, gz, bz2, 7z, rar...

Linux'un neredeyse ortaya çıktğı günden beri kullandığı temel sıkıştırma biçimleri tar.gz ve tar.bz2'dir. Bunlar dışında bir çok biçimi de destekler.

MS Windows ortamında WinRAR'ın haklı bir yaygınlığı vardır. Bu yüzden herhangi bir yerde rar biçimli dosyalara rastlamak oldukça olasıdır. Rar, patentli bir dosya sıkıştırma yöntemi olduğundan dolayı Ubuntu ilk kurulduğu hali ile rar dosyalarını desteklemez. rar dosylarını açmak için rar, unrar ya da unrar-free paketlerinden birini, rar oluşturmak için ise rar paketini kurmanız gerekmektedir. Hemen belirtelim ki kullanılabilecek paketlerin hiç biri grafik ara birim sunmamaktadır. Bu paketlerden rar ve unrar WinRar'ın kendisi tarafından sağlanmaktadır, özgür yazılım değildir. Bu yüzden bu paketleri kurabilmek için Multiverse deposu seçili olmalıdır. unrar-free için ise Universe deposunun seçili olması yeterlidir.


Sistem -> Yönetim -> Yazılım Kaynakları 'na tıklayarak bahsedilen depoları seçebilirsiniz.

unrar-free paketi rar'ın 2. sürümünü desteklemekte, 3. sürümünü desteklememektedir. Ben unrar-free kullanıyorum ve rar sıkıştırması yapmıyorum. Şimdiye kadar açamadığım dosya da olmadı. Siz de durumunuza uygun bir paketi seçin ve kurun. Synaptic'i ya da Aptitude'u kullanabileceğiniz gibi uçbirimi (Uygulamalar -> Donatılar -> _Uçbirim) de kullanabilirsiniz. Eğer depoları değiştirdiysek öncelikle uçbirimden;

$ sudo apt-get update

veya
$ sudo aptitude update


diyerek depoları güncelliyoruz. Daha sonra da seçiminize göre;

$ sudo apt-get install unrar-free

veya
$ sudo aptitude install unrar-free


diyerek unrar'ı kuruyoruz. Uygulama kurulduktan sonra rar dosyalarını açmak için yapmamız gereken uçbirimi açarak rar dosyasının olduğu dizine gelmek. Daha sonra;

$ unrar-free dosyaAdi.rar


diyerek dosyayı açabiliriz.

MS Windows ortamında yaygınlaşan bir başka dosya sıkıştırma biçimi ise 7z. Oldukça iyi sıkıştırma oranları sunan bu biçimin de desteği Ubuntu içinde hazır olarak gelmiyor. Ubuntu'nun 7z dosyları ile işlem yapabilmesi için p7zip paketini yüklememiz gerekiyor:
sudo apt-get p7zip


Bu paketi yükledikten sonra 7z dosyalarını çift tıklayarak açabilir ya da sıkştırmak istediğimiz dosyaları seçip, sağ tıklayarak, Arşiv Oluştur seçeneğini seçebilir ve buradan 7z soyadını deçebiliriz.



Linux Sıkıştırma Biçimleri

Yukarıda bahsettiğimiz üzere Linux yerel ve genel olarak iki sıkıştırma biçimi kullanır. Bunlar gzip (gz) ve bzip2 (bz2) dir. Bu sıkıştırma biçimleri birden fazla dosya üzerinde işlem yapmazlar. Yalnızca tek bir dosyayı sıkıştırırlar. Örneğin bir .tiff dosyasını ya da .xcf [1] dosyasını sıkıştırmak için

$ bzip2 dosya.tiff

veya
$ gzip dosya.tiff


komutlarını, açmak için

$ bunzip2 dosya.tiff.bz2

veya
$ gunzip dosya.tiff.gz


komutlarını kullanabilirsiniz.

Birden fazla dosyayı bu şekilde teker teker sıkıştırmak ve saklamak mantıklı olmayacağı için tar adı verilen başka bir sistem kullanılır. tar programı tek başına kullanıldığında yalnızca dosyaları art arda koyarak tek bir tar dosyası (tar ball - tar topu) oluşturur. Bu dosyayı yukarıdaki yöntemleri kullanarak ayrıca sıkıştırabilir ya da tar'ı kullanırken gerekli parametreleri verip tek bir komutla sıkıştırabilirsiniz. tar ile sıkıştırılan dosyayı sıkıştırmak için;

$ tar -cjf  dosyaAdi.tar.bz2 dizin


komutunu, açmak için

$ tar -xjvf  dosyaAdi.tar.bz2


komutunu kullanabilirsiniz.

Açıklama:
  • -c (create): sıkıştırılmış arşiv oluşturur.
  • -j (bzip2): sıkıştırmak için bzip2 yöntemi kullanılır.
  • -f (file): sıkıştırılmış ya da açılmış dosyanın adını belirtir.
  • -v (verbose): açılan her dosyayı ekrana yazar.
  • -z (zip): -j yerine kullanılırsa bzip2 yerine gzip yönetimini kullanarak sıkıştırır.

Bütün bu işlemleri yapmak için Arşiv Yöneticisi'ni de kullanabilirsiniz. Açmak için sıkıştırılmış dosyaya çift tıklamanız ya da sıkıştırılacak dosyaya sağ tıklayıp Arşiv oluştur demeniz yeterlidir.

[1] Resim düzenleyici GIMP'in dosya biçimidir. GIMP bu dosyalar üzerinde sıkıştırılmış .xcf.bz2 biçiminde de işlem yapabilir.


24 Mayıs 2008 Cumartesi

Ubuntu'muzu ayarlayalım - OpenOffice'de Yazım Denetimi

Bildiğiniz üzere OpenOffice.org Ubuntu içinde standart gelen ofis paketidir. Oldukça güzel ve yeterli olmasına rağmen en gerekli şeylerden biri olan Türkçe yazım denetimi ile gelmiyor. Yazım denetimini ayrıca kurmak gerekiyor.

OpenOffice.org'da Türkçe yazım denetimi için Zemberek adlı bir program kullanılıyor. Türkçe'yi anlayarak yazım denetimi yapan Zemberek'in iki farklı sürümü var: Zemberek Sunucusu ve OpenOffice.org eklentisi. Zemberek Sunucusu Pardus ve LapisLinux gibi dağıtımlarda da kullanılıyor ve bütün sistem (anında mesajlaşma programından, kelime işlemciye) çapında yazım denetimi yapabiliyor. Eklenti ise anlaşılacağı üzere OOO'a ekleniyor ve belgelerde yazım denetimi yapıyor.

Ubuntu üzerinde Zemberek'i sunucu olarak çalıştırmak zahmetli bir iş. Üşenmeyip uğraşmak isteyenlerin Talat Uyarer'in bloguna bakmasını tavsiye ederim. Ben bu yazıda yalnızca ooo eklentisi olarak kurmadan bahsedeceğim.

Eklentiyi OpenOffice.org.tr 'den indirebilirsiniz. Ben sitede anlatılan şekilde kurmaya çalıştığımda eklentiyi kuramadım ve "Could not create Java implementation loader" hatasıyla karşılaştım. Bunun nedeni sisteme gerekli java paketlerinin kurulmamasıymış. Zemberek ooo'dan ayrı bir java sistemi üzerinde çalışıyor. Eklentiyi kurmadan önce gerekli paketleri kuralım. Uygulamalar -> Donatılar -> _Uçbirim'e aşağıdaki komutu verelim:

$ sudo apt-get install openjdk-6-jre openoffice.org-java-common


Bağımlılıkları ile birlikte bu iki paketi kurduğunuzda eklentiyi ooo'ya yükleyebilecek hale geliyorsunuz.

Herhangi bir ooo programını açıp, Araçlar -> Eklenti Yöneticisi diyoruz.



Ekle... düğmesine basıp ooo'un Türkiye sitesinden indirdiğimiz Zemberek eklentisini seçiyoruz. Otomatik olarak yükleniyor.

Fakat yapmamız gereken bir şey daha var:

Eklentiyi yükledikten sonra yazım denetimi yapılırken ooo göçebiliyor. Bunu düzeltmek için ooo'yu ve bütün kopyalarını kapatıp, ooo'un bir ayar dosyasını yeniden yaptırmamız gerekiyor. Bunu da yalnızca hali hazırda kullanılan dosyayı silerek yapabiliyoruz. Silmemiz gereken dosya ev dizinimiz altındaki

.openoffice.org2/user/config


dizininin altındaki

javasettings_Linux_x86.xml


adlı dosya. Bu dosyayı uçbirimden ya da gnome içinden silebiliriz. gnome içinden silmek için Yerler -> Başlangıç diyerek ev dizinimize ulaşıyoruz. Dikkat ederseniz .openofficfe.org2 dizininin adı bir . (nokta) ile başlıyor. Yani gizli bir dizin. Gizli dizinleri görmek için Dosya Tarayıcı'da Görünüm -> Gizli Dosyaları Göster diyebilir ya da CTRL + H 'ye basabiliriz. Daha sonra belirtilen dizine gidip belirtilen dosyayı silelim. Silme işlemini Uçbirim'den yapmak için Uygulamalar -> Donatılar -> _Uçbirim diyerek uçbirimi açıp aşağıdaki komutu verebiliriz:

$ rm .openoffice.org2/user/config/javasettings_Linux_x86.xml


Yeniden ooo'u açtığımızda Türkçe imla denetimi yapabiliyor olmamız gerekir. Eğer denetim yapılamıyorsa ooo içinde Araçlar -> Seçenekler 'den Dil Ayarları -> Yazım Yardımı'nı açıp Kullanılabilir dil modülleri arasında Zemberek'in seçili olduğundan ve




Dil Ayarları -> Diller'de Türkçe'nin seçili olduğundan emin oluyoruz.




Güle güle kullanın.

17 Mayıs 2008 Cumartesi

Yerel DNS Belleği

Ön Bilgi

Internette ya da IP tabanlı herhengi bir ağda, ağa bağlı cihazlar birbirlerine IP adresleri üzerinden erişirler. IP adresleri 192.168.23.54 şeklinde 4 tane 8 bitlik (yani 0-255 arası) sayıdan oluşur. Bu sayılar ile adreslere erişmek insanlara göre mantıklı olmadığı için, isimler ile IP adreslerini eşleyen bir sistem kurulmuştur. www.google.com gibi karakter tabanlı adresler, DNS yani Domain Name Server adı verilen sunucular aracılığı ile IP adreslerine çevrilir.

DNS'lerin adresleri ağ yapılandırması otomatik olan ağlarda otomatik olarak sunulur. Internet hizmeti aldığınız servis sağlayıcıların (Telekom, X-Online gibi) neredeyse hepsi size bir DNS sağlar. Bir çok ADSL modem ve ağlardaki yönlendiricilerin bir çoğu bu DNS adreslerini hizmet sağlayıcıdan alarak sizin bilgisayarınıza gönderirler.

Cihazınızdan www.google.com gibi bir adrese erişmeye çalıştığınızda, DNS'e belirtilen isim için bir sorgu gönderilir ve geri dönen IP adresi ile istenen bağlantı kurulur.

Cihazınızdan yaptığınız her sorgulama için DNS'e bağlanılır. Bu da hem vakit kaybına neden olur (bir sorgu ortalama 100ms sürer) hem de ağı işgal eder. Karakter bazlı alan adlarına eşdeğer IP adreslerini kendi bilgisayarınızda da bellekleyebilirsiniz. Böylece daha önceden yapmış olduğunuz alan adı sorguları belirli bir süre bellekte tutulur ve bu süre içerisinde yinelenen sorgularda DNS'e bağlanmanıza gerek kalmaz.

DNS hakkında http://tr.wikipedia.org/wiki/Dns adresinden daha fazla bilgi alabilirsiniz.

Şimdi DNS belleklemesini Ubuntu bilgisayarınızda nasıl yapacağınıza bakalım.

Paketimizi Kuralım

Ubuntu'nun Universe kaynakları arasında dnsmasq adlı bir paket bulunmaktadır. Bu paket ile ubuntu cihazımıza DNS önbellekleyici, DHCP ve TFTP sunucu kurabiliriz. Şu anda burada yalnızca DNS kısmından bahsedeceğim. Universe depoların açık olduğundan emin olduktan sonra;

$ sudo apt-get dnsmasq 


komutunu kullanarak paketi yükleyebiliriz. Çıkan mesajlardan da gördüğünüz gibi DNS ve DHCP sunucunuz kurulmuş ve kullanıma hazır biçimde çalışmaktadır.

dnsmasq'ı Ayarlayalım

Şu anda kullanıma hazır olmasına rağmen bir kaç ufak ayarlama yaparak dnsmasq'ı daha iyi hale getirebiliriz.

ubuntu içinde Alt+F2 tuşlarına basarak komut çalıştırma penceresini açın ve

$ gksudo gedit /etc/resolv.conf


komutunu verin. Dosyayı değiştirmek için yönetici (root) izinleri gerektiği için gksudo ile çalıştırmamız gerekli. Ne yaptığınızı biliyorsanız ayar dosyalarınu değiştirmek için istediğiniz metin düzenleyiciyi (vim, nano vb.) kullanabilirsiniz.

Açıklama: Dosya içinde # (diyez) ile başlayan satırlar yorum satırlarıdır. Dosyayı hazırlayanlar ve/veya programı yazanlar yapılacak değişiklikler konusunda bizi bilgilendirmek için açıklmaları bu şekilde yazarlar. Aynı zamanda bazı ayarlar da yorum haline getirilerek etkisizleştirilir.

Şimdi değişikliklerimizi yaparak dosyayı aşağıdakine benzer hale getirelim. Şunu belirtmem gerekir ki aşağıya dosyanın bütününü yazmıyorum. Yalnızca yapmanızı tavsiye ettiğim değişiklikleri anlayabileceğiniz kadarını yazıyorum. Zaten anlarsınız ;-)

# Never forward plain names (without a dot or domain part)
domain-needed
# Never forward addresses in the non-routed address spaces.
bogus-priv


Böylece gereksiz sorgulamaları önlemiş olduk.

# Change this line if you want dns to get its upstream servers from# somewhere other that /etc/resolv.conf
resolv-file=/etc/resolv-dnsmasq.conf


Bu ayarı değiştirmediğiniz takdirde önbellekleme hizmet sağlayıcınızın belirttiği ya da ağınızdaki DNS'in üzerinden yapılacaktır. Eğer ağınızda çalışan özel DNS'ler yoksa (örneğin şirketlerde olabilir) bu ayarı değiştirmenizi ve DNS olarak openDNS'i kullanmanızı öneririm. Böylece hem güvenilir bir DNS üzerinden sorgulama yaparsınız hem de Türkiye'deki DNS'lerin uymak zoruda oldukları kısıtlamalardan kurtulursunuz.

Bu noktada iki açıklama yapmam gerekiyor:

  • Güvenilir DNS demek yazdığınız adresin doğru IP'ye gideceğinden emin olduğunuz adres demektir. Örneğin otomatik olarak DNS ayarı yapılan ağlarda kötü niyetli kişiler banka web siteleri gibi sayfaların alan adlarını kendi bilgisayarlarına yönlendirebilir ve gerçek web sitesine benzer bir arayüz ile bilgilerinizi çalabilirler. Özellikle notebook ve benzeri dolaşarak kullanılabilen araçlarda DNS adreslerini kendinizin belirtmesi daha güvenilirdir.
  • Mahkemelerce erişimi engellenen sitelere bir şekilde girmek yasal mıdır bilmiyorum. Şunun farkında olunmalı ki sansürlenen siteler, girilmesi uğraştırsın diye değil girilmesi kanunlara aykırı olduğu için engellenmektedir. Yani uzun yollardan da olsa bu sitelere girmek kanunsuz olaBİLİR, fakat emin değilim. Kendi yolumuzu bulmanın dışında konuyla ilgili bir şeyler yapmak için: http://www.sansurehayir.org/
Ayarlarımıza geri dönelim. resolv-file olarak belirttiğimiz dosya sürekli olarak kullanmak istediğimiz alan adı sunucularının adreslerini içerecektir. Bu dosyayı birazdan oluşturacağız.

Eğer DNS önbelleklemeyi yalnızca bu bilgisayarda kullanacaksanız karışıklığa sebebiyet vermemek için:

listen-address=127.0.0.1 


ayarını da düzeltmelisiniz.

Evet, bu dosya içinde yapacağımız değişiklikler bu kadar. Kaydet diyerek kaydedebilirsiniz.

DNS Sunucularımızı Ekleyelim

dnsmasq'in ayarlarını yaparken, bilmediği alan adlarını soracağı dosya olarak resolv-dnsmasq.conf belirtmiştik. Şimdi bu dosyayı oluşturarak içine DNS adreslerini yazalım. ALT + F2 ile çalıştırıcıyı açıyoruz:

gksudo gedit /etc/resolv-dnsmasq.conf


komutunu vererek dosyamızı açıyoruz. Ve içine aşağıdaki iki satırı yazıyoruz.

nameserver 208.67.222.222
nameserver 208.67.220.220


Böylece dnsmasq'ın bilmediği adresleri OpenDNS'e sormasını söylüyoruz.

Son olarak yaptığımız değişikliklerin etkin hale gelebilmesi için Uçbirim'de;

$ sudo /etc/init.d/dnsmasq restart


komutunu vererek dnsmasq'i yeniden başlatıyoruz.

Sunucumuzu Test Edelim

GNU/Linux içinde bulunan dig komutu ile alan adı sorgusu yapabiliriz. Bir uçbirim ekranı açıp aşağıdaki komutu verelim:

$ dig www.google.com


Bu komut ile www.google.com adresi için sorgulama yaptık. Çıkan bilgilerin en altında
;; Query time: 129 msec
;; SERVER: 192.168.54.12#53(127.0.0.1)
;; WHEN: Sun May 18 02:05:09 2008
;; MSG SIZE rcvd: 77


gibi bir bilgi verilir. Burada Query Time yapılan sorgunun ne kadar sürede yapıldığını ve SERVER da hangi sunucu (şu anda öntanımlı olan) kullanarak yapıldığını belirtir.

$ dig @127.0.0.1 www.google.com


komunutu verdiğimiz zaman 127.0.0.1 adresindeki, yani kendi bilgisayarımızdaki sunucuyu kullanarak bir sorgulama yaptırırız. Bu komutu ilk verdiğimizde Query Time pek fazla değişmeyecek hatta belki de yükselecektir. Çünkü sorgulama ilk defa yapılmakta ve belleklenmektedir. Komutu tekrar verdiğimizde sorgu zamanının 0 ya da 1 mili saniyeye düştüğünü göreceksiniz. Kurduğumuz sunucu çalışmaktadır.


Yeni Sunucumuzu Kullanalım

Ayarları yaptıktan sonra ubuntu'ya bundan sonra kendi sunucumuzu kullanması gerektiğiniz söyleyeceğiz. Bunu yapmak için ALT+F2 ile

gksudo gedit /etc/dhcp3/dhclient.conf


komutunu veriyoruz. Bu dosya içerisindeki ayarlar bilgisayarınız otomatik ağ yapılandırması yaparkenki seçenekleri belirtir. Bu dosya içinde aşağıdaki ayarı etkin hale getiriyoruz:

prepend domain-name-servers 127.0.0.1;


Böylece, bilgisayarımıza otomatik olarak sağlanan DNS'lerin başına 127.0.0.1'i her seferinde yerleştirmiş oluyoruz.

Eğer DNS'lerin otomatik olarak bilgisayarınıza gelmesini istemiyorsanız, request komutu içerisindeki domain-name-servers, kısmını kaldırabilirsiniz. Tabi bu sırada bunu yedeklemenizi tavsiye ederim. Yani bu satırın komutun son hali;

request subnet-mask, broadcast-address, time-offset, routers,
domain-name, host-name, netbios-name-servers, netbios-scope;
# requestten cikardim: domain-name-servers,


olarak değiştirilebilir.

Bundan sonra ağa bağlandığınızda dnsmasq üzerinden sorgu yapılacaktır. Fakat şu anda kullandığımı DNS'i de değiştirmemiz gerekir. Bunu yapmak için

  • Sistem -> Yönetim -> Ağ 'ı açıyoruz.
  • Aşağıdaki Kilidi Aç düğmesine basıp, parolamızı giriyoruz.
  • Yukarıdan DNS sekmesine gelip en üstteki IP adresine çift tıklayarak 127.0.0.1 yapıp Enter'a basıyoruz.
  • Diğer DNS adreslerini siliyoruz.
  • Kapatıyoruz.
Böylece yeni sunucumuzu kullanmaya başlayabiliriz. Dig ile sorgu zamanı testleri yapabiliriz. Farkı hissedeceksiniz.

Ek not: Bazı sebeplerden dolayı dnsmasq'ın yerel önbelleğini temizlemek isterseniz Uçbirim'den aşağıdaki komutu vermelisiniz:

$ sudo killall -1 dnsmasq


daha fazla bilgi için: http://ubuntu.wordpress.com/2006/08/02/local-dns-cache-for-faster-browsing/

Hayırlı olsun...