Ubuntu’da NTFS disklere yazma desteği kazandırmak

Bildiğiniz gibi ubuntu ile beraber gelen derlenmiş çekirdek ntfs türü disk bölümlerini sadece okunabilir bağlayabiliyorlar, ancak yazma işlemini yapabilmek için çekirdekten bağımsızlaşmış bir araç sayesinde yapabiliyoruz.

Bu yazılım ntfs-3g (http://www.ntfs-3g.org/) bu aracı ubuntu’nun paket depolarından;

sudo apt-get install ntfs-3g komutu ile kurabilirsiniz.

ntfs-3g kurulduktan sonra mount komunutunun -t parametresi yani type parametresi ile

mount -t ntfs-3g /dev/hda1 /media/yazilabilir_ntfs şeklinde bağlayabilirsiniz.

/etc/fstab bildiğiniz gibi sabit diskinizin bölümlerini boot’da otomatik bağlamamıza yarıyor ve burada daha önce ntfs bölümleri bağlamak için kullandığınız satırlardaki 2. sekmedeki ntfs türlerini ntfs-3g olarak düzeltirseniz, artık ntfs diskleriniz boot ile yazılabilir özellikte bağlanmış olacaktır.

Dikkat : NTFS-3G’nin, daha doğrusu ntfs türü disk bölümlerinin çok ciddi baş ağrıtabilecek sorunlara yol açtığını belirteyim, Eğer diskiniz sabit değilse, yani çıkarılabilir disklerinizde ntfs kullanıyor ve ntfs-3g ile bu disklere veri yazıyorsanız, bu diskleri KESİNLİKLE umount etmeden ayırmayınız! umount olmamış ntfs bölümleri scandisk yapılmadan tekrar mount edilemiyor ve ilginç bir şekilde proccess bulunan bağlama oturumları da bilmediğim bir sürede timeout olup readonly moda geçiyorlar ve yazmakta oldugunuz veriler veya okumakta olduğunuz dosyalar bozulabiliyor. Başım çok ağrıdı, artık microsoft ürünü olan bir dosya bölümü de kullanmıyorum (yaşasın ext3) 🙂

NTFS-3G için yararlanabileceğiniz diğer kaynaklar

http://www.ntfs-3g.org/ (Proje anasayfası, kaynak kodlar)
https://help.ubuntu.com/community/MountingWindowsPartitions/ThirdPartyNTFS3G
http://gentoo-wiki.com/HOWTO_NTFS_write_with_ntfs-3g

Ubuntu’da DNS Cache ile daha hızlı surf

DNS Nedir?

DNS (Domain Name System) internet sitelerinin adları olan alan adları hakkındaki bilgileri tutar. Ve hosting yani sitelerin barınmalarından ayrı düşünülen bir yapıdır. İnternet tarayıcısı veya herhangi bir istemci (client) ile bir alan adı girdiğinizde, örneğin: tarayıcıda http://www.google.com ya da ftp istemcinizde ftp://ftp.deneme.com şeklinde girdiğinizde yapılan ilk işlem bu alan adının nerede barındığını bulmaktır. Bu işi eğer özel bir dns belirtmemişseniz internet servis sağlayıcınız (ISP)’dekivarsayılan DNS’lerden başlayarak internette sorgulamaya başlayacaktır. Siz adresi girdiğinizde tüm internet ağında DNS sunucular birbirlerine “www.bilmemne.com adresini tanıyor musun?” diye soracaktır. Alan adına ait bilgiler bulunduğu takdirde size adres bilgisi dönecektir. Kullandığınız program gelen adres bilgilerini (ip) işleyerek doğrudan o adrese istek gönderip işleminizi yapacaktır.

Günümüzde hattımız ne kadar hızlı olursa olsun eğer iyi bir DNS yapılandırmamız yoksa gereksiz yere saniyeler kaybedebiliriz. Bunu kaldırmak için çeşitli yöntemler geliştirilmiştir fakat en güzeli (benim bildiğim) dns cache yapmaktır. Eğer cache yapan proxy’ler kullanırsanız bunu düşünmenize gerek kalmayacaktır. Fakat cache’lerin yenileniyor olması gibi sorunlarla da karşılaşabiliyorsunuz bazen 🙂 Sonuç olarak bu dökümanda size local ağınızda dns cache nasıl yapabileceğinizi anlatacağım. Okumaya devam et “Ubuntu’da DNS Cache ile daha hızlı surf”

Ubuntu için ideal bir çalışma/masaüstü ortamı için ipuçları

Bildiğiniz gibi ubuntu yüklendiğinde gnome masaüstü ortamı ile gelmektedir. Gerekli işlemleri yaparak çok hızlıca gnome masaüstü ve yüklü durumdaki yazılımları son sürümlerine yükseltebilirsiniz. Ancak gnome masaüstü ile gelen daha doğrusu ubuntu ile yüklü gelen yazılımlar yetmeyecektir. Bu makalede kolayca günlük işlerinizi halletmeniz için gerekli yazılımları nasıl kuracağınızı, ve neleri kullanabileceğiniz hakkındaki önerilerimi sizinle paylaşacağım.

Araçlar

Günlük herkesin kullandığı bazı standart programlar vardır.

Bunları sıra ile kuralım :

PDF okuyucu olarak gnome’da size 2 program önereceğim. Birincisi gnome yani gtk için yazılmış olan evince programı, diğeri de Adobe’un resmi kendi okuyucusu olan adobe acrobat reader olacaktır. Evince programı gtk için yazıldığından acrobat’dan çok daha hızlı açılacak ve çalışacaktır. Ancak bazı noktalarda özel içerik objelerini desteklemeyebilir. Veya bazen bir pdf dosyasını txt’ye dönüştürüp kaydetmek isteyebileceksiniz. Bu gibi fonksiyonlar dışında sadece okuma işlemleriniz için evince adlı program fazlasıyla yeterli olacaktır.
Bu iki yazılımı kurmak için sudo aptitude install evince acroread komutunu vermeniz yetecektir. Okumaya devam et “Ubuntu için ideal bir çalışma/masaüstü ortamı için ipuçları”

Ubuntu’da Apache, Php, MySQL ve PHPMyAdmin kurulumu (LAMP)

Bildiğiniz gibi ubuntu debian tabanlı bir işletim sistemi ve apt denilen kesinlikle gördüğüm en mükemmel paket yöneticisi olan bir araca sahiptir. Apt denilen şey sayesinde internetteki çok fazla depodan istemeyeceğiniz kadar pakete karın ağrısız ulaşabilmenizi sağlıyor. Bu aygıtı kullanıp harikalar yaratacağız şimdi.

Başlamadan önce paket bilgimizi güncelleyelim;

İlk olarak normal web yayını yapacak olan Apache’yi kuralım;

komutu ile apache2 ve buna ilişkin paketleri kurun.

Öneri olarak apache’nin varsayılan web yayın klasörünü kullanmayın, benim / dizinimde mfyz adında bütün kişisel dosyalarımı sakladığım bir merkez vardır (hatta ayrı disk bölümü şeklinde kullanırım). Bu dizin içerisinde kendime “www” adında bir dizin oluşturup burayı apache’nin ana yayın dizini olarak ayarlayacağım :

komutu ile (veya nano ile açabilirsiniz) geçerli yayınlanan domainlere ilişkin bilgilerin tutulduğu dosyayı açalım. Burada varolan yayındaki site ayarları göreceğiz,

“/var/www” gördüğümüz 2 yeri değiştiriyoruz, “/mfyz/www” şeklinde ayarladıktan sonra yine önereceğim;

satırındaki Indexes kısmını kaldırıyoruz. Bunu yapmamızdaki amaç şudur : Apache eğer bunu yapmazsanız içerisinde index dosyası bulmadığı dizinleri basit bir yapıda listeleyecektir. Bunu kapatmak için burada bulunan “Indexes” kısmını kaldırıyoruz. Artık index olmayan bir dizine bakılmaya çalışıldığında Forbidden hatası verecektir. Dosyayı kaydedip çıkıyoruz.

Web sunucusu ve modüllerine ilişkin yaptığımız her değişimde apache servisini yeniden başlatmamız gerekmektedir. Çünkü her başlangıçta o andaki ayar dosyaları hafızaya alınır ve oradan çlaışır servisler, Yeni ayarları uygulamak için :

veya

komutlarından birini veriyoruz (ikisi de aynı işi yapar).

Şimdi bir web tarayıcısı açıp http://localhost yazdığımızda Forbidden hatası alıyorsak apache servisimiz sorunsuz çalışıyor demektir. Eğer /mfyz/www klasörüne bir index.html dosyası koyarsak görünmesi gerekir aynı zamanda.

Şimdi php yükleyip apache ile entegre edelim:

İsterseniz 4 olan yerleri 5 yaparak php5 kurabilirsiniz. Bu örnekte php4 kuracağım.

komutu ile php4, mod-php4, php’ye gd kütüphanesi desteği ve mysql ile entegre çalışabilmesi için php4-mysql paketlerini kurmuş oluyoruz.
Kurulumdan sonra php ayarlarımızı yapmak için:

komutu ile php.ini dosyamızı açıyoruz. Burada önerdiğim birkaç ayarı yapalım :

satırını 20M şeklinde düzenleyerek en fazla 20mb upload yapılabilir hale getirelim. Bu değişim, büyük veritabanlarını phpmyadmin’e import ederken işimize yarayacak.

satırını buluyoruz ve başındaki ; işaretini kaldırıyoruz (uncomment). Daha sonra utf-8 olarak ayarlıyoruz.

[Extensions] kısmında varolan ;

satırlarının başındaki ; işaretlerini kaldırdıktan sonra kaydedip çıkıyoruz. Böylece Türkçe sorunu yaşamadan en fazla 20mb upload edebilir ve mysql/gd destekli bir php desteğine sahip apache edinmiş oluyoruz.

Eğer register_globals kullanıyorsanız bunu açmanız gerekecektir. Varsayılan olarak Off ayarlı olacaktır.

Not : Yukarıdaki ayarlar dışındakilere dokunmayın, hepsi varsayılan olarak gayet ideal ayarlanmıştır.

Şimdi apache’yi yeniden başlatıp deneme yapalım.

komutu ile index.php oluşturalım ve içine

yazıp kaydedip çıkalım. Şimdi bir web tarayıcısı açıp http://localhost adresine girin, PHP hakkında çok detaylı bir sayfa görüyorsanız tebrikler şu an php apache sorunsuz çalışıyor. Bu sayfada başlıklara bakarak aşağıya doğru süzülün, gözünüz “mysql” ve “session” başlıklarını görüyorsa devam edebiliriz.

Şimdi MySQL kuralım;

komutu ile mysql sunucumuzu ve istemcimizi kurmuş oluyoruz. Şimdi mysql root şifresi ayarını geçiyorum çünkü bunu phpmyadmin’den yapacağız. Varsayılan olarak root şifresizdir.

Apache’yi tekrar başlatıyoruz tabiki.

Sıra geldi phpmyadmin kurulumuna

Apt ile kurmanızı önermem çünkü phpmyadmin’i sürekli güncellemeyeceğiz hatta kodda kendimize göre değişiklikler yapacağız.
Otomatik kurmak isteyenler ;

Elle kurmak isteyenler: http://www.phpmyadmin.net adresine girip son sürüm paketi indirin.

/mfyz/www klasörüne “pma” adında açalım (isteyen phpmyadmin olarak da adlandırabilir klasörü, ben böyle daha pratik olduğunu düşünüyorum).

Şimdi ayar dosyasına dokunmadan http://localhost/pma adresine giriyoruz. PhpMyAdmin gayet normal bir şekilde açılıyor karşımıza. Şimdi hiç bi yere tıklamadan anasayfadaki “Privilages” linkine tıklıyoruz (Türkçesinde izinler olarak geçebilir). Burada MySQL kullanıcıları listelenecektir. root’a tıklayıp düzenlenme sayfasındaki şifre kısmında 2 kez girerek formu gönderin. Sayfayı yenileyin, yani http://localhost/pma adresine tekrar girmeye çalışın. Eğer erişim hatası veriyorsa root şifreniz değişmiştir. Şimdi /mfyz/www/pma/libraries dizinindeki config.default.inc.php dosyasını düzenleyerek root şifrenizi ayarlayın. Tekrar http://localhost/pma sayfasına girmeyi deneyin. Eğer giriyorsa artık apache php mysql phpymadmin’iniz sorunsuz kullanılabilir demektir. /mfyz/www klasöründe çalışabilirsiniz. MySQL veritabanı yönetimini A’dan Z’ye phpymadmin ile yapabilirsiniz, Sadece biraz kurcalayın göreceksiniz 🙂

Not: Benzer komutlar ile debian ve debian türevi tüm işletim sistemlerinde bu dörtlüyü kolayca kurabilirsiniz.

Window/Linux Disk ve Çalışma Mantığı/Benzerliği/Farklılığı

Bilgisayarımızda verilerimizi Harddisk denilen aygıtlarda saklarız, RAM ise anlık işlemlerimizi yapabilmek için kullandığımız ve bu aygıttan elektirik kesildiğinde içeriği silinen bir depolama birimidir. Bilgisayarımızı çalışma ortamımız düşünürsek Ram bizim masamızın büyüklüğüdür, bizim evrak inceleme, bulma organize etme hızımız (yani el çabukluğumuz) ise işlemci gücüne bağlıdır. Harddisk ise masamızdaki çekmece veya dosya raflarımızı ifade eder, Ne kadar büyükse o kadar çok arşivleme, o kadar çok ofis gereçleri koyabiliriz değil mi?

Bilgisayardaki en geniş yazılımlar işletim sistemleridir. Birçok kod/program ve dosyadan oluşurlar, genellikle bilgisayarımızdaki (mp3, film, iso gibi arşiv dosyaları haricinde) dosyaların çoğunluğu işletim sistemine aittir. Bu dosyalar tabiki harddiskimizde barındırılır.

Her işletim sistemi kendine göre veri yönetimi yapar. Bu farklılıktan dolayı disk bölümleri ortaya çıkar, Eğer disk bölümü yoksa diski tek bölüm olarak düşünebiliriz. Bu bölümlere partition (Türkçeleşirilmiş kelimesi yok) adı verilir. Partition türlerindeki farklılık disk yüzeyine farklı methodlarla bakmalarıdır. Yani verileri saklama/okuma/yerleştirme biçimleri farklıdır. Okumaya devam et “Window/Linux Disk ve Çalışma Mantığı/Benzerliği/Farklılığı”

Subversion sunucu yayını yapmak ve sunucu erişimi

Bu dökümanda sunucumuza svn kurup yayına açmak ve geliştirici grubumuzun erişimine açmayı göstereceğim. (SVN kullanımı ile ilgili bilgiyi https://mfyz.com/tr/subversion-ile-proje-gelistirmek/ dökümanından edinebilirsiniz)

SNV yayını yapmak (snvserve)

SVN’i dışarı açmak için subversion-tools paketindeki “svnserve” mini server’ini kullanacağız. Öncelikle istediğiniz portu firewall’ınızdan forward edin. Ben 1234 nolu portu bunun için kullanacağım örnek olarak. Eğer parametre vermeden (yani özellikle istediğiniz porttan yayın yapmaya çalışmazsanız) svnserve varsayılan olarak 3690 portundan yayın yapacaktır.

svnserve ile istediğimiz porttan yayın açmak için :

komutunu verin, -d parametresi ile deamon olarak çalışmaya başlayacaktır. Yani siz logout olsanız bile çalışacaktır. –listen-port parametresi ise anlayacağınız gibi port belirtmek için kullanılır. Eğer belirlemezsek bahsettiğim gibi 3690 portundan çıkacaktır yayın.

Sunucunuzun init scriptlerine başlangıçta çalışması için svnserve’i eklemenizi öneririm. Unutmayın svnserve’i init’de çalıştırıyorsanız -d parametresi yerine -i parametresi vererek kullanın. -i init modudur. Okumaya devam et “Subversion sunucu yayını yapmak ve sunucu erişimi”

Subversion ile proje geliştirmek

Subversion nedir?

Subversion, adından da anlayabileceğiniz gibi sürüm yönetim sistemidir. Dosyaları ortak bir depoda tutup sürüm yönetimi sağlar. Subversion’u (genel kısaltması “SVN”) ile proje geliştirirken projenizin sürümlendirilmesini, global bir geliştirme ortamı sunmak amacı ile kullanırız.

Neden Subversion kullanayım?

Subversion’un proje geliştirirken birçok artısı var. Öncelikle her dosyanızın sürümlerini takip edebiliyorsunuz. En güzeli de subversion size o kadar güzel bir inceleme ortamı sunuyor ki, subversion ile eski sürüm dosyalarınızı, yeni sürümlerde neler değişmiş birebir görebiliyorsunuz. Diff görüntüleyici programlar kullanarak (ki çoğu GUI bazlı subversion clientlarında diff görüntüleyici vardır) son sürümde hangi satırlar eklenmiş hangileri değişmiş. hangi satırlar silinmiş kolaylıkla görebilirsiniz. Bir diğer güzelliği de editör bazlı görebilmektir. Yani subversion’a atadığınız kullanıcılar veya sisteme ait kullanıcıların subversion’u kullanması iznini vererek. Bu sürümlerdeki değişimlerin kimler tarafında yapıldığını görebilmektir. Mesela bir düzenleme yapıldı ve ya hatalar oluştu ya da kodlar kayboldu, ya da gerçekten güzel bir düzenleme yapıldı, bunu kimin tarafından yapıldığını görebilirsiniz.

Ayrıca kendi dosya transfer protokolü sayesinde herhangi bir ftp gibi bir sunucu kurmanıza gerek kalmayacaktır. Okumaya devam et “Subversion ile proje geliştirmek”

Konsoldan, aradığımız dosyayı bulmak

Komut : find (yol tanımı) (seçenekler)

Seçenekler :

-name isim : aranılacak dosyanın ismi.
-perm izin : Izinleri oktal olarak belirlenmiş dosyaların aranılması.
-links n : linke sahip dosyalar.
-user kullanıcı : Belirli bir kullanıcıya ait dosyaların aranması.
-group isim : Belirli bir gruba dahil dosyaların aranması.
-atime n : n gün içinde erişilen dosyalar.
-mtime n : n gun içinde işlem gören dosyalar.
-ctime n : n gun içinde değiştirilen dosyalar.
-print : bulunan dosyaların ekranda görüntülenmesini sağlar.

Örnek :

Bulunduğum dizinden itibaren tüm alt-dizinlerdeki “mfyz” ile başlayan dosyaları bulmak için;

Not 1 : Burada arayacağım dosyada wildcard kullandığım icin * işaretini kullandım. Eğer dosyanın tam ismini biliyorsanız buna gerek yoktur.

Not 2 : Eğer bir aramayi root’tan ( / ) başlatirsaniz çok buyuk olasilikla bazı dosyaları okumaya izininiz olmadıgı için size bunu belirten bir uyarı mesajı verilecektir, ve bu mesajlar arasında aradığınız şey ekrana yazılsa bile bunu gözden kaçırabilirsiniz. Bu sebeple çıktıyı bir dosyaya yöneltip, daha sonra o dosyayı okumanızda fayda vardır.

Örnek :

Linux’ta kablosuz ağ yapılandırması

Linuxta kablosuz ağ ayarları basit network konfigürasyonundan farksız aslında.. İlk önce wirelles aygıtınızın tanınıyor olması gerek. Bu kısım donanımsal birşey olduğundan sadece benim elimdeki donanımı örnek gösterip geçeceğim. Intel Pro Wirelles 2200 wlan kartım var, genel olarak bu donanım yaygın zaten wirelles araçlarında. ipw2200.sf.net adresinden güncel sürücülerini edinebilirsiniz. Bilgisayarınızın iw2200 modülünü yüklemiş olup olmadığını lsmod ile kontrol ediyoruz :

ifconfig ile aygıtlarımızı kontrol ediyoruz. Bende ethernet eth0 wirelles kartımı da eth1 olarak görüyor.

Okumaya devam et “Linux’ta kablosuz ağ yapılandırması”

Screen ile taşınabilir konsollar

Screen nedir ki?

Screen, linux üzerinde bir konsol aracıdır. Screen sayesinde sanal konsollar açabilir ve bunları yönetebiliriz. Mantık olarak pencere gibi düşünün, her pencerenin bir id’si var ve bu pencereleri masaüstlerinde gezdirebiliyorsunuz. Screen ise bu işin konsol versiyonu. Screen ile konsol üzerinde yeni konsollar açıp kapayıp açık olanların listesini görüp, onlara spesifik id’ler atayıp veya o id’lerdeki konsollara geri dönüş yapabilirsiniz.

Ne işime yarar?

Screen paketi ilk bakışta çok fonksiyona yarayacak bişey gibi görünmüyor. İş uygulamasına geldiğinde güzelleşiyor. Birkaç örnek ile açıklayayım. Diyelim ki tty1’de bir uygulama açtınız, içerisinde bir url çıktı, o siteye girmek için o url’i kağıt kalem ile kaydedebilir, bir dosyaya paste edip onu X üzerinde açıp işinizi görebilir veya programın o konumunu ezberleyip X’de bir konsolda açıp görebilirsiniz. Eğer scren programı üzerindeki bir konsolda iseniz, CTRL + A + D‘ye bastığınızda o konsoldan çıkmış olur, X’de bir konsolda screen ile o konsola dönebilir, konsolunuzun kaldığı yerinden devam edebilirsiniz.
Screen sayesinde konsollarınızı, çıktı, içerisindeki işlemler bozulmadan rahatlıkla taşıyabilirsiniz.
Başka ve daha güzel bir örnek vermek gerekirse, X’te bir konsol açıp wget ile 30 tane 100’er mb’lik dosya download açtınız. Yada bir iso çekmeye başladınız. Oldu ki X’i restart etmeniz gerekti, screen konsolu içerisinde iseniz ctrl+a+d ile çıkıp ttyX’lerden birinde bu konsolu geri çağırabilir hatta hiç çağırmayabilirsiniz bile. Başka bir uygulama konusu da, geliştirdiğiniz bash programlarında, diğer programları kullanırken bash’de screen ile açtırdığınız konsolları yönterek onların içindeki çıktıları kullanabilir, kullanıcıya bunu yansıtmadan işlem yaptırabilirsiniz.
En güzel uygulamalarından biri de, ssh ile tatildeyken bağlandığınız masaüstü bilgisayarınıza zibilyon görevi verdikten sonra detach edip acil çıkış bile yapabilmenizdir.

Screen programını kullanabilmek için screen paketi kurulu olması gerekmektedir. Bunun kurulması size kalmış artık 🙂

Basit olarak bir konsolda screen komutunu verdiğimizde karşımızda temiz yeni bir bash gelecektir. Burada istediğimiz her türlü maymunluğu yapabiliriz.

İstediğiniz an CTRL + A + D tuş kombinasyonu ile rahatlıkla dışarıdaki konsola düşebilir, açmış olduğunuz screen konsolunu askıya almış olursunuz.
Eğer askıda tek konsol var ise screen -r parametresi ile doğrudan dönüş yapabilirsiniz. Eğer birden fazla askıda konsol mevcut ise aynı komut size bir liste verecektir. Bu listedeki id’leri screen -r şeklinde uygularsak o konsola düşeriz. Konsoldaki oturum sona erdiğinde askıdan alınıp screen konsolu öldürülecektir.

Ayrıca -x parametresi ile daha önce açık olan oturumu birden fazla konsolda açabilirsiniz. Böylece screen oturumunuz, açılan her konsolda yeni bir girdi mekanizmasına sahip olmuş olacaktır.

Basit bir uygulama ile;

Linux konusunda deneyimsiz birisi konsolda yapılması gereken bir işte tıkanmıştır, size ssh girişlerini verir, arkadaşın bilgisayarına girer ve bir screen oturumu açarsınız. Arkadaşınıza da bir konsol açıp screen -x komutu vermesini istersiniz. Evreka, sizin oturumunuz onun konsolunda da açılır. Her iki taraftanda bilgi girişi yapılabilir. Konuşamk (chat) için bile bu yöntemi kullanabilirsiniz 🙂

Küçük bir uygulama ile kolaylıkla programı öğrenebilirsiniz. Screen komutunun man sayfasında veya help sayfasında ilgili ayrıntıları bulabilirsiniz.

Not: Bu döküman 2 Ocak 2008 tarihinde yeniden düzenlenmiştir.