Gentoo Linux/PPC Handbook
İçerik:
-
Gentoo Kurulumu
Bu bölümde sisteminize nasıl Gentoo Linux kurabileceğinizi öğreneceksiniz.
-
Gentoo Linux Kurulumu Hakkında
Gentoo ortamına yabancı olan kullanıcılar belkide aslında Gentoo Linux'un esnek yapısını bilmiyorlar. Bu bölümde bu esnek yapı ile tanışacaksınız.
-
Endoğru Kurulum Ortamını Seçmek
Gentoo Linux çeşitli yöntemler ile kurulabilir. Bu bölümde nasıl Gentoo LiveCDs ile kurulum yapabileceğiniz anlatılmaktadır.
-
Ağ Ayarları
Eğer Gentoo'nuzu internet üzerinden kurmak istiyorsanız, o zaman ağ ayarlarınızı yapmak zorundasınız.Bu bölümde ağ ayarları anlatılmaktadır.
-
Sabit Diskin Hazırlanması
Gentoo Linux kurabilmeniz için diskinizde gerekli bölünmeleri yapmanız gereklidir. Bu bölümde kuracağınız Gentoo Linux için diskinizi nasıl ayarlayabileceğiniz anlatılmaktadır.
-
Gentoo Kurulum Dosyalarının Kurulması
Gentoo kurulumu Stage-dosyaları olarak tanınan dosyaların yardımı ile gerçekleşir. Bu bölümde Stage dosyalarını nasıl açacağınızı ve Portage nasıl ayarlayabileceğinizi anlatacağız.
-
Gentoo Temel Sisteminin Kurulması
Hangi Stage'yi seçtiğinizden bağımsız olarak, kurulumda temel bir sisteme sahipsiniz. Bu bölümde temel sistemin kurulumunu anlatacağız.
-
Kernel Ayarları
Linux çekirdeği bütün Linux sürümlerinin temel taşını oluşturur. Bu bölümde kernelinizi nasıl ayarlayabileceğinizi bulabilirsiniz.
-
Sisteminizin Ayarlanması
Önemli ayar dosyalarını düzenlemeniz gereklidir. Bu bölümde bu ayar dosyalarına genel bir bakış ve dosyalar hakkında kısa bilgiler ve nasıl çalışmanız gerekliliği hakkında bilgi alacaksınız.
-
Önyükleyici Ayarlanması
Çeşitli önyükleyiciler mevcuttur. Bu bölümde ihtiyaçlarınıza göre önyükleyiciyi nasıl ayarlayabileceğinizi anlatacağız.
-
Gerekli Sistem Araçlarının Kurulması
Daha öncede söylediğimiz gibi; Gentoo da 'seçim' söz konusudur. Bu bölümde önemli bazı program ve araçların seçimi ve kurulumu hakkında kısa bilgiler vereceğiz.
-
Gentoo Kurulumunu Bitirmek
Bitirmeye nerdeyse az kaldı. Sisteminize bir veya birden fazla kullanıcı ekleyip, kurulumu terk edeceğiz ve yeni kurulmuş Gentoo Linux'unuzu kullanabileceksiniz.
-
Kurulum bitti, ya sonra ?
Artık bir Gentoo sisteminiz var. 'Şimdi ne yapabilirim?' sorusuna cevap arayacağız.
-
Gentoo Altında Çalışma
Gentoo altında çalışırken nasıl yazılım kurabilirsiniz, değişkenleri kendi isteğinize göre nasıl değiştirebilirsiniz, portage davranışlarının özelliklerini nasıl değiştirebilir, gibi konuları bu bölümde bulabilirsiniz.
-
USE flags
USE-flags gentoo'nun en büyük özelliklerinden bir tanesidir. Bu bölümde 'USE Flags' kullanımı ve sisteminize nasıl uyumlu şekilde ayarlayabileceğinizi okuyabilirsiniz.
-
Portage ve Yazılımlar
Portage'nin en büyük özelliği sisteminizdeki kullanılacak olan yazılımların denetimini yapmasıdır. Bu bülümde paket bilgilerini nasıl alabileceğiniz, paketlerinizi nasıl güncelleyebileceğiniz, paket ekleme ve paket silme işlemlerinin nasıl yapıldığını öğreneceksiniz.
-
Portage Özellikleri
Bu bölümde Gentoo Portage'sinin çeşitli kullanım özelliklerini bulabilirsiniz.
-
Portage Davranışlarının Kontrolu
Portage'leri kendi ihtiyaçlarınıza ve isteklerinize göre düzenleyebilirsiniz.Bu bölümde dosyalarınızı nasıl koruyabileceğiniz vb. konular anlatılmaktadır.
-
İnit Betikleri (initscripts)
Gentoo özel initscript formatı kullanır. Bunlar diğer yeni özelliklerin yanısıra, olası bağımlılıklarda kendi karar verebilen ve sanal initscript'leridir. Bu bölümde bu skriptler ile nasıl çalışabileceğiniz anlatılmaktadır.
-
Ortam Değişkenleri
Sisteminizdeki ortam değişkenlerinizi Gentoo ile çok basit olarak düzenleyebilir veya değiştirebilirsiniz. Bu bölümde bu değişkenler ve bunlar ile nasıl işlem yapabileceğinizi öğrenebilirsiniz.
A. Gentoo Kurulumu
1. Gentoo Linux Kurulumu Hakkında
1.a. Başlangıç
Hoş geldiniz!
Her şeyden önce, Gentoo dünyasına hoş geldiniz. Seçim ve performansın dünyasına girmek üzeresiniz. Gentoo tamamiyle bir seçimler dünyasıdır. Kaç kez derleme yapmak isteyeceğiniz, Gentoo sisteminizi nasıl yükleyeceğiniz, hangi sistem kayıtçısını kullanmak isteyeceğiniz ve bunun gibi daha bir çoğunu Gentoo Linux'sunuzu yüklediğiniz zaman anlaşılır hale gelecek.
Gentoo hızlı, temiz, esnek ve modern tasarıma sahip bir dağıtımdır. Gentoo serbest yazılım çerçevesinde yapıldı ve sistemin temelini kullanıcılarından saklamaz. Portage, Python ile yazılmış, Gentoo'nun kullandığı bir paket bakım/koruma ve edinme sistemidir. Bu sistemle paketleri kolayca görebilir ve değişiklik yapabilirsiniz. Gentoo'nun paketleme sistemi kaynak kodunu kullanır (ayrıca yeniden derlenmiş paketleride destekler) ve Gentoo olaylarını düzenli metin dosyalarıyla yapılandırır. Diğer bir değişle, her yerde açık sözlüdür.
Gentoo'yu çalışır yapan seçimleri anlamış olmanız çok önemli. Size sevmediğiniz herhangi bir şey için baskı yapmak istemiyoruz. Eğer öyle yaptığımızı düşünüyorsanız, lütfen hata raporu olarak bize iletin.
Kurulum Yapısı Nasıldır?
Gentoo kurulum prosedürü 2-11 bölümleri arasında yer alan 10 adım olarak görülebilir. Her adımın sonucu aşağıdaki gibidir:
-
1. Adımdan sonra, çalışan bir ortamda bulunup Gentoo kurulumuna hazır olacaksınız.
-
2. Adımdan sonra, Gentoo kurmak için internet bağlantınız hazır olacak (duruma göre bu isteğe bağlı olabilir).
-
3. Adımdan sonra, Sabit-Diskiniz Gentoo kurulumuna ev sahipliği yapmak için hazır olacak.
-
4. Adımdan sonra, kurulum ortamınız hazır olacak ve chroot komutu ile yeni ortama girişe hazır olacaksınız.
-
5. Adımdan sonra, Gentoo kurulumu için gerekli kod paketleri yüklenmiş olacak.
-
6. Adımdan sonra, Linux çekirdeğinizi derlemiş olacaksınız.
-
7. Adımdan sonra, Gentoo sistem yapılandırma dosyalarının çoğunu yazmış olacaksınız.
-
8. Adımdan sonra, tercih ettiğiniz açılış yükleyicisi yüklenmiş ve ayarlanmış olacak.
-
9. Adımdan sonra, gerekli sistem araçları (listeden seçebileceğiniz araçlar) yüklenmiş olacak.
-
10. Adımdan sonra, Gentoo sisteminize giriş yapmış olacaksınız.
Bir karar verdiğinizde, size tüm işlemleri elimizden geldiğince iyi açıklamaya çalışacağız. Daha sonra "Varsayılan:" olarak isimlendirdiğimiz öntanımlı seçimden devam edeceğiz. Diğer olasılıkları "Alternatif:" olarak isimlendirdik. 'Varsayılan' olanları bizim önerimiz olarak düşünmeyin. Onlar çoğu kullanıcının kullanacağını düşündüğümüz şeyler.
Bazen isteğe bağlı bir adım kullanabilirsiniz. Bunlar Gentoo kurulumu için mutlaka gereken işlemler değil. Bunları "Seçmeli" olarak isimlendirdik. Aynı zamanda bazı isteğe bağlı işlemler bir önceki karara bağlı olabilir. Böyle bir karar yürüttüğünüzde size isteğe bağlı seçimi anlatmadan bu durum hakkında açıklama yapacağız.
Seçeneklerim Neler?
Gentoo'yu bir kaç değişik yolla kurabilirsiniz. Bizim LiveCD'lerimizden (kurulum CD'leri) bir tane indirip kuruluma LiveCD üzerinden başlayabilirsiniz. Kurulu bir sisteminiz var ise, başlatılabilir bir CD ile (Knoppix gibi), internetten başlatılmış bir ortamla, bir kurtarma disketiyle vs. değişik yöntemler ile kurulumu gerçekleştirebilirsiniz. Bu döküman bizim LiveCD'mizle kurulumu anlatıyor. Diğer kurulum yollarıyla ilgili yardım için lütfenAlternatif Kurulum Rehberibelgemizi okuyunuz.
Ayrıca bir kaç ihtimalinizde var: rastgele sisteminizi derleyebilir ya da hazırlanmış paketleri kurarak Gentoo ortamınızı fazla beklemeden çalıştırabilirsiniz, ve tabiki hazır bir sistem için herşeyi derlemek yerine ortalama çözümlerde kullanabilirsiniz.
Hatalar?
Eğer bu kurulumda (ya da bu kurulum dökümanında) bir hata bulursanız, lütfen yazım hatasını Gentoo Release Engineering Project
projesinden kontrol edin, bugtracking
system sistemini ziyaret edin ve bu hatanın farkedilip farkedilmediğini kontrol edin. Eğer farkedilmediyse, lütfen bir hata raporu oluşturun ki bunun çaresine bakalım.
Hata raporlarınızı geliştiricilere iletmekten korkmayın, onlar genelde insan yemezler :-)
Şunu unutmayın, şu an okuduğunuz bu döküman mimari-değişkendir, yani diğer mimarilerede rehberlik yapar. Bu nedenle beklendiği gibi Gentoo El Kitabının geniş kısımları kaynak kodu kullanımına değiniyor. Bunu olabildiğince karışıklığı küçük tutmaya çalıştık.
Eğer bir problemin kullanıcı veya yazılım problemi olduğundan emin değilseniz , irc.freenode.org üzerindeki #gentoo kanalına gelmekten çekinmeyin, tabiki diğer zamanlarda gelmektende özgürsünüz :-)
Eğer Gentoo'ya dair bir sorunuz varsa, Gentoo Dökümantasyonundan Sıkça Sorulan Sorular (Frequently Asked Questions)bölümünü kontrol edebilirsiniz. Ayrıca bunlarıforumumuzdanda görebilirsiniz. Eğer yanıtı bulamazsanız irc.freenode.org üzerindeki #gentoo kanalında sorabilirsiniz. Evet, bazılarımız IRC'de bulunabilecek kadar kaçığız :-)
1.b. Hazır paket yoksaa hepsini derlemek mi?
Gentoo Kaynak Platformu Nedir?
Gentoo Kaynak Platformu, bundan sonra GRP'ye kısaltarak bahsedeceğiz. Bu hazır paket kullanan kullanıcılarının (bu siz oluyorsunuz) yükleme işlemlerini hızlandırmaya yarayan bir görüntüdür. GRP tam anlamıyla fonksiyonel bir Gentoo kurulumu için gerekli tüm paketlere bağlıdır. Bunlar yalnızca yeterli temel kurulumu hızlandırmak içindir, fakat büyük yapılar için (örn: KDE, XFree, GNOME, OpenOffice, Mozilla, ... gibi) GRP paketleride mevcut durumdadır.
Diğer yandan, bu hazır paketler Gentoo dağıtımında hayati bir temel teşkil etmez. Bunlar sadece her Gentoo sürümüyle gelen görüntü sürümleridir ve kısa sürede fonksiyonel ortam sahibi olmanızı sağlar. Siz Gentoo ortamınızda çalışırken arkaplanda sisteminizi güncelleyebilirsiniz.
Portage GRP Paketlerini Nasıl Hallediyor?
'Portage tree' ( yani ebuilds kolleksiyonu; paketler hakkında açıklama, anasayfa, kaynak kodu adresi, derleme açıklamaları, bağımlılıklar, vs. gibi bilgileri barındıran dosyalar) - GRP setiyle senkronize olmalıdır: mevcut yapıların versiyonları ve eşlik eden GRP paketleri uyuşmalıdır.
Bu nedenle GRP kurulum yöntemini kullanmak istiyorsanız, en son mevcut Portage şemasını yüklemeniz gerekir.
GRP Mevcut mu?
Tüm mimariler GRP paketlerini karşılamaz. Bu GRP'nin başka bir mimariyi desteklemediği anlamına gelmiyor, fakat bu GRP paketlerini hazırlamak ve test etmek için kaynağımız olmadığı anlamına geliyor.
Şu anda aşağıdaki GRP paketlerini karşılayabiliyoruz:
-
x86 mimarisi (x86, i686, pentium3, pentium4, athlon-xp)
ve Gentoo
Hardened
-
amd64 mimarisi (amd64)
-
sparc mimarisi (sparc64)
-
ppc mimarisi (ppc, G3, G4)
Gentoo Hardenedprojesi kendi GRP paketlerini (ve evrelerini) tam olarak güvenli bir sistem üzerine yoğunlaşmış olarak önerir. Herhangi biri x86 mimarisinde bir sunucu kurmak istiyorsa bu seçenek üzerinde araştırma yapmalı.
Eğer sahip olduğunuz mimari (ya da alt mimari) bu listede yoksa, GRP kurulumu yapamazsınız.
Başlangıç burda bitiyor, şimdi En Doğru Kurulum Yöntemini Seçmekile devam edelim.
.
2. Endoğru Kurulum Ortamını Seçmek
2.a. Donanım Gereksinimi
Başlangıç
İşe koyulmadan önce, kurulum için gereken/desteklenen donanıma sahip olup olmadığınızı inceleyelim.
PPC Mimarisi
Kuruluma başlamadan önce aşağıdaki şartları yerine getirdiğinizden emin olunuz:
-
Enaz 1 GB boş alanınız olması gerekli
-
Eğer hazır paketleri kullanacaksanız en azından 300MB (RAM+swap) hafıza olması gerekli
-
PowerPC Architektur için Gentoo/PPC Power veya PowerPC Mikroprozessor mimarisine kurulabilir. Detaylar için Gentoo PPC FAQ bölümüne göz atmanızda fayda vardır.
2.b. Seçiminizi Yapın
Başlangıç
Gentoo yu kurup denemekte hala kararlı mısınız? Kararlıysanız kurulum medyanızı seçin. Hangi yöntemi seçerseniz seçin. Birbirinden farklı kurulum yolları, ama netice aynı olan seçim imkanınız var: Oda Gentoo temel sistemidir. .
Şimdi size kurulum medyalarını tanıtalım:
- Gentoo'nun Minimal LiveCD'si
- Gentoo'nun Universal LiveCD'si
Her ikisinin de avantaj ve dezavantajı vardır. Size sayfanın akışında bunu izah edeceğiz. Ama ilk önce size 3 aşamada nasıl yüklendiğini anlatalım.
3 Aşama (Stage)
Gentoo Linux 3 aşama (Stage) herhangi birisi ile yüklenebilir. Seçiminiz sizin Sisteme ne kadar derleme yapacağınıza bağlıdır. Aşama 1 bootstrap yapıp Sistem'i en baştan kurmak için kullanılır. Aşama 2
Aşama2 tüm Sistem'i hazır "yarı derlenmiş" tabandan kurmak için kullanılır. Aşama 3 ise Gentoo temel sistem sizin için derlenmiş ve yapılmıştır. Size sonra hiç bir şey derlemeden Gentoo yu nasıl yükleyeceğinize değineceğiz (Kernel ve seçimlik paketler hariç). Eğer bu şekilde kurmak isterseniz size Aşama3 (stage3) arşivi gerekir.
Şimdi hangi aşamayı seçmeye karar verdiniz?
Aşama 1'den başlamak ileride size seçimlik sistem ayarlarında tam kontrol sahibi olmanızı sağlar. Aşama 1 ecrübeli ve ne yaptığını bilen kullanıcılar içindir. Gentoo'nun içyapısını bilmek isteyen kişiler için muhteşem bir Gentoo kurulum şeklidir.
Aşama 1 sadece internet bağlantısi iiel beraber yapılabilir.
| Aşama 1 |
Avantaj ve Dezavantajları |
| + |
Sistem üzerinde yapılacak tüm seçim ve ayarlarda, özel çalışmalarda ve sisteminize en baştan aktif edilecek olan her şeyde kontrol imkanına sahibisiniz.
|
| + |
Ne yaptığını bilen kullanıcılar için tavisye edilen bir yöntemdir. |
| + |
Gentoo'nun iç yapısını öğrenmenizi sağlar. |
| - |
Kurulumu uzun sürer |
| - |
Eğer standart ayarları değiştirmek gibi bir niyetiniz yoksa zaman öldürmekten etmekten başka bir şey olmaz. |
| - |
İnterneti olmayan kullanıcılar için kurulumu zordur. |
Aşama 2 kurulumunda Bootstrap işlemini geçebiliriz. Bu imkan bizler tarafından seçilen seçimlik ayarları ile memnunsanız iyidir.
Aşama 2 kurulumu sadece internet bağlantınız varsa kurulum yapabilirsiniz.
| Aşama 2 |
Avantaj ve Dezavantajları |
| + |
Bootstrap yapmak zorunda değilsiniz |
| + |
Başlaması aşama1'den hızlıdır |
| + |
Kendi ayarlarınızı genede seçebilirsiniz |
| - |
Aşama1 de olduğu gibi özelleştirilemez |
| - |
Gentoo kurmanın en hızlı yolu değildir |
| - |
Bootstrap için seçtiğimiz seçenekleri kabul etmek zorundasınız |
| - |
İnternetsiz kurulum yapılmaz |
Aşama 3 arşivi en hızlı Gentoo kurma yöntemidir. Ama buda demektir ki, Base System'iniz standart ayarlara sahiptir (gerçekçi olmak gerekirse, bunlar sağlamlık ve hız konusunda iyi balans sağlayan ayarlardır). Aşama3 hazır derlenmiş paketleri kullanabilmek için gerekmektedir.
| Aşama 3 |
Avantaj ve Dezavantajları |
| + |
'Gentoo Base System' elde edebilmenin en hızlı yöntemidir |
| + |
İnternetsizde kurulabilir. |
| - |
Temek sistemi kendiniz ayarlayamazsınız (öntanımlı olarak ayarlanmıştır) |
| - |
Arkadaşlarınıza Aşama1 veya Aşama2 kurdum diye hava atamazsınız :-) |
Şimdi hanagi aşama ile kurulum yapacağınaza karar verin ve bunu aklınızda tutun. Çünkü LiveCD veya başka birkurulum medyasını seçip kuruluma başladığınızda bu aşama seçimlerinine ihtiyacınız olacak.
Şimdi kurulum medyalarına bir göz atalım.
Gentoo LiveCD'leri
Gentoo LiveCD'leri Gentoo ortamını barındıran ve yüklenme(bootable) özelliği olan CD'lerdir. Size doğrudan CD'den boot etme imkanı sağlar. Yükleme (boot) esnasında donanımımız otomatik olarak tanınır ve sürücüleri yüklenir. Gentoo geliştiricileri tarafından desteklenir ve yönetilir.
Tüm LiveCD'ler sistemi yükleme (boot) etmekle beraber, ağ ayarları, sabit disk bölümlemeyi ve bölümlenen Partitionları biçimlendirmeyi ve İnternetten Gentoo kurmayı mümkün kılar. Ayrıca bazı LiveCD'lerde kaynak kod arşivi vardır. Bununla internetsiz Gentoo kurulumu yapmak mümkündür.
Evet, şimdi LiveCD hakkında ne düşünüyorsunuz?
Gentoo'nun Minimal LiveCD'leri
Bu ufak bir, yüklenebilir (bootable) CD'dir. Lüzumsuz fazla bir şey bulunmaz. Bunun tek mantığı, Linux Sistemini çalıştırmak, ağı ayarlamak ve Gentoo kurulumunda destek olmaktır. Bu LiveCD'de Aşama arşivi (bazı durumlarda sadece Aşama1 arşivi bulunur) yada kaynak kod yoktur. LiveCD'nin universal alt dizininde yer alır ve install-amd64-minimal-2004.1.iso diye tanımlanır.
| Minimal LiveCD |
Avantaj ve Dezavantajları |
| + |
En az Download |
| + |
Bütün mimariler için uygundur |
| + |
İstediğiniz aşamayı yükleyebilirsiniz; ( Aşama1, Aşama2, Aşama3) Yapmanız gereken, kurulum yapmak istediğiniz arşivi İnternetten çekmek. |
| - |
Aşama arşivi, Portage Snapshot, GRP Paketleri, bulundurmadığı için ağsız kurulum için uygun değildir. |
Gentoo Universal LiveCD'si
Gentoo Universal LiveCD yüklenebilir (bootable) CD'dir. Ağ bağlantısı olmadan Gentoo kurmaya uygundur. İçinde Aşama1 ve türlü Aşama3 arşivleri (o anki altyapı mimarisine ayarlanmış) bulunur. Bazı mimariler Aşama2 arşivi ve GRP Paketlerini ilk CD de sunar. Örneğin: Bu CD'nin x86 türevinin adı install-amd64-universal-2004.1.iso dur ve releases/amd64/2004.1/livecd alt dizininde bulunur.
Yansı adreslerimize bakarsanız bazıGentoo Paket CD'lerinin de olduğunu görürsünüz.Bu CD (bootlu değil) sadece hazır derlenmiş Paketleri içerir, başarılı Kurulumdan sonra temel sistemi yüklemek için kullanılır. Gentoo yu kurmak için tek Universal LiveCD yeterlidir, eğer Siz OpenOffice.org, Mozilla, KDE, GNOME vs. derlemeden yüklemek isterseniz paket CD'ye ihtiyaç duyulur. Örneğin:packages-amd64-2004.1.isodur ve ona göre alt mimarisinin dizininde bulunur.
Paket CD ile birlikte Universal LiveCD
Paket Cd'lerini sadece Aşama 3 veya GRP kurulum yapmak istediğinizde gereklidir.
| Paket CD ile birlikte Universal LiveCD |
Avantaj ve Dezavantajları |
| + |
Paket CD mimarisi ve alt mimarisi için ayarlanmıştır |
| + |
Paket CD derlenmiş paketler ile hızlı Gentoo kurulumunu sunar |
| + |
Gerekli herşey mevcuttur. Hatta Ağ bağlantısı olmadan kurulum yapılabilir |
| - |
Büyük dosya (download) içerir |
2.c. Downloaden, Brennen und Booten einer Gentoo LiveCD
Downloaden und Brennen der LiveCDs
Demek ki Gentoo LiveCD kullanmaya karar verdiniz. İlk olarak LiveCD yi indirip CD'ye yazacağız. LiveCD'leri hakkında yeteri kadar açıklama yaptık. Sanırız şimdi sizi en çok nereden temin edebileceğiniz sorusu meşgul ediyordur?
Siz her LiveCD yi (ve PackegesCD'leri isterseniz) Yansılar indirebilirsiniz (
releases/ppc/2004.1/livecd/universal dizinine gidiniz)
İndirilen dosyanın sağlan oluduğunu md5sums kontrolu yaparak kontrol edebilrisiniz. (Örn: install-x86-minimal-2004.1.iso.md5) . Linux/unix altında md5sum programı ile , Windows altında isemd5summer programı ile kontrol edebilirsiniz.
İndirilen ISO dosyalarını CD'ye yazdırmak için RAW modusu seçmeniz gereklidir. bunların nasıl olabileceği ise kullanılan programa bağlıdır. Şimdi kullanılabilecek bazı programlar altında kısaca açıklayalım:
- EasyCD Creator ile yazdırmak için, ilk önce File seçin, sonra Record CD from CD image takip edin. Daha sonra Files of type bölümündenISO image file olarak değiştirin. ISO dosyasını seçip Open ile açın. Start recording ile devam ederseniz ISO dosyanız CD'ye yazılmaya başlayacaktır.
- Nero Burning ROM ile, ilk önce File , Burn CD image tıklayın. Dosya türleri için*.* olarak ayarlama yapın ve ISO dosyasını secin. Eski Nero sürümlerü bu formatı tanımadıgığını söyleyebilir, görmezden gelin, nero bu formatı tanıyacaktır. Bir sonraki diyalog penceresinde aşağıdaki parametreleri ayarlaryın:
- Type of image: Data Mode 1
- Block size: 2048 bytes
- File precursor and length of the image trailer: 0 bytes
- Scrambled: no
- Swapped: no
Şimdi OK ile devam edin ve son olarak Burn tıklayın ve yazdırma işlemini başlatın.
- cdrecord ile , basit olarak cdrecord dev=/dev/hdc ( /dev/hdc sizin CD yazıcınızın bulunduğu bölüm olacak şekilde değiştirebilirsiniz) komutunu verin ve sonra ISO dosyasını bulunduğu yolu(path) ile devam edin. Yazdırma işlemi başlayacaktır.
- K3B ile, ilk önce Tools > CD > Burn Image yolunu takip edin. Sonra 'Image to Burn' bölümünden ISO dosyasını seçin. Son olarakStart tıklayarak yazdırma işlemini başlatın.
PPC LiveCD Yüklemek(boot)
Önemli:
Bu bölüm sadece PPC mimarisi içindir.İlk olarak bundan sonra gelen tüm bölümleri okuyun, ileride işlem esnasında da yeteri kadar zamanınız olmayabilir.
|
LiveCD'yi CD-ROM aürücünüze takın ve saistemi tekrardan çalıştırın. Boot esnasında 'C' tuşuna basın. Bu esnada size güzel bir hoşgeldiniz mesajı ekrana çıkacaktır. Burda bir boot Prompt' u vardır. (ekranın en altında görürsünüz)
Bu prompt da kernel için çeşitli seçimler yapabilirsiniz. Mevcut olanlar ,G3, G3-SMP, G4, G4-SMP, G5 ve
G5-SMP kernel kaynaklarıdır . -SMP Kernel sadece birden fazla CPU var ise gereklidir.
Bu Prompt da bazı kernel seçeneklerinide ayarlayabilrisiniz. Aşağıdaki tabeleda bu seçenekleri görebilrisinz:
| Bootoption |
Tanımlama |
| video |
Bu seçenek sadece üretici firmaya bağlıdır:
radeonfb, rivafb, atyfb, aty128 veya
ofonly. Bunlara ilaveten renk açılımı ve dağılımıda ayarlayabilrisiniz: Örn: video=radeonfb:1280x1024@75. Eğer kesin edim değilseniz ofonly kullanın. Bu seçenek genelde en güvenli seçenektir. |
| nol13 |
Bu seçenek, Level 3 Cache 'i etkisiz kılar. Örn: PewerBooks (En azından 17'' monitor greklidir) |
| debug |
debug için ayarlama yapılabilir.
|
Bu prompt alanında ENTER yapın ve bütün Gento Linux CD den yükleme yapılmaya başlar. Eğer olası bir hata yaşarsanız -safe seçeneğini boot esnasında kullanın. -safe seçeneğine aşağıdaki diğer argumanlar eklenebilir:append="video=ofonly nol3 init=/linuxrc".
LiveCD başladıktan sonra, login ekranı sizi selamlıyacaktır. Buraya root olarak girin. Şifre vermenize gerek yoktur.
Kod Listeleme 3.1: LiveCD girişi |
login: root
|
Siz karşılaştığınız Boot resminden başka gelişmiş Boot resmi ile selamlanacaksınız. Boot işlemi bittikten sonra otomatik olarak Superuser "root" olarak "Live" Gentoo Linux'a login olacaksınız. Konsol'da root Prompt ("#") göreceksiniz. Bununla Alt-F2, Alt-F3 ve Alt-F4'e basarak başka Konsola geçebilirsiniz. Alt-F1'e basarak başladığınız yere geri dönebilirsiniz.
Gentoo'yu non-US Klavyeli bir Sisteme kuracaksanız, loadkeys komutunu kullanarak uygun keymap dosyasını yükleyebilirsiniz. Mevcut keymaps dosyalarını görmek için ls /usr/share/keymaps komutunu verin.
Kod Listeleme 3.2: Mevcut keymap dosyalarını listelemek |
# ls /usr/share/keymaps |
Seçilen keymak dosyasını yüklemek için: (örn: türkçe Q klavye için)
Kod Listeleme 3.3: Türkçe Q klavye için keymap yükleme |
# loadkeys trq |
Şimdi Gelişmiş Donanım Ayarları bölümü ile devam edebilrisiniz.
Gelişmiş Donanım Ayarları
LiveCD yi başlattığınız zaman tüm Donanımınızı tanımaya ve gereken Modülleri yüklemeye çalışacaktır. Genelinde bu işlem hep basarili olur. Bazı durumlarda (SPARC LiveCD Donanım tanıma yapmaz) gereken Modüllerin otomatik yüklenmediği zamanlar olabilir. Bu durumda eliniz ile kendiniz gerekli modulu yüklemeniz icap edecektir.
Sıradaki örnekte size 8139too Modülünün nasıl eliniz ile yüklendiğini izah edeceğiz:(8139 ethernet kartları için)
Kod Listeleme 3.4: Kernel modulunu elimiz ile yükleme |
# modprobe 8139too |
PPC kullanıcıları airport veya sungem (10/100 Mbit , PowerBooks laptoplar için) kurabilir. Temperatur Management (G5 için) therm_pm72 Moduludur.
İsteğe Bağlı: Sabit Diskin Performansını Yükseltmek
Eğer tecribeli bir kullanıcı isenizhdparm komutunun yardımı ile IDE sabit diskinizin performansını artırabilirsiniz. the -tT parametresi ile sabit diskinizin performansını test edebilirsiniz:
Kod Listeleme 3.5: Sabit Disk performansını test etmek |
# hdparm -tT /dev/hda |
Performansı yükseltmek için vereceğimiz örneği kullanbilirsiniz. Verdiğimiz Örnekte /dev/hda sizin Sabit diskiniz için kullanılacak (/dev/hda bunu kendi aygıtınızın adı ile değiştirin):
Kod Listeleme 3.6: Sabit Disk verimini yükseltme |
# hdparm -d 1 /dev/hda # hdparm -d 1 -A 1 -m 16 -u 1 -a 64 /dev/hda |
İsteğe Bağlı: Kullanıcı Hesapları
Eğer başkasına Kurulum için yada irssi programı ile Chat yapabilmesini root olarak sağlamak istiyorsanız, bir kullanıcı hesabı açıp, root şifresini değiştirmeniz gerekir.
root şifresini değiştirmek için passwd komutunu uygulayın:
Kod Listeleme 3.7: root şifresini değiştirmek |
# passwd New password: Re-enter password: |
Bir Kullanıcı hesabı oluşturmak için hesap adı ve şifre gerekmektedir. Biz useradd ve passwd komutlarını bu amaç için kullanıyoruz. Sıradaki örnekte "ahmet" Kullanıcısını oluşturacağız.
Kod Listeleme 3.8: Kullanıcı hesabı oluşturma |
# useradd ahmet # passwd ahmet New password: Re-enter password: |
Root iken kullanıcı hesabını kullanmak istiyorsanız bunu su komutunun yardımı ile yapabilirsiniz:
Kod Listeleme 3.9: Kullanıcı ID değiştirmek |
# su ahmet - |
İsteğe Bağlı: SSH Daemon'u Çalıştırmak
Başka bir kullanıcının sizin bilgisayarınıza ulaşım yetkisi vermek isterseniz (Belki size kurulumda yardım edecek yada kurulumu sizin için yapabilecek bir kişi olabilir), o kişi için hesap açmanız ve hatta root şifresini dahi vermeniz gerekebilir. (Bunu sadece o kişiyi çok iyi tanıyor ve güvenebiliyorsanız yapın).
SSH Daemon'u çalıştırmak için aşağıdaki komutu kullanın:
Kod Listeleme 3.10: SSH Daemon'u çalıştırma |
# /etc/init.d/sshd start |
sshd'yı kullanabilmek için bir Ağ kurmanız gerek. Sıradaki Bölümle devam edelim: Ağ Ayarları.
3. Ağ Ayarları
3.a. Yapabilirsiniz fakat!...
Kim yapamaz?
Seçtiğiniz minimum kuruluma bağlı olarak, internet olmadan kuruluma devam etmeniz mümkün olabilir yada olmayabilir.
Genel olarak ağ kurmaya çok ihtiyacımız olacak. Bununla birlikte, Gentoo ayrıca internet bağlantısı olmadan size kurulum yapabilme imkanı sağlar. Bu kurulum seçeneğini sadece Gentoo Live Cd'ye sahip olanlar yapabilir.
Neden ağ bağlantısına ihtiyaç duyarız ?
Gentoo'yu tamamen internetten yükleyebilmek mümkün. Güncel bir internet kurulum tabanlı taşıma sistemi kullanarak(Portage Tree) kurulum yapılabilir. (Portage: paketlerin birlikte bulunduğu bilgisayar yazılımınızın kurulumunu idare edebileceğiniz bir araçtır.)
Bunu ayrıca da internetten kurulum yapabilmemiz için en iyi sebeb gösterebiliriz. Bu sebebe rağmen pek çok kişi internetten kurulumun yapmayı pek istememektedir.
Eğer internetten kurulum yapmak istemiyorsanız, Gentoo Universal LiveCD'ye ihtiyacımız olacak. Bu LiveCD içerisinde kaynak kodlar ve Gentoo'yu yükleyebilmek için gerekli olan en güncel paketler mevcuttur.
İnternet olmadan kuruluma devam etmek istiyorsanız, biraz önce bahsedilen Universal LiveCD'ye sahip olmanız vede bu bölümü atlamanız gereklidir ve aşağıdaki bağlantıdaki 4. bölüm ile devam etmek gerekir:
Bölüm 4: Kurulum öncesi sabit sürücüleri hazırlamak
Aksi takdirde aşağıda anlatılacak olanlar internetten kurulumu gerektirmektedir.
İsteğe bağlı: Proxy ayarlamak
Eğer internete Proxy'den geçerek ulaşıyorsanız, proxy ayarlarını(bilgilerini) kurulum sırasında girmeniz gerekli. Çok basit bir yolla proxy ayarlarınızı girebilirsiniz.
Çoğu durumda sadece sunucu adı olarak proxy sunucu adı (yani hostname) girmemiz yeterli. Birkaç örnek verecek olursak; farz edelim ki proxy sunucu adı(yani hostname 'si)proxy.gentoo.org ve port numarası 8080 olsun.
Kod Listeleme 1.1: Proxy tanımlamak |
# export http_proxy="http://proxy.gentoo.org:8080"
# export ftp_proxy="ftp://proxy.gentoo.org:8080"
# export RSYNC_PROXY="proxy.gentoo.org:8080"
|
Eğer proxy sunucuya bağlanmak için kullanıcı adı ve şifre gerekli ise, değişken olarak yazmanız gereken sözdizimi:
Kod Listeleme 1.2: Kullanıcı adı ve şifre eklemek |
http://kullanici_adi:şifre@sunucu_adresi |
HTTP tabanlı Proxy için kullanıcı adı ve şifre tanımlamak:
Kod Listeleme 1.3: Onaylı Proxy |
# export http_proxy="http://kullanıcı_ismi:şifre@proxy.gentoo.org:8080" |
3.b. Ağ Bileşenlerini Otomatik Olarak Bulmak
Maybe it just works?
Eğer sisteminiz DHCP tabanlı bir ağ sunucusuna bağlı ise, muhtemelen ağ yapılandırmanız otomatik olarak tanımlı bulunacaktır. Eğer tanımlı ise pek çok ağ komutlarından yararlanabilmek mümkündür. LiveCD'de bulunan birçok komuttan yararlanabilirsiniz, örnek:ssh, scp, ping, irssi, wget ve
links, ve diğer birçok komut.
Eğer, ağ yapılandırmanız tanımlı ise/sbin/ifconfig komutu size ağ ile ilgili bilgileri karşınıza getirecektir (örnek eth0 için ):
Kod Listeleme 2.1: /sbin/ifconfig çalışan bir ağ yapılandırması |
# /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:BA:8F:61:7A
inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr:fe80::50:ba8f:617a/10 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1498792 errors:0 dropped:0 overruns:0 frame:0
TX packets:1284980 errors:0 dropped:0 overruns:0 carrier:0
collisions:1984 txqueuelen:100
RX bytes:485691215 (463.1 Mb)
TX bytes:123951388 (118.2 Mb)
Interrupt:11 Base address:0xe800 |
Ağı Test Etmek
Kendi internet sağlayıcınızın DNS numaralarına PING çekmek isterseniz ( DNS numaraların bulunduğu dosya:/etc/resolv.conf) ve bir Web sitesi seçerseniz , gönderdiğiniz PING'e gelen cevapların hatalı olmadığına ve DNS çözülümü yapabildiğine dikkat edin. Bunun anlamı DNS doğru çalıştığı ve sorunsuzca internete çıkabileceğinizdir.
Kod Listeleme 2.2: Alternatif ağ testi |
# ping -c 3 www.yahoo.com
|
Ağınızı kullanabiliyor musunuz ? Eğer cevabınız evet ise bu andan itibaren 4. bölüme geçmelisiniz:
Kurulum Öncesi Sabit Kurucuları Hazırlamak
Hayır mı!! Kötü şans üzülmeyin, birazcık uğraşacaksınız :)
3.c.
Ağ Bileşenlerini Otomatik Olarak Ayarlamak
Eğer ağ bağlantınız çalışmıyorsa, bazı komutlar ağınızı tanıtmaya yardımcı olabilir (normal ağ ve adsl kullanıcıları için) . Örnek:net-setup (Normal kullanıcı için) veya adsl-setup (ADSL kullanıcıları
için).
Eğer seçtiğiniz minimum Gentoo kurulumu bu otomatik kurulum komutlarını içermiyorsa veya ağ tanımlı değilse, Ağ bileşenlerini elle ayarlamak bölümüne atlayınız.Elile Ağ Bileşenlerinin Ayarlanması
.
Varsayılan: net-setup Kullanımı
Henüz hala ağınız tanımlı değilse, tanımlamak için verebileceğiniz komut:
net-setup
Kod Listeleme 3.1: net-setup komutunu çalıştırmak |
# net-setup eth0 |
net-setup size ağınızla ilgili bazı sorular soracaktır. Bu soruların hepsi bittiğinde, tamamıyle çalışan bir ağa sahip olmuş olacaksınız. Tekrar daha önce denediğiniz gibi ping atarak ağınızın çalışıp çalışmadığını kontrol etmeniz mümkün. Test sonucu olumlu ise Tebrikler! Gentoo kuruluma hazır. Bu bölümü atlayınız ve 4. bölümden devam ediniz.
Kurulum Öncesi Sabit Sürücüleri Hazırlamak
Hala ağınız çalışmıyorsa Ağ bileşenlerini elle ayarlamak bölümüne atlayınız.
Elile Ağ Bileşenlerinin Ayarlanması.
Alternatif: RP-PPPoE Kullanımı
Farz edelim ki internete bağlanmak için PPPoE 'ye ihtiyacınız var. LiveCD (herhangi bir sürüm) bunu içermektedir. adsl-setup komutu ile bağlantınızı tanımlamak mümkün. Bu komut sizi tam olarak adsl modeminize bağlayacak kullanıcı adı, şifre, IP, DNS sunucusu kısımlarını gireceksiniz.
Kod Listeleme 3.2: rp-pppoe kullanımı |
# adsl-setup
# adsl-start |
Eğer birşeyler yolunda gitmiyorsa dikkatli bir şekilde tekrar kullanıcı adı ve şifreyi
/etc/ppp/pap-secrets veya /etc/ppp/chap-secrets dosyalarına bakarak, doğru girdiğinizden ve doğru ağ kartını kullandığınızdan emin olun. Eğer ağ kartınız mevcut değilse ağ kartınıza uygun olan, ona yakın olan ağ(network) modüllerini yüklemeniz gerekli. Bu durumda Elile Ağ Bileşenlerinin Ayarlanması bölümüne gidiniz:
Elile Ağ Bileşenlerinin Ayarlanması.
Herşey yolunda ise 4. bölümden devam edin:
Kurulum Öncesi Sabit Sürücüleri Hazırlamak.
3.d. Ağ Bileşenlerini Elile Ayarlamak
Ağ Modüllerini Yüklemek
Eğer net-setup veya adsl-setup başarısız sonuç verirse bunun sonucunda ağ kartınız büyük bir olasılıkla bulunamadı demektir. Bunun anlamı kernel(çekirdek) modülünüzü nam-ı diğer çekirdek derlemesini elle yani manuel olarak yapmak zorunda kalacaksınız.
Hangi kernel modülünün bizim ağa uygun olacağını görmek için:
Kod Listeleme 4.1: Gerekli olan modülü aramak |
# ls /lib/modules/`uname -r`/kernel/drivers/net |
Eğer ağ kartınız için bir sürücü(driver) bulduysanız, kernel modülünü yüklemek için modprobe komutunu kullanın:
Kod Listeleme 4.2: Kernel modulu yükelemek için modprobe kullanımı |
# modprobe pcnet32 |
Ağ kartınızın yüklenip yüklenmediğini kontrol edin. Bunun için ifconfig komutunu kullanın. Tanımlanmış bir ağ kartı aşağıdaki sonucu verecektir:
Kod Listeleme 4.3: Network kartının test edilmesi |
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr FE:FD:00:00:00:00
BROADCAST NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) |
Eğer sonuç olarak aşağıdaki hata mesajını aldıysanız ,ağ kartınız alğılanamamıştır:
Kod Listeleme 4.4: Network kartının test edilmesi |
# ifconfig eth0
eth0: error fetching interface information: Device not found |
Farzedelimki kartımız bulundu. Tekrar net-setup ve adsl-setup komutlarını deneyin(hangisiyle bağlanıyorsanız). Ayarlarınızı yapın. Uzman kişiler için nasıl elle ayar yapılır bölümü hazırladık. İsterseniz göz atabilirsiniz.
Aşağıdaki bölümlerden hangisi sizinle ilgili ise seçiniz:
DHCP Kullanarak
DHCP (Dynamic Host Configuration Protocol) Ağ bilgilerinizi otomatik olarak algılamayı sağlar. Bunlar IP adresi, netmask, broadcast adresi, ağ geçidi, nameservers vb. bilgileridir. Bu sadece ağınızda DHCP sunucu varsa (servis sağlayıcınız DHCP hizmeti veriyorsa) çalışır. Bunu yapabilmek için ve bilgileri otomatik olarak alabilmek için dhcpcd komutunu kullanmanız gerekli:
Kod Listeleme 4.5: dhcpcd kullanmak |
# dhcpcd eth0 |
Eğer bu çalışıyorsa (tekrar ping atmayı deneyiniz örnegin Google adresine mesela), sonrasında devam etmeye hazırsınız demektir. Bu bölümü atlayarak 4. bölüme geçiniz.
Kurulum Öncesi Sabit Sürücüleri Hazırlamak.
Wireless(kablosuz) Ağ Erişim
Not: Not: Bütün LiveCD leri iwconfig komutuna sahiptir. Eğer sizinki sahip değilse linux-wlan-ng projectadresinden edinerek devam edebilirsiniz.. |
Eğer 802.11 kartına sahipseniz daha ileriye gitmeden önce wireless ayarlarımızı kontrol etmemiz gerekecek. Şu anki güncel wireless(kablosuz), bağlantı bilgilerini görmek içiniwconfigkomutunu kullanınız. iwconfig çalıştığı zaman:
Kod Listeleme 4.6: güncel wireless ağ ayarları |
# iwconfig eth0
eth0 IEEE 802.11-DS ESSID:"GentooNode"
Mode:Managed Frequency:2.442GHz Access Point: 00:09:5B:11:CC:F2
Bit Rate:11Mb/s Tx-Power=20 dBm Sensitivity=0/65535
Retry limit:16 RTS thr:off Fragment thr:off
Power Management:off
Link Quality:25/10 Signal level:-51 dBm Noise level:-102 dBm
Rx invalid nwid:5901 Rx invalid crypt:0 Rx invalid frag:0 Tx
excessive retries:237 Invalid misc:350282 Missed beacon:84 |
Not:
Bazı wireless kartları eth0 yerine wlan0 aygıt ismine sahip olabilir.
|
Bir çok kullanıcı için sadece 2 önemli değiştirilebilecek ayar vardır. ESSID(wireless network name) veya WEP anahtarı. Eğer ESSID ve erişim noktası adresi zaten biliniyorsa ve WEP anahtarını kullanmıyorsanız, wireless çalışıyor demektir. Eğer ESSID'yi değiştirmek isterseniz veya WEP anahtarı eklemek isterseniz aşağıdaki komutları kullanmalısınız:
Kod Listeleme 4.7: ESSID veya WEP ahantarını değiştirmek |
# iwconfig eth0 essid GentooNode
#iwconfig eth0 key 1234123412341234abcd
# iwconfig eth0 key s:some-password
|
Sonrasında wireless ayarlarınızı iwconfig komutunu kullanarak doğrulamanız gerekmektedir. Bir kez çalışıyorsa IP düzeyini ayarlama kısmından devam ediniz.(Ağ terminolojisini anlamak) veya daha önceden anlattığımız gibi net-setup bölümü ile devam edin.
Ağ Terminolojisini Anlamak
Not: Eğer IP, broadcast, ağ maskesi, nameserver adreslerini biliyorsanız bu bölümü atlayarak diğer bölüme yani ifconfig ve route komutlarını kullanmakbölümü ile devam ediniz.
|
Eğer tüm bunlar başarısız olduysa ağınızı elle yapılandırmak zorunda kalacaksınız. Korkmaya gerek yok. Zorluktan çok uzak hatta çok basit, fakat bunu başarabilmeniz için size kesin ağ(network) bilgisini vermeden önce kendinize olan güveninizi arttırınız.
Bunu okuduğunuz zamangateway (ağ geçidi) nedir,netmask (ağ maskesi)
nedir, gibi soruların cevablarını ve diğerlerinin ne olduğunu, nameserver'a neden ihtiyaç duyacağımızı, herşeyi ögreneceksiniz.
Bir Ağ'da adresler IP adresleri olarak tanımlanırlar (Internet Protocol address). Bu 0 ile 255 arasinda 4 haneden olusan bir rakamdır, bunu anlıyabilmemiz için gerçekte IP adresinin 32 bit olduğunu ve 1 ve 0 lardan meydana geldiğini bilmeniz gerekir. Bir örnekle özetlemek gerekirse:
Kod Listeleme 4.8: IP adres örneği |
IP Address (numbers): 192.168.0.2
IP Address (bits): 11000000 10101000 00000000 00000010
-------- -------- -------- --------
192 168 0 2 |
Bu IP adresleri tüm kullanıcılara özel eşsiz adreslerdir. İnternette herşeyi bu adresler üzerinden yaparız. Ağda bulunan iki adres arasında ayrım yapabilmek ve ağın dışındaki bir IP adresi arasındaki farkı anlayabilmek için IP adresi iki kısma ayrılır. Host kısmı ve Network kısmı.
Aşağıda ayrım ağ maskesi(netmask) üzerinde anlatılmıştır. 1 ler topluluğunu 0 lar izlemektedir. 1 lerden oluşan kısım network kısmı diğer kısmı ise host kısmıdır. Genel olarak ağ maskesi IP adresi olarak yazılır.
Kod Listeleme 4.9: network/host ayrım örneği |
IP-address: 192 168 0 2
11000000 10101000 00000000 00000010
Netmask: 11111111 11111111 11111111 00000000
255 255 255 0
+--------------------------+--------+
Network Host |
Diğer bir değişle 192.168.0.14 adres ağımızın bir parçası fakat 192.168.1.2 değildir.
broadcast 'da ağımızın bir parçası olan IP adresidir, fakat sadece host kısmı. Her ağ daki host IP adresini dinler.
Kod Listeleme 4.10: Broadcast adresi |
IP-address: 192 168 0 2
11000000 10101000 00000000 00000010
Broadcast: 11000000 10101000 00000000 11111111
192 168 0 255
+----------------------------------------------+--------+
Network Host |
İnternette sörf yapabilmeniz için hangi host'un interneti paylaştığını bilmeniz gerekir. Bu host, gateway olarak bilinir. Eğer düzenli bir host varsa düzenli bir IP adresi vardır demektir. Örnegin 92.168.0.1 gibi.
Daha önce ifade ettiğimiz gibi, her host kendi IP adres aralığına sahiptir. Bu host ismine ulaşabilmek için bir servise ihtiyaç duyarız. Bu adresi isme çeviren bir servis(dev.gentoo.org) vardir. Bu servisleri kullanabilmek için gerekli ismi /etc/resolv.conf dosyasının içinde tanımlamamız gerekir.
Bazı durumlara ağ geçidimiz aynı zamanda nameserver olarak da görev yapar. Aksi takdirde servis sağlayıcınızın söylediği nameserver adresini girmeniz gerekir.
Buraya kadar özetlemek gerekirse ilerlemeniz için aşağıdaki bilgilere ihtiyacınız var:
| Ağ Öğesi |
Örnek |
| IP adresiniz |
192.168.0.2 |
| Netmask |
255.255.255.0 |
| Broadcast |
192.168.0.255 |
| Gateway |
192.168.0.1 |
| Nameserver(ler) |
195.130.130.5, 195.130.130.133 |
ifconfig ve route komutlarını kullanmak
Ağımızı ayarlayabilmek için 3 aşama gerekli:
İlk olarak ifconfig kullanarak IP adresimizi girmek, sonrasında ağ geçidi adresini route komutunu kullanarak girmek ve son olarak nameserver ismini /etc/resolv.conf dosyasının içine koymak. :)
.
ifconfıg komutunun kullanımına bir örnek vermek gerekirse;
${IP_ADDR} IP adresiniz,
${BROADCAST} broadcast adresiniz
${NETMASK} netmask adresiniz:
Kod Listeleme 4.11: ifconfig kullanımı |
# ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up |
Şimdi ise sıra geldi routing kullanmaya :). ${GATEWAY} Sizin gateway IP adresiniz.
Kod Listeleme 4.12: route komutunu kullanmak |
# route add default gw ${GATEWAY} |
Son olarakta her hangi sevdiginiz bir editor yardımı ile /etc/resolv.conf dosyasını açıp ( kendi örneğimizde biz nano editorunu kullandık ) Nameserver IP adreslerini yazıyoruz.
Kod Listeleme 4.13: /etc/resolv.conf dosyasını oluşturmak |
# nano -w /etc/resolv.conf |
Şimdi dosyamızı açtıktan sonranameserver(s) kısmını "${NAMESERVER1} ve ${NAMESERVER2}" şablonunu kullanarak dolduralım:
(${NAMESERVER1} ve ${NAMESERVER2} bölümlerini kendi Nameserver IP adresleriniz ile değiştirebilirsiniz )
Kod Listeleme 4.14: /etc/resolv.conf şablonu |
nameserver ${NAMESERVER1}
nameserver ${NAMESERVER2} |
İŞTE BU KADAR!!! Şimdi ağınızın tam olarak çalıştığını bu kadar uğraştan sonra google adresine ping atarak test edebilmemiz mümkün. Eğer bu çalışıyorsa şimdi güvenle 4. bölüme geçebilirsiniz.hat's it. Kurulum Öncesi Sabit Sürücüleri Hazırlamak.
4. Sabit Diskin Hazırlanması
4.a. Blok Aygıtlarına Giriş
Blok Aygıtlar
Bu bölümde sizlere Gentoo Linux'un "disk-orient" yönünü, Linux'un genel yapısını, ve dosya sistemini, disk bölümlerini anlatacağız. Sonrasında disk girdi çıktı yapısını ve dosya sistemiyle devam edeceğiz. Sizlere rehberlik edecek olan bu yazı, size sabitdisk bölümlemede ve dosya sistemi oluşturmada, Gentoo Linux 'unuzu kurmada size yardımcı olacaktır.
Başlangıç olarak sizeBlok aygıtlar hakkında bilgi vereceğiz. Bildiğimiz en yaygın sabit disk muhtemelen IDE sürücümüz yani /dev/hda. Eğer sisteminiz SCSI sürücü kullanıyorsa tabiki ilk sürücünüz
/dev/sda olacaktır.
Bölümler ve Slices'ler
Pratikte mümkün olmamasına rağmen, teorik olarak bütün sabit diskimizi Linux olarak kullanmak mümkün. Ama bunun yerine yönetimi kolaylaştırmak amacı ile bütün sabit diskimizi daha küçük bölümlere ayırmak mümkün. Bu x86 sisteminde bölüm (Partitionen) olarak bilinir. Diğer mimarilerde Slices olarak tanınır.
4.b. Sabit Disk Bölümlerini Tasarlamak
Öntanımlı Bölüm Planı
ğer sisteminizin disk bölümlerinin şemasını çıkarmakla fazla kafa yormak istemiyorsanız, bizim sizin için hazırladığımız tabloyu kullanabilirsiniz:
| Partition NewWorld |
Partition OldWorld |
Dosya Sistemi |
Boyut |
Açıklama |
| /dev/hda1 |
(gereksiz) |
(bootstrap) |
800k |
Apple_Bootstrap |
| /dev/hda2 |
/dev/hda1 |
(swap) |
512M |
Swap Partition |
| /dev/hda3 |
/dev/hda2 |
ext3 |
Hardiskkin kalan kısmı |
Root Partition |
Eğer sabit disk bölümleri ile ilgili iseniz, kaç tane bölüme ihtiyacımız olduğunu merak ediyorsanız, okumaya devam edin. Aksi takdirde diğer bölüm başlığı olan fdisk kullanarak diski bölümlere ayırmak adlı olan bölümümüze geçiniz.
Wie viele und wie groß?
Sabit disk bölümlerimizin büyüklüğü sisteminizdeki ortama bağlıdır. Örneğin birçok kullanıcıya sahipseniz muhtemelen /home dizininizi bölmek isteyeceksiniz. Güvenliği arttırmak ve yedeklemek kolay olacaktır. Eğer Gentoo'yu Mail sunucusu olarak kuracaksanız /var dizini bölümleyebilirsiniz. İyi bir dosya sistemi seçimi sisteminizin performansını arttıracaktır. Oyun sunucusu olarak kurmak istersenizde birçok program /opt izini altına kurulacaktır. Bölünmede sebeb hep aynı /homedizininde olduğu gibi aynı:
Güvenlik ve yedekleme.
Görüldüğü gibi, herşey ne elde etmek isteğinize bağlı. Sabit diskinizi bölümlemek size şu avantajları kazandıracaktır:
-
Her sabit disk bölümü için en iyi performansı elde etmek.
-
Sisteminizdeki eğer bozuk bir programcık sürekli sabit diske yazıyorsa sisteminizin tamamıyle kullanılmaz hale gelmesini engellemek.
-
Gerektiğinde dosya sistemi kontrolü yapılırken paralel kontrol yaparak zamansal olarak gececek olan süreyi kısaltmak.
-
Bazı sabit disk bölümlerine sadece okuma izni verilerek güvenliği arttırmak.
Bununla birlikte çoklu disk bölümleri büyük bir dezavantaja sahiptir: Eğer doğru düzenlenemezse bölümler arasında tanımlanmamış bilinmeyen boşluklar oluşabilir.
4.c. HArddiskinizi Bölümlere Ayırmak
Bölme işlemini yapmak için kullancağımız komut : mac-fdisk
Kod Listeleme 3.1: mac-fdisk başlatılması |
# mac-fdisk /dev/hda
|
Linux kurulacak bölümü silmek için d tuşuna basın
( mac-fdisk içinden) Sonra sise silmek istediğiniz bölüm numarasını soracaktır
Şimdi Apple_Bootstrap yardımı işe bir bölüm oluşturalım (b tuşu ile). İlk önce size başlatmak istedğiniz Bloğu sorar. Eğr bölüm numarası olarak 3
seçtiyseniz 3p girin
Not:
bu bölüm asla "Boot" bölümü değildir. Linux tarafından kullanılmaz; Buraya dosya sistemi ile biçimlendirmenize gerek yoktur. PPC kullanıcıları için Boot bölümü gerekli değildir. |
Takas (Swap ) alanı oluşturmak için c tuşuna basın.
mac-fdisk size başlayacak olan blok numarasını soracaktır. 3 'ü daha önceden Apple_Bootstrap bölümü için seçtiğimizden şimdi4p vermemiz gereklidir. Boyut olarak 512M yazabilrisiniz. Eğer ismini sorarsa swap olarak girin.
Root bölümü oluştrmak için c ve arkasından 5p veriyoruz. Bu sayede ROOT bölümünnn başlangıç blogunu seçiyoruz. Boyutunu sorar ise 5p verin. mac-fdisk
bunu "Bütün boş alanı kullan" olarak yorumlayacaktır. İsmini sorarsa root olarak girin.
İşlemler bittikten sonra kalıcı olması için w girin ve mac-fdisk bitirmek için q tuşuna basın.
Bölümleri oluşturduktan sonra Dosya Sistemini Oluşturmak bölümü ile devam edebiliriz.
4.d. Dosya Sistemini Oluşturmak
Giriş
Şimdiye kadar sabitdisk bölümlerimizi yarattık. Şimdi üzerilerine dosya sistemlerini yazmaya geldi. Dosya sistemini seçmek için endişelenmeyin, öntanımlı olan dosya sistemlerini kullanacaksınız, dosya sistemlerinin ne olduğunu bilmek isteyen okumaya devam etsin okumak istemeyenler Dosya Sistemlerini Bölümlere Uygulama adlı başlıktan itibaren okumaya devam edebilirler.. Aksi taktirde mevcut dosya sistemlerini okumaya devam edin...
Dosya Sistemleri
Linux'un çekirdek yapısı çok çeşitli dosya sistemini destekler. Bunlardan birçoğu amd64 için stabil olarak ifade edilir.Fakat bazıları stabil olarak tanımlanmazlar. AMD64 için Stabil olarak tanımlanan bazı dosya sistemler şunlardır : ext2 ve ext3- JFS ve ReiserFS .
ext2 güvenilirliği denenmiş bir dosya sistemi biçimidir. Fakat "metadata journaling" özelliğine sahip değildir. Bunun anlamı ise ext2 dosya sistemi açılışta herseferinde başlangıç zamanını kontrol eder. Bu da zaman kaybına neden olur. Artık tamamiyle yeni bir nesil olan "journaled" dosya sistemi bulunmaktadır. Ve daha çok tercih edilmektedir. "journaled" dosya sistemleri, bilgisayarınızı yeniden başlattığınız da ve dosya sisteminizin kararsız bir durumda olduğunda geçikmeyi önler.
ext3 ext2 'nin "journaled" halidir ve tüm sistemi hızlı geri almak için "metadata journaling" özelliğine sahiptir. Eğer bu seçenekleri arttırmak istersek "full data" ve "ordered data journaling" buna örnektir. Ext3 "hashed b-tree indexing" özelliği ile çok yüksek performans sağlar. Ext3 mükemmel bir dosya sistemidir.
ReiserFS ise "B*-tree" tabanlı bir dosya sistemidir. ReiserFS, ext2 ve ext3 gibi çok iyi performansa sahiptir. ReiserFS ayrıca "metadata journaling" özelliğine de sahiptir. Özellikle 2.4.18+ sürümleri için mevcuttur. ReiserFS çok büyük boyutlarda sabit disk bölümleri yaratmak isteyeceğiniz zaman kullanacağiniz dosya sistemi olmalıdır.
XFS Gentoo Linux'un tam destek( xfs-sources kerneli) verdiği "metadata journaling" özelliğine sahip bir dosya sistemidir. Bu sistemi sadece SCSI ve UPS sistemi olanlara tavsiye ederiz. Çünkü XFS dosya sistemi RAM ile çok ilişki içindedir ve kullandığınız bir program herhangi bir sebebte dolayı çökerse verilerinizin kaybolmasına sebep olabilir.
JFS IBM tarafından geliştirilen yüksek performanslı "journaling" dosya sistemidir. Yeni bir dosya sistemidir ve henüz daha sağlamlığı hakkında fazla deliller bulunmamaktadır.
Dosya Sistemlerini Bölümlere Uygulama
Bir disk bölümü üzerine istediğimiz dosya sistemini kurmak için gerekli küçük programlar bulunmaktadır. Bunlar aşağıdaki tabloda belirtilmiştir:
| Dosya sistemi |
Komut |
| ext2 |
mke2fs |
| ext3 |
mke2fs -j |
| reiserfs |
mkreiserfs |
| xfs |
mkfs.xfs |
| jfs |
mkfs.jfs |
Boot bölümünü boot bölümünü (yani bizim örneğimizde /dev/hda1 ) ext2 olarak ve kök (root) ( bizim örneğimizde /dev/hda3 ext3 olarak tanımlamak istersek:
Kod Listeleme 4.1: Dosya Sistemlerini Uygulama |
# mke2fs /dev/hda1
# mke2fs -j /dev/hda3
|
Şimdi dosya sistemlerini daha önceden yarattığımız sabit disk bölümleri için ayarlamış olduk.
Dosya Sistemlerini Bölümlere Uygulama
Bir disk bölümü üzerine istediğimiz dosya sistemini kurmak için gerekli küçük programlar bulunmaktadır. Bunlar aşağıdaki tabloda belirtilmiştir:
| Dosya sistemi |
Komut |
| ext2 |
mke2fs |
| ext3 |
mke2fs -j |
| reiserfs |
mkreiserfs |
| xfs |
mkfs.xfs |
| jfs |
mkfs.jfs |
Boot bölümünü boot bölümünü (yani bizim örneğimizde /dev/hda1 ) ext2 olarak ve kök (root) ( bizim örneğimizde /dev/hda3 ext3 olarak tanımlamak istersek:
Kod Listeleme 4.2: Dosya Sistemlerini Uygulama |
# mke2fs /dev/hda1
# mke2fs -j /dev/hda3
|
Şimdi dosya sistemlerini daha önceden yarattığımız sabit disk bölümleri için ayarlamış olduk.
Takas (Swap) Alanını Aktif Hale Getirmek
mkswap komutu bizim işimizi görecek ve takas alanımızı yaratacaktır:
Kod Listeleme 4.3: takas alanı yaratma # |
# mkswap /dev/hda2
|
Takas alanını etkin hale sokmak için kullanacağımız komut ise swapon:
Kod Listeleme 4.4: Takas alanını aktif hale getirme |
# swapon /dev/hda2
|
Takas alanımız oluşturuldu ve başarıyla aktif edildi.
4.e. Sabit Disk Bölümlerini Bağlamak (Mounting)
Sabitdisk bölümlerimiz hazır ve dosya sistemlerimiz için ev sahipliği yapıyor. Şimdi sıra sabitdisk bölümlerimizi bağlamaya geldi. Kullanacağımız komut: mount
Sabitdisk bölümlerimizi bağlamadan önce her bölüm için dizin yaratmayı unutmayın. Aşağıdaki örnekte biz kök ve boot bağladık:
Kod Listeleme 5.1: Sabit disk bölümlerini bağlamak |
# mount /dev/hda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/hda1 /mnt/gentoo/boot
|
Not:
Eğer /tmp dizinini ayrı bir sabitdisk bölümüne koymak istiyorsanız, bağlamadan önce aşağıdaki komutunu kullanarak izin verdiğinizden emin olun: chmod 1777 /mnt/gentoo/tmp. Aynı şey /var/tmp dizini içinde geçerlidir.
|
Ayrıca çekirdeğimiz için /proc dizinini bağlamamız gerek. Bunu yapmak için ilk olarak
/mnt/gentoo/proc dizinini oluşturmak sonra mount ile bağlamamız gerekli:
Kod Listeleme 5.2: /mnt/gentoo/proc bağlanma noktası oluşturma |
# mkdir /mnt/gentoo/proc
# mount -t proc none /mnt/gentoo/proc
|
Şimdi diğer bölüme geçebilirsiniz : Gentoo Kurulum Dosyalarının Kurulması
5. Gentoo Kurulum Dosyalarının Kurulması
5.a. Bir Aşama(Stage) Arşivi Yüklemek
Zaman ve Tarihi Doğru Olarak Yüklemek
Devam etmeden önce sisteminizin saat/tarih ayarlarını yapmalısınız. Yanlış ayarlanmış bir zaman aşaması gelecekte size sorun çıkarabilir.
Güncel saat/tarih ayarlarınızı kontrol etmek için date komutunu kullanabilirsiniz:
Kod Listeleme 1.1: Zaman/Tarih kontrol etmek |
# date
Thu Apr 1 16:21:18 CEST 2004
|
Eğer saat/tarih yanlış ise bunu date MMDDhhmmCCYY
paremtreleri ile ayarlayabilirsiniz: (M Ay, D Gün h saat, m dakika, C yüzyıl ve
Y sene). Zamanı/Tarihi mesela 29 nisan 2004, 15:49 ayarlamak için aşağıdaki komutu kullanabiliriz:
Kod Listeleme 1.2: Saat/Tarih ayarlamak |
# date 040116212004
|
Bir Seçim Yapmak
Sıradaki adım karar verdiğiniz aşama (stage) arşivini sisteme yüklemek. Bunun için karar verdiğiniz Aşama arşivini internetten Tarball olarak indirebilir yada LiveCD kullanıyorsanız oradan kopyalaya bilirsiniz.
5.b. Varsayılan: Aşama(stage) Paketlerini İnternetten İndirme
İnternet'ten aşama(stage) arşivini indirme
İlk önce Gentoo bağlanma(mount) noktasına gitmelisiniz, yukardaki açıklamarı takip ettiyseniz şuanda Gentoo bölümüne bağlı olmanız ve bağlı klasörünüzde bu /mnt/gentoo olabilir:
Kod Listeleme 2.1: Gentoo bağlanma noktasına gitmek |
# cd /mnt/gentoo
|
Kurulum yönteminden bağımsız olarak, Aşama arşivini indirmek için bir çok yazılım bulunmaktadır. Mesela lynx erişilebilir bir durumdaysa direk olarak Gentoo
yansı adreslerine gidin ve kendinize bir yansı seçin. Seçtikten sonra
releases/ klasörüne gitmelisiniz, sonra kullandığınız mimariye görex86/ altına gidip , güncel olan Gentoo sürümünü (2004.1)
seçin ve sonra olarak stages/ klasöründe işlemcinize göre uygun Aşama-arşivleri bulacaksınız. Birini seçtikten sonra lynx tarayıcısında D tuşuna basarak indirin. İndirme işlemi bittikten sonra Q tuşuyla tarayıcıyı kapatabilirsiniz.
Not: Gentoo Hardened Aşamalarının (x86 mimarı için olanlar) bulunduğu bölüm: hardened/stages/.
|
Kod Listeleme 2.2: Lynx'le yansı listesini açmak |
# lynx http://www.gentoo.org/main/en/mirrors.xml
|
Eğer lynx kullanma olasılığınız yok ise links2 kullanabilirsiniz.
links2 daha gelişmiş olmasına rağmen lynx 'e göre bazı noksanları var. Mesela verdiğimiz proxy ayarlarını kullanmayabilir. Böyle bir durumda links2 tarayıcımızı links2 -http-proxy
proxy.server.com:8080 parametresiyle çalıştırabiliriz. Geri kalan işlem ise lynx 'de olduğu gibidir.
Kod Listeleme 2.3: Yansı listesini links2'yle açmak |
# links2 http://www.gentoo.org/main/en/mirrors.xml
# links2 -http-proxy proxy.server.com:8080 http://www.gentoo.org/main/en/mirrors.xml
|
İndirdiğiniz Aşama(stage) arşivinin bozuk olmadığına emin olmak için
md5sum yazılımını kullanabilirsiniz. Yansı da bulunan Aşama-arşivinize ait olan md5sum dosyasını, indirmiş olduğunuz arşivle md5sum yazılımıyla karşılaştırın.
Kod Listeleme 2.4: Aşama-arşivini kontrol etmek |
# md5sum stage1-x86-20030910.tar.bz2
6cda1cc745ba882731ac07fbae0dd973 stage1-x86-20030910.tar.bz2
|
Aşama(Stage) Arşivini Açmak
Şimdi indirmiş olduğunuz Aşama-arşivini sisteminizin içinde açmalısınız. Bu işlem için GNU tar yazılımını kullanacağız, çünkü en kolay yöntem bu.
Kod Listeleme 2.5: Aşama arşivini açmak |
# tar -xvjpf stage?-*.tar.bz2
|
-xvjpf parametresini kullandığınıza emin olun. Parametredeki x 'in anlamı
açmak (extrackt) için , v bilgi vermek için ((ing: Verbose, şart değil ama genede olası hataları görmek için ideal) , j parametresi bzip2 ile açmak için, p parametresi dosya haklarının aynen kalması ve f bir dosyayı açacağımızı bildiren ve standart veriyi kullanmayacağımızı belirten parametre anlamındadır.
Aşama arşiviniz sisteme yüklendikten sonra Portage Kurulumu ile devam ediniz.
5.c. Alternatif: LiveCD'deki Aşama(stage) Paketerini Kullanmak
Aşama Arşivini Açmak
CD deki Aşama arşivleri /mnt/cdrom/stages klasöründe bulunmaktadır. Klasör içinde kilerini görüntülemek içinlskomutunu kullanın:
Kod Listeleme 3.1: CD'de bulunan Aşama-arşivlerinin listelenmesi |
# ls /mnt/cdrom/stages
|
Eğer sistem aşağıda olduğu gibi bir hata verirse CD-ROM'unuzu mount etmelisiniz:
Kod Listeleme 3.2: CD-ROM'u bağlamak(mount etmek) |
# ls /mnt/cdrom/stages
ls: /mnt/cdrom/stages: No such file or directory
# mount /dev/cdroms/cdrom0 /mnt/cdrom
# ls /mnt/cdrom/stages
|
Şimdi Gentoo bağlanma (mount) noktasına gitmeliyiz (genellikle /mnt/gentoo):
Kod Listeleme 3.3: /mnt/gentoo klasörüne gitme |
# cd /mnt/gentoo
|
Burada seçmiş olduğunuz Aşama arşivini şimdi GNU tar yazılımını kullanarak açacağız. Kesinlikle listeleme 11'de kullandığımız parametreyi (-xvjpf)! kullanmaya özen gösterin! Örnek olarak stage3-20031011.tar.bz2 arşivini Kod Listesi 11 de kuracağız, siz bu dosya ismini seçmiş olduğunuz Aşama-arşivi ismiyle değiştiriniz.
Kod Listeleme 3.4: Aşama arşivini açmak |
# tar -xvjpf /mnt/cdrom/stages/stage3-20031011.tar.bz2
|
Şimdi Aşama(stage) paketleri kuruldu ve Portage Kurulumu ile devam edebiliriz.
5.d. Portage Kurulumu
Ağ ile mi yoksa ağ olmadan mı?
Eğer internet bağlantınız yoksa LiveCD'deki snapshotlardan birini kullanmalısınız, sonraki adımlarda önderlenmiş paketler kullanmak isterseniz (mesela gentoo kurumunu hızlandırmak için) mutlaka LiveCD deki Snapshotlardan birini seçmelisiniz. Diğer kullanıcılar mesela önümüzdeki adımlarda emerge ile güncel bir Portage ağacı(Tree) indirecekler.
Aşağıdaki bölümlerden birisi ile devam edebilirsiniz:
Portage Snapshot'un ve Kaynak Kodun LiveCD'den Kurulumu
Universal LiveCD'lerde bir Portage Snapshot'u bulunmaktadır. Bu bölümü okuduğunuza ve bu yöntemi seçtiğinize göre LiveCD kullandığınızdan yola çıkabiliriz. Devam etmek için LiveCD'de bulunan yansımayı (Snapshot) yüklememiz gerek, hangi Snapshot'un /mnt/cdrom/snapshots/ klasöründe bulunduğuna lütfen tekrar kontro ediniz:
Kod Listeleme 4.1: /mnt/cdrom/snapshots/ içeriği |
# ls /mnt/cdrom/snapshots
|
Seçtiğiniz Snapshot'u tar komutuyla açabilirsiniz, tekrardan verdiğimiz seçenekleri bire bir aktarmaya özen gösterin. Dikkat edilmesi başka bir unsurda -C 'yi büyük C harfi olarak yazmak, (küçük colarak değil). Sıradaki örneğimizde
portage-20031011.tar.bz2 snapshotunu kullanıyoruz, burda bu snapshot'un yerine sizin seçmiş olduğunuz Portage Snapshot'u yazmalısınız.
Kod Listeleme 4.2: Portage Snapshot'unun kurulumu |
# tar -xvjf /mnt/cdrom/snapshots/portage-20031011.tar.bz2 -C /mnt/gentoo/usr
|
Şimdiyse CD'de bulunan tüm kaynak kodunu kopyalamalıyız:
Kod Listeleme 4.3: Kaynak kodun kopyalanması |
# mkdir /mnt/gentoo/usr/portage/distfiles
# cp /mnt/cdrom/distfiles/* /mnt/gentoo/usr/portage/distfiles/
|
Portage snapshot şimdi kuruldu ve Derleyici Parametrelerininin Ayarlanması bölümü iled devam edebiliriz.
5.e. Derleyici Parametrelerininin Ayarlanması
Giriş
Gentoo'yu ayarlamak için portage'i etkileyen bazı değişkenler verilebilir. Bu değişkenlerin tümü (
export komutu ile) ortam değişkenleri olarak tanımlanabilir. Ama bu yöntem kalıcı bir çözüm değildir. Ayarlarınızın kalıcı olması için portage size/etc/make.conf ayar dosyasını sunuyor. Şimdi bu dosyayı ayarlayacağız.
Not:
Tüm değişkenlerin açıklamalı anlatımını
/mnt/gentoo/etc/make.conf.example dosyasında bulabilirsiniz. Başarılı bir Gentoo kurulumu için vereceğimiz değişkenleri kullanmaya özen gösteriniz.
|
Dilediğiniz bir editörü (biz bu durumda nanoeditörünü kullandık) kullanarak, tanıtacağımız ayarlı değişkenlerle /etc/make.conf dosyasını biçimlendirmeliyiz.
Kod Listeleme 5.1: /etc/make.conf dosyasını editörle açmak |
# nano -w /mnt/gentoo/etc/make.conf
|
Sizinde çabucak görebileceğiniz gibi, make.conf.example dosyası tipik bir yapılandırma dosyasıdır: Kullanmak istemediğiniz satırların başına "#" koyabilirsiniz. Kullanmak istediğiniz satırların başında ise sadece değişken tanımlamaları olmalıdır, örn: VARIABLE="content"
CHOST
Uyarı:
Aşama1 kurulumu dışında make.conf dosyasında bulunan CHOST ayarlarına dokunmamakta fayda vardır. Sonuçta sizi bozuk bir sistem bekleyebilir.
Tekrardan: CHOST değişkenini sadece Aşama1 (stage1) kurulumunda ayarlamalısınız.
|
CHOST değişkeni gcc derleyicisiin yazılımları tercüme ederken hangi mimariyi kullanacağını belirler. Bunlar :
| Mimari |
Alt Mimari |
CHOST Ayarları |
| x86 |
i386 |
i386-pc-linux-gnu |
| x86 |
i486 |
i486-pc-linux-gnu |
| x86 |
i586 |
i586-pc-linux-gnu |
| x86 |
i686 veya daha yükseği (athlon'da dahil) |
i686-pc-linux-gnu |
| alpha |
|
alpha-unknown-linux-gnu |
| ppc |
|
powerpc-unknown-linux-gnu |
| sparc |
|
sparc-unknown-linux-gnu |
| hppa |
(generic) |
hppa-unknown-linux-gnu |
| hppa |
pa7000 |
hppa1.1-unknown-linux-gnu |
| hppa |
pa8000 ve yükseği |
hppa2.0-unknown-linux-gnu |
| mips |
|
mips-unknown-linux-gnu |
| amd64 |
|
x86_64-pc-linux-gnu |
CFLAGS ve CXXFLAGS
CFLAGS ve CXXFLAGS değişkenlerinin tanımı gcc derleyicisinin C ve C++ derleyicisini uygun hale getirir. Burada bu ayarları global tanımlasak bile en iyi verimi Flag'leri her yazılım için ayrı tanımlayarak elde ederiz. Bunun sebebi her yazılımın derlenirken ayrı davranmasıdır ve ayrı özellikler gösterebilmesidir.
make.conf dosyasını uygun hale getiren Flag'leri tanımlarken sistemin genel olarak ayarlamaya özen gösterin. Bu değişkenlerde denemelerde bulunmayın, aşırı fanatik tanımlarmalar yazılımlarda hatalara yol açabilir
Burada en uygun hale getiren tüm parametreleri açıklamayacağız. Bunları öğrenmek için GNU
Online Manual(s) veya gcc info page (info gcc sayfasına bakmanız gereklidir. Bunun dışında make.conf.example dosyası bir sürü örnek ve bilgi barındırmakta.
İlk ayarlamamız -march= flag'ı . Flag işlemcimizin mimarisini belirliyor. Yapılabilecek seçenekler make.conf.example dosyasında açıklanmış halde bulunuyor. Örnek olarak x86 Athlon XP'nin mimarisini ayarlayalım.
Kod Listeleme 5.2: GCC'nin march ayarı |
-march=athlon-xp
|
İkinci paremetremiz ise -O flag'ı dır. (DIKKAT: Büyük O harfidir(Osmanın O harfi gibi), sıfır(0) rakamı ile karıştırmayın). Bu Flag'ımız gcc derleyicisini uygun hale getiren sınıflandırmasıdır. Verilebilir sınıflardan bazıları s (for size-optimized),
0 (zero - for no optimizations), 1, 2 veya 3 Flag'ı daha yüksek hız ulaştırmak için kullanılabilir. (Her sınıf kendinden ufak sınıfların Flag'larını miras alablir. Mesela bir Sınıf-2 uygun hale getirme seçeneği olarak kullanmak istersek:
Kod Listeleme 5.3: GCC O değişkeninin ayarları |
-O2
|
Bunların dışında çok kullanılan uygun hale getiren Flag'lerden bazıları -pipe (geçici dosyalar yerine farklı tercüme aşamalarındaki iletişimde pipe kullanıyor) ve fomit-frame-pointer (bu seçenekle fonksiyonlar için kullanılan Frame Pointer ihtiyaç duymadığında kayıt tutulmuyor).
CFLAGS CXXFLAGS değişkenlerinde birden fazla uygunlaştırma flag'leri birleştirerek kullanılabiliniz; aşağıdaki örneğimizde olduğu gibi:
Kod Listeleme 5.4: CFLAGS ve CXXFLAGS değişkenlerinin tanımlanması |
CFLAGS="-march=athlon-xp -pipe -O2"
CXXFLAGS="${CFLAGS}"
|
MAKEOPTS
MAKEOPTS değişkeniyle kaç tane paralel derleme işleminin bir paketi derlerken çalışmasını belirleriz. Tavsiye edilen sayı makinemizde bulunan işlemci sayısının bir fazlasıdır.
Kod Listeleme 5.5: Basit tek işlemcili bir makina için MAKEOPTS değişkeni |
MAKEOPTS="-j2"
|
Hepsi Bu Kadar
/mnt/gentoo/etc/make.conf dosyanızı kaydedin ve şimdi Gentoo Temel Sisteminin Kurulması ile devam edebilirsiniz.
6. Gentoo Temel Sisteminin Kurulması
6.a. Chrooting
İsteğe Bağlı: Yansı Seçimi
Eğer sisteminizi Gentoo LiveCD ile başlattıysanız,
/etc/make.confdosyanızı aynı Portage ve kaynak kodlarını kullanan en hızlı yansıları bulup, güncellemesi için
mirrorselectkullanabilirsiniz. (İnternet bağlantısına ihtiyaç duyar):
Kod Listeleme 1.1: En hızlı yansıları seçme |
# mirrorselect -a -s4 -o >> /mnt/gentoo/etc/make.conf
|
Eğer herhangi bir nedenle mirrorselect çalışmazsa paniklemeyin. Bu kısım isteğe bağlıdır, öntanımlı ayarlarda yeterli olacaktır.
DNS Bilgisini Kopyalamak
Yeni ortama geçmeden önce /etc/resolv.conf dosyasındaki DNS bilgilerinin kopyalanması gerekiyor. /etc/resolv.conf ağınızın Nameserver'larını içeriyor.
Kod Listeleme 1.2: DNS bilgisinin kopyalanması |
# cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
|
Yeni Ortama Giriş Yapmak
Şimdi tüm bölümler hazırlandı ve temel ortam yüklendi, yeni ortama chrooting yoluyla giriş yapma zamanı. Bu şu anki yükleme ortamından (LiveCD ya da başka bir yükleme yöntemi), sizin yükleme sisteminize geçeceğimiz anlamına geliyor. (kısaca hazırlanmış HDD bölümlerine).
chrooting yöntemi üç adımda tamamlanıyor. İlk önce kök dizinimizi / (yükleme ortamındaki), /mnt/gentoo (sizin HDD bölümünüzdeki) olarak değiştiriyoruz. Sonra env-update kullanarak (ortam değişkenlerini yaratması için) yeni ortamı yaratıyoruz. Son olarak, bu değişkenleri source komutunu kullanarak sistem belleğine yüklüyoruz.
Kod Listeleme 1.3: Yeni ortam için "chroot" işlemi |
# chroot /mnt/gentoo /bin/bash
# env-update
Regenerating /etc/ld.so.cache...
# source /etc/profile
|
Tebrikler! Şu an kendi Gentoo Linux ortamınızdasınız. Elbette kurulumun bitmesine henüz uzağız :-)
İsteğe Bağlı: Portage'i Güncellemek
Eğer bir önceki bölümde Portage paket listesini yüklemediyseniz, İnternet üzerinden Portage indirmeniz gerekmektedir. emerge sync bunu sizin için yapar. Diğer kullanıcılar bu kısmı geçerek USE Değişkeninin Yapılandırması bölümünden devam edebilirler.
Kod Listeleme 1.4: Portage'i Güncellemek |
# emerge sync
# emerge-webrsync
|
Eğer Portage'in yeni bir sürümünün olduğuna ve Portage'i güncelleyebileceğinize dair bir uyarı alırsanız, iptal edebilirsiniz. Portage kurulum sırasında güncellenecektir.
USE Değişkeninin Yapılandırması
USE , Gentoo'nun kullanıcılarına sunduğu çok güçlü bir değişkendir. Bir çok program mutlak nesneler için isteğe bağlı seçeneklerle ya da seçenek olmadan derlenebilir. Örnek olarak, bazı programlar gtk desteği ile, ya da qt desteğiyle derlenebilir. Diğerleri SSL desteği ile ya da SSL desteği olmadan derlenebilir. Hatta bazı programlar X11 desteği (X-server) yerine framebuffer (svgalib) desteği ile derlenebilir.
Çoğu dağıtım, paketleri olabildiğince destek ile derler, programların boyutunu ve çalışma zamanını arttırmak için bağımlılık hatalarını belirtmemeye özen gösterir. Gentoo ile bir paketin hangi seçeneklerle derleneceğini belirtebilirsiniz. İşte burada USE rol alıyor.
USE değişkeni ile derleme seçeneklerinde bulunan anahtar kelimeleri belirtebilirsiniz. Örnek olarak,vssl anahtarı, ssl destekleyen programları ssl desteği ile kuracaktır.
-X X-server desteğini kaldıracaktır (eksi işareti önde olmalıdır). gnome gtk -kde -qt programlarınızı gnome (ve gtk) desteği ile, fakat kde (ve qt) desteği olmadan derleyecektir. Sisteminizi tamamiyle GNOME'a uyumlu hale getirecektir.
Öntanımlı USE ayarları
/etc/make.profile/make.defaults içindedir./etc/make.conf dosyasında belirttiğiniz değişkenler, bu öntanımlı ayarların ardından hesaplanmıştır.Eğer USE yarlarına herhangi bir şey eklediyseniz, o seçenek öntanımlı listeye eklenir. Eğer USE ayarlarından herhangi bir şey kaldırdıysanız (seçeneğin önüne eksi işareti koyarak) o seçenek öntanımlı listeden çıkarılır (eğer ön tanımlı listede bulunuyorsa). Asla /etc/make.profile
dizininde bir değişiklik yapmayın; Portage'i güncellediğinizde bu dizin yeniden yazılacaktır!
USE değişkeninin tam bir açıklaması Gentoo El Kitabı'nın ikinci bölümünde bulabilirsiniz; Bölüm 1: USE flags. Ayrıca tam bir başka açıklamayı sisteminizde /usr/portage/profiles/use.desc dosyasında da bulabilirsiniz.
Kod Listeleme 1.5: Kullanılabilir USE seçeneklerini görme |
# less /usr/portage/profiles/use.desc
|
Bir örnek olarak KDE tabanlı; DVD, ALSA ve CD yazma için bir sistemin USE ayarlarını gösterelim:
Kod Listeleme 1.6: /etc/make.conf dosyasını açma |
# nano -w /etc/make.conf
|
Kod Listeleme 1.7: USE ayarları |
USE="-gtk -gnome qt kde dvd alsa cdr"
|
İsteğe Bağlı: Dağıtım Derleme Kullanımı
Eğer sistemlerin koleksiyonunu yapmakla ilgileniyorsanız, bizimDistCC Rehberimize göz atmak isteyebilirsiniz. Distcc kullanarak, bir çok sistemin işlemci gücüne ek olarak kurulum da kullanabilirsiniz.
6.b. Aşama1(Stage1), Aşaram2(Stage2) ve Aşama3(Stage3) Arasındaki Farklar
Şimdi rahatlayın ve bundan sonraki adımları düşünün. Size aşama1, aşama2 ve aşama3'den birini seçmenizi söylemiştik ve bu seçimlerin kurulum sırasında sonraki adımlar için önemli olduğu konusunda uyarmıştık. İşte burası yaptığınız seçeneğin sonraki adımları etkileyeceği ilk yer.
6.c. Aşama1(Stage1)'den Aşama2(stage2)'ye İlerleme
Bootstrapping Girişi
Şimdi siz her şeyi gelişi güzel derlemek istiyorsunuz öyle mi? Tamam o zaman :-)
Bu adımlarda, Gentoo sisteminizinbootstrap'nı jazırlayacagız. Bu işlem uzun zaman sürer, fakat kullanıma en iyi derecede ayarlanmış, sıfırdan başlayarak makinenizin ihtiyaçları için hazırlamak en iyi sonucu verir.
Bootstrapping şu anlama gelmektedir: GNU C kütüphanesi, GNU Derleyici Koleksiyonu ve bir kaç anahtar sistem programını yapmaktır.
Bootstrapping'e başlamadan önce, size isteyebileceğiniz ya da istemeyeceğiniz bir kaç seçeneği listeleyeceğiz. Eğer bunları okumak istemiyorsanız,Sistemi Bootstrapping İşleminden Geçirme bölümünden devam edin.
İsteğe Bağlı: Derleme Süresini Azaltma
Eğer bootstrapping işlemini hızlandırmak istiyorsanız, java desteğini seçmeyebilirsiniz. Bu GNU Derleme Koleksiyonu ve GNU C kütüphanesi; java desteği olmadan (bu derleme süresini düşürecektir) derleneceği anlamına geliyor. Bu durumda GNU Java Derleyicisi (gcj) sistemde olmayacak, fakat bu java uygulamalarını ve diğer java malzemelerini kullanamayacağınız anlamına gelmiyor.
Java desteğini kapatmak için, bootstrap scriptini başlatmadan önce USE="-java" seçeneğini kullanın.
Kod Listeleme 3.1: Java desteğini kapatma |
# export USE="-java"
|
Bootstrapping'den sonra değişkenleri unset işleminden geçirmeyi unutmayın:
Kod Listeleme 3.2: USE değişkenini unset işleminden geçirme |
# unset USE
|
İsteğe Bağlı: Önce Kaynakları İndirme
Eğer önce tüm kaynakları kopyalamadıysanız, bootstrap scripti tüm gerekli dosyaları indirecek. Bootstrap bu internet bağlantısı gerektirir demeden çalışmaya koyulacaktır :-) Eğer kaynakları bootsprap işleminden önce ve sonra indirmek istiyorsanız (örnek olarak, eğer derleme esnasında internet bağlantısını açmak istemiyorsanız), bootstrap'in -f parametresini kullanınız (bu tüm kaynak kodlarını sizin için alacak).
Kod Listeleme 3.3: Gerekli Kaynakları İndirme |
# cd /usr/portage
# scripts/bootstrap.sh -f
|
Sistemi Bootstrapping İşleminden Geçirme
Tamam o zaman, klavyenizi alın ve bootstrap'i başlatmak için sıradaki komutları kullanın. Daha sonra kendinize meşgul olacak birşey bulun çünkü bu adım biraz uzun zaman alacak :-)
Kod Listeleme 3.4: Sistemi Bootstrapping işleminden geçirme |
# cd /usr/portage
# scripts/bootstrap.sh
|
Eğer önceden /etc/make.conf içindeki CHOST ayarlarında değişiklik yaptıysanız, bazı değişkenleri GCC'nin hızlı çalışması için belli bir düzende tekrar hazırlamanız gerekir:
Kod Listeleme 3.5: Ortam Değişkenlerini Tekrar Hazırlama |
# source /etc/profile
|
Şimdiki adımımız : Aşama2'den Aşama3'e İlerleme.
6.d. Aşama2'den Aşama3'e İlerleme
Giriş
Eğer bu bölümü okuyorsanız, sistemi bootstrap işleminden geçirdiniz (çünkü öncesinde bootstrap işlemini yaptınız yaaşama2'ikullanıyorsunuz). Şimdi tüm sistem paketlerini kurmanın zamanı geldi.
Tüm sistem paketleri? Hayır, tam olarak böyle değil. Bu adımda, kullanmak için başka alternatifi olmayan paketleri kuracaksınız. Bazı sistem paketleri bir kaç alternatife sahip (sistem kayıtçıları gibi) ve Gentoo tamamen seçenekler hakkında. Size sadece bir tanesi konusunda baskı yapmak istemiyoruz.
İsteğe Bağlı: Bitirilecekleri Görme
Eğer hangi paketlerin kurulacağını görmek istiyorsanız, emerge --pretend system komutunu kullanın. Bu kurulacak bütün paketleri gösterecektir. Eğer liste çok büyük görünüyorsa, less ya da more gibi bir sayfalayıcı da kullanabilirsiniz.
Kod Listeleme 4.1: 'emerge system' komutunun Neler Yapacağını Görme |
# emerge --pretend system | less
|
İsteğe Bağlı: Kaynakları İndirme
Eğer emerge 'nin siz devam etmeden önce kaynakları indirmesini istiyorsanız (örnek olarak, eğer paketlerin kurulumu esnasında internet bağlantısını açmak istemiyorsanız), emerge'ün --fetchonly seçeneğini kullanabilirsiniz (bu tüm kaynakları sizin için alacaktır)
Kod Listeleme 4.2: Kaynak Kodları Alma |
# emerge --fetchonly system
|
Sistemi Kurma
Sistemi kurmaya başlamak için, emerge system komutunu kullanın. Sonra kendinizi meşgul edecek başka bir daha bulun çünkü bu işlemde biraz uzun zaman alacak.
Kod Listeleme 4.3: Sistemi Kurma |
# emerge system
|
Güncellenmiş bir yapılandırma dosyasına dair herhangi bir uyarı alırsanız, güvenle uyarıyı görmezden gelebilirsiniz (ignore) (ve etc-update çalışırken). Gentoo sisteminiz tam olarak kurulup, başlatıldığında dökümantasyonumuzu okuyun:Configuration File Protection.
Tüm kurulum işlemleri tamamlandığında, Kernel Yapılandırması ile devam edin: Kernel Yapılandırma.
7. Kernel Ayarları
7.a. Sistem Saat Diliminin Ayarlanması
Sisteminize ilk önce hangi saat diliminde bulunduğunu söylemeniz gereklidir. Bunun için /usr/share/zoneinfo dizini altında size uyan saat dilimini bulun ve ln komutu yardımı ile /etc/localtimeolarak yönlendirin(link edin):
Kod Listeleme 1.1: Saat diliminin ayarlanması |
# ls /usr/share/zoneinfo
# ln -sf /usr/share/zoneinfo/GMT /etc/localtime
|
7.b. Installieren der Quellen
Auswählen eines Kernels
Bütün Linux satıcılarının bir araya topladığı programların temeli linux kernele dayanır. Kernel kullanıcı programları ile sistemdeki donanım arasında iletişimi sağlar. Gentoo da bütün kullanıcılarına çeşitli kernel kaynak kodları sunmaktadır. Bu çeşitli Kernel kaynaklarını ve açıklamalarını 'Gento Kernel Guide' bölümünde bulabilirsiniz:
Gentoo Kernel Guide.
PPC için ppc-sources kullanmak zorundasınız. Şimdi emerge ile kernel kodlarını kuralım:
Kod Listeleme 2.1: Kernek kaynaklarının kurulması |
# emerge ppc-sources
|
Eğer şimdi /usr/src dizinine bakarsanız, linuxadında bir dizinin oluştuğunu ve kernel sürümüne bağlandığını (link) görürsünüz:
Kod Listeleme 2.2: Kernel kaynak koduna sembolik bağlantı oluşturulması |
# ls -l /usr/src/linux
lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux->linux-2.6.5-gentoo
|
Eğer linux dizini başka bir dizine bağlı gözüküyorsa, kullandığınız kernel kaynağını ve sürüm numarasını tekrar kontrol edin veya kendi eliniz ile aşağıdaki komutu verip bağlayın:
Kod Listeleme 2.3: Kernel kaynak koduna yapılan sembolik bağlantının değiştirilmesi |
# rm /usr/src/linux
# cd /usr/src
# ln -s linux-2.6.5-gentoo linux
|
Şimdi kernelinizi kendi donanımınıza göre ayarlayabilir ve sonra derleyebilirsiniz. Bütün kernel yapılarında genkernel komutunu kulllanabilirsiniz. Bu sayede LiveCD de kullanınan generik kernelin bir benzeri oluşturulur. Ama şimdi ilkönce 'elile' nasıl ayarlayabileceğinizi aktaracağız. Çünkü bu sayede, yani elile ayarlamada kendi donanımınızı en iyi şekilde ayarlama imkanınız olur.
Eğer kerneli eliniz ile kendiniz ayarlamak istiyorsanız Varsayılan: Elile Kernel Ayarlama bölümü ile devam edin. Eğer genkernelotomatik kernel derleme için genkernel kullanıp, herşeyin otomatik olarak derlenmesini istiyorsanız. Eğer genkernel kullanacaksanız Seçmeli: Genkernel Kullanımı bölümü ile devam edin.
7.c. Varsayılan: Elile Ayarlama
Einführung
Genelde elile kernel ayarlamak linux kullanıcıları için zahmetli bir iştir ve dikkat ister. Ancak birkaç defa kendiniz kernel derlediğinizde, aslında bunun hiçde o kadar zor bir olay olmadığı göreceksiniz. Biraz tecrübe ve pratik ile sizde aynı görüşe sahip olacaksınız, inanın buna.;-)
JYalnız gerçek olan birşey varsa: Elile kernel derlemeden önce, sisteminizdeki bütün donanımı ve bu donanımın bütün özelliklerini çok iyi bilmeniz gereklidir. Donanım ile ilgili önemli birçok bilgileri /proc/pci dosyasının içinden lspci komutu ile alabilirsiniz. LiveCD de kullanılan modulları lsmod komutu yardımı ile öğrenebilir veya bir yere not alabilirsiniz. Bu sayede kernel derlerken hangi modulları işaretleyeceğiniz konusunda size bir fikir verebilir
Şimdi kendiniz kernel derlemek için kernel kaynak kodlarının bulunduğu dizine gidin ve make menuconfig
komutunu çalıştırın. Bu komut size ncurses temelli ayar menüsünün çalıştırılmasını sağlar:
Kod Listeleme 3.1: Menuconfig kullanımı |
# cd /usr/src/linux
# make menuconfig
|
Karşınıza çeşitli ayar bölümlerini gösteren bir menü çıkar. İşaretlenmesi gerekli olan önemli bazı seçenekleri kısaca aşağıda bulabilirsiniz. ( Bu zorunlu secenekleri muhakkak yapmanız gerekli. Aksi taktirde Gentoo sağlam bir şekilde çalışmayabilir).
Gerekli Seçeneklerin Seçilmesi
İlk önce geliştirme ve deneysel kullanıma izin veren kod sürücülerinin blunduğu bölümü seçmeniz gerekli. Bu bölüm gereklidir, çünkü bazı önemli Kod/Sürücü (code/drivers) bölümlerinin menülerde bulamazsınız. Onun için bu bölümü muhakkak işaretleyin:
Kod Listeleme 3.2: Selektieren experimenteller/n Codes/Treiber |
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
|
Sonra File Systems bölümüne gidin ve kullanmak istediğiniz dosya sistemlerini seçin. Ancak burda seçimn yaparken, dosya sistemleri için asla Modul oalrak seçmeyin. Çünkü Gentoo Linux altında yükleme yaparsan sorun yaşayabilrisiniz. Bu yüzden Y olarak seçim yapın. Aksi taktirde yeni Gentoo sisteminiz sabit sürücünüzdeki (harddisk) bölümleri görmeyebilir( yani mount etmeyebilir). SeçimizineVirtual memory, /proc file system, /dev
file system + Automatically mount at boot bölümlerinide ekleyin:
Kod Listeleme 3.3: Gerekli dosya sisteminin seçilmesi |
File systems --->
[*] Virtual memory file system support (former shm fs)
[*] /proc file system support
[*] /dev file system support (EXPERIMENTAL)
[*] Automatically mount at boot
[ ] /dev/pts file system for Unix98 PTYs
<*> Reiserfs support
<*> Ext3 journalling file system support
<*> JFS filesystem support
<*> Second extended fs support
<*> XFS filesystem support
|
Not:
2.6 Kernel kullanıcıları aşağıdaki bölümlerde diğer gerekli seçenekleri bulabilirler:Pseudo filesystems ( File systems bölümü altında) |
İnternete PPPoE (genelde ADSL de kullanılır) veya dial-up modem kullanarak çıkmayı planlıyorsanız aşağıdaki seçeneklere ihtiyacınız olacak:
Kod Listeleme 3.4: Selecting PPPoE necessary drivers |
Network device support --->
<*> PPP (point-to-point protocol) support
<*> PPP support for async serial ports
<*> PPP support for sync tty ports
|
Not:
2.6 Kernel kullanıcıları bu seçenekleri Networking support, ( Device Drivers alt bölümünde) bölümünde bulabilirler.
|
Aşağıdaki iki seçenekler zarar gelmeyecektir fakat o kadarda gerekli değil. Mesela PPP over Ethernet seçenekleri ve rp-pppoe tarafından kullanılır. (Eğer PPPoE kernel modulu kullanılırsa).
Not:
2.6 Kernel kullanıcıları bahsedilen seçenekleri Device Drivers bölümünde bulabilirler. |
ADB Raw Keycodes bölümünü ilk önce etkisizleştirin:
Kod Listeleme 3.5: Deaktivieren der ADB Raw Keycodes |
Macintosh Device Drivers --->
[ ] Support for ADB raw keycodes
|
Doğr RTC desteğini seçin (
Enhanced RTC seçeneğini etkisiz kılın):
Kod Listeleme 3.6: Doğru RTC seçeneğini seçmek |
Character devices --->
[ ] Enhanced RTC
General setup --->
[*] Support for /dev/rtc
|
OldWorld Makina kullanıcıları HSF desteği isteyebilir. Bu sayede MacOS bölümlerine kopyalama işlemi yapabilrisiniz.
Kod Listeleme 3.7: HSF desteğinin etkinleştirilmesi |
File Systems --->
[*] HFS Support
|
Kernel ayarlarınız bittiyse Derleme ve Kurulum ile devam edebilirsiniz.
Derleme ve Kurulum
Artık Kernel derleme için gerekli seçimi yaptınız ve kerneli derleme için gerekli adımı atmaya geldi. Menüden çıkın ve make dep && make bzImage modules modules_install komutlarını çalıştırın:
Kod Listeleme 3.8: Kernel derleme |
# make dep && make vmlinux modules modules_install
# make && make modules_install
|
Kernel derleme işlemi bittikten sonra, oluşan kernel image dosyasını /boot dizini altına kopyalayın. Aşağıdaki örneğimizde biz vanilla-sources-2.4.24 kullandık ve derledik:
Kod Listeleme 3.9: Kernel kurulumu |
# cp vmlinux /boot/kernel-2.4.24
# cp System.map /boot/System.map-2.4.24
|
Ne olur ne olmaz hesabı ile, kernel ayar dosyamızıda /boot dizini altına kopyalıyoruz. Belki ilerde ihtiyacımız olabilir. :)
Kod Listeleme 3.10: Kernel ayar dosyasının yedeklenmesi |
# cp .config /boot/config-2.4.24
|
Şimdi Değişik Kernel Modullarının Kurulması bölümü ile devam edebilrisiniz.
7.d. Alternativ: Benutzung von Genkernel
Bu bölümü okumanızdaki amaç, Gentoo da kullanılan genkernel skriptini kullanmazı düşündüğünüz içindir. Bu skript aslında bütün işinizi kolaylaştıran bir skripttir.
Kernel kaynak kodu sisteminize kurulu ve şimdi otomatik olarak bütün işlerinizi kolaylaştıracak genkernel komutunu uygulayabilirsiniz. genkernel ilk önce kernel seçimini yapar. Bunun için LiveCD de seçilen seçenekleri esas alır. Bunun anlamı; boot esnasında tanınan bütün donanım kernel seçiminde kullanılır. genkernel çalıştırıldıktan sonra elile bir ayar gerektirmediği için, Linux ve kernel dünyasına yabancı ama kendi özel kernelini derlemek isteyen Gentoo kullanıcıları için ideal bir çözümdür.
Sırası ile Genkernel nasıl kullanabilirsiniz kısaca aktaralım. İlk önce sistemimize genkernel kurmamız gerekli:
Kod Listeleme 4.1: genkernel kurulması |
# emerge genkernel
|
Kernel kaynak kodunun genkernel all yardımı ile derleyebilirsiniz. Burda bir açıklama yapmamız gerekli: genkernel komutu ile kernel derlemek, bütün donanımı destekleyen bir derleme seçeneğidir. Bununda anlamı, derleme süresinin oldukça uzun sürebileceğidir. Yani bu işlemler yapılırken ekranda hiçbir haraket olmadı diye kernel derleme olayını yarıda bırakmayın veya sisteminizi kapatmayın.!
Şunuda belirtmekte yarar var: Eğer kullandığınız boot bölümü (boot partition) ext2 veya ext3 değilse, kendiniz kernel ayarları yapmak için genkernel --menuconfig all
komutunu verin ve bu dosya sistemlerini kernel içine gömün ( DIKKAT: Modul olarak seçim yapmayın)
Kod Listeleme 4.2: Genkernel başlatmak |
# genkernel all
GenKernel v3.0.1_beta10
* ARCH: ppc
* KERNEL VER: 2.4.24
* kernel: configuring source
* kernel: running mrproper
* Kernel compiled successfully!
* Required Kernel Params:
* : root=/dev/ram0 init=/linuxrc real_root=/dev/$ROOT
* where $ROOT is the devicenode for your root partition as
* you should have specified in /etc/fstab
*
* You MUST tell your bootloader to use the generated initrd
*
* Recommended Kernel Params:
* : vga=0x317 splash=verbose
*
* Do NOT report kernel bugs (configs included) as genkernel bugs.
* Make sure you have the latest genkernel before reporting bugs
*
* For more info see /usr/share/genkernel/README
|
genkernel biter bitmez, yeni bir kernel imagesi, tüm modullar ve bir initial root disk (initrd) oluşturulmuş olur. Eğer bir önyükleyici (bootloader) kullanmak istiyorsanız, oluşan yeni kernel imagesi ve initrd daha sonra burda kullanılabilirsiniz. Bunların isimlerini bir kenara not alın. initrd doğrudan boot bittikten sonra donanımın tanınması için kullanılır. Böylece sisteminizdeki donanım için gerekli olan sürücüler otomatikman yüklenir.
Kod Listeleme 4.3: Kernel imagesinini kontrolu |
# ls /boot/kernel* /boot/initrd*
|
Sırada sistemimizin LiveCD olmaktan kurtaracak hotplug aracını emerge ediyoruz. Donanım initrd tarafından otomatik olarak tanınırken(yani sisteminizi başlatmak için gerekli olan modulları tanırken) hotplug ise otomatik olarak diğer donanımları tanır(örn: USB cihazlarınız gibi). hotplug pakedini kurup, etkin hale sokmak için aşağıdaki komutu vermeniz yeterlidir:
Kod Listeleme 4.4: Hotplug kurulumu ve etkinleştirilmesi |
# emerge hotplug
# rc-update add hotplug default
|
7.e. Değişik Kernel Modullarının Kurulması
Özel Modulların Kurulması
Eğer uyum sağlarsa emerge komutunu kullanarak bütün donanımınızın sürücülerini kurabilirsiniz. Aşağıda sık kullanılan bazı modullar ve ebuilds isimlerini bulabilirsiniz:
Lütfen bu Ebuilds dosyalarının büyük bağımlılıklarıda beraberinde getirebileceklerini untumayın. Kurmak istediğiniz pakedin bağımlı olduğu paketleri bulmak için emerge --pretend kullanabilirsiniz.. Örnek : emu10k1 Pakedi için:
Kod Listeleme 5.1: Bağımlılıkların kontrol edilmesi |
# emerge --pretend emu10k1
|
Kurulacak paketleri istemiyorsanız, emerge --pretend --verbose komutunu vererek, hangi USE-Flags bagımlılıklarına etki yapalabilir görebilirsiniz. Bu sayede istemediğiniz ve bağımlılık gerektiren bir pakedin birlikte derlenmesini engelleyebilirsiniz:
Kod Listeleme 5.2: USE-Flag kullanımı |
# emerge --pretend --verbose emu10k1
[ebuild N ] media-sound/aumix-2.8 +gpm +nls +gtk +gnome +alsa -gtk2
|
Yukardaki örnekte de görebileceğiniz gibi emu10k1 için bağımlı paketler(aumix) gtk ve gnome USE-Flags içinde. Bunun anlamı gtk da birlikte derleneceğidir.
Eğer bütün bu bağımlılıkların birlikte derlenmesini istemiyorsanız USE-Flag kullanarak bunları etkisiz hale getirebilirsiniz:
Kod Listeleme 5.3: emu10k1 için USE-Flag kullanarak gerekliliklerden vazgeçmek |
# USE="-gpm -nls -gtk -gnome -alsa" emerge --pretend emu10k1
|
Eğer sonuçtan memnun iseniz --pretend parametresini kaldırın ve emu10k1 derlemeye başlayın.
Modulların Ayarlanması
Otomatik olarak yüklenmesini istediğiniz modulları
/etc/modules.autoload.d/kernel-2.4 dosyasına ( veya kernel 2.6 kullananlar için /etc/modules.autoload.d/kernel-2.6) koyabilirsiniz. Eğer kullandığınız modul ilave bir parametre gerektiyorsa veya siz ilave bir parametre eklemek istiyorsanız bu dosya içine koyabilirsiniz.
Mevcut Modulların listesini görmek için find komutunu kullanabilirsiniz. Aşağıdaki komutdaki "<kernel_sürümüm>" bölümüne kendi kernel sürümünüzü yazıp kontrol edin:
Kod Listeleme 5.4: Mevcut modulların listelenmesi |
# find /lib/modules/<kernel_sürümüm>/ -type f -iname '*.o' -or -iname '*.ko'
|
Mesela 3c59x.o Modulunu otomatik olarak, başlangıçda yüklemek istiyorsanız, /etc/modules.autoload.d/kernel-2.4 (veya kernel-2.6) dosyasının içine bunu yazmanız gerekir.:
Kod Listeleme 5.5: /etc/modules.autoload.d/kernel-2.4 |
# nano -w /etc/modules.autoload.d/kernel-2.4
|
Kod Listeleme 5.6: /etc/modules.autoload.d/kernel-2.4 veya kernel-2.6 |
3c59x
|
Ve aktif hale getirmek için modules-update komutunu çalıştırın. Böylece /etc/modules.conf dosyasının içindeki değişiklikler etkinleşecektir:
Kod Listeleme 5.7: modules-update komutunun uygulanması |
# modules-update
|
Şimdi Sistem Ayarlarının Yapılması bölümü ile devam edebiliriz.
8. Sisteminizin Ayarlanması
8.a. Dosya Sistem Bilgileri
fstab nedir?
Linux altında tüm sabit disk bölümleriniz /etc/fstab dosyasında listeli bir şekilde bulunur. Bu dosya sabit disklerinizin bağlantı noktalarını, nasıl bağlandıklarını (spesifik özellikleri ile birlikte) göstermektedir.
/etc/fstab Dosyasının Oluşturulması
/etc/fstab 'ın kendine özel bir sözdizimi(syntax) vardır. Her satır 6 alan içerir ve birbirinden boşluk karakteri ile ayrılır. Her alanın kendine ait anlamı bulunmaktadır.
-
İlk alan sabit disk bölümünü (partition) (aygıtın bulunduğu dizin) gösterir.
-
İkinci alan hangi bölüm bağlantı noktasını (moutpoint) gösterir.
-
Üçüncü alan dosya sistemini(filesystem) gösterir.
-
Dördüncü alan, bağlama komutu(mountoptions) ile kullanılan seçenekleri gösterir. Her dosya sistemi kendine has seçeneklere sahiptir.Bu seçenekleri daha sonra "man" sayfalarını kullanarak bakmanızı istiyoruz. Birden fazla bağlama seçenekleri birbirinden virgül "," karakteri ile ayrılır.
-
Beşinci alan dump için, dosya sistemi yedeklenerek sistemin dökümünün çıkarılmasının gerekip gerekilmediğini belirlemek için kullanılır.
-
Altıncı alan fsck tarafından sisteminiz düzgün bir şekilde kapatılmadığında hangi dosya sisteminin kontrol edilip edilmeyeceğini, edilecekse hangi sırada kontrol edeceğini belirtir. Eğer alan 1 ise bir "root" disk bölümünü belirtir, 0 değeri ise fsck komutunun dosya sistemini kontrol etmek zorunda olmadığını belirtir.(2 değerini de kullanabilirsiniz).
Şimdi nano editörümüzle /etc/fstab dosyamızı yaratmaya geldi,bunun için:
Kod Listeleme 1.1: etc/fstab dosyasının oluşturulması |
# nano -w /etc/fstab
|
/boot sabit disk bölümümüzün nasıl yazıldığını dikkatle inceleyelim.
Bizim örneğimizde /boot sabit disk bölümü /dev/hda1 olarak ext2 dosya sistemini kullanmaktadır. Otomatik olarak bağlanamaz. Ohalde bize gerekli olan satırlar şöyle olabilir:
Kod Listeleme 1.2: /etc/fstab dosyası içindeki /boot satırı |
/dev/hda1 /boot ext2 noauto 1 2
|
Bazı kullanıcılar performansı daha arttırmak için bağlama seçeneklerinden olan noatime 'ı eklemek ister (aslında bu gerekli değildir):
Kod Listeleme 1.3: /etc/fstab daki /boot dizinin geliştirilmesi |
/dev/hda1 /boot ext2 noauto,noatime 1 2
|
Eğer bu şekilde devam edersek, liste sonunda aşağıdaki gibi bir görünüme sahip olmuş olacağız:
Kod Listeleme 1.4: /etc/fstab taki 3 satır |
/dev/hda1 /boot ext2 noauto,noatime 1 2
/dev/hda2 none swap sw 0 0
/dev/hda3 / ext3 noatime 0 1
|
Bitirmek için /proc, tmpfs(gerekli) ve cd-rom sürücünüz için gerekli olanlar: (tabi ki de başka sürücüler ve sabit disk bölümleri ekleyebilirsiniz):
Kod Listeleme 1.5: Tam bir /etc/fstab örneği |
/dev/hda1 /boot ext2 noauto,noatime 1 2
/dev/hda2 none swap sw 0 0
/dev/hda3 / ext3 noatime 0 1
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
/dev/cdroms/cdrom0 /mnt/cdrom auto noauto,user 0 0
|
auto seçeneği dosya sistemini otomatik olarak tanınmasını sağlar ( CD rom gibi farklı dosya sistemlerini içeren değiş tokumu yapılabilir multimedya cihazları için tavsiye edilir). user seçeneği kullanıcılara CDROM u mount etmesini sağlar.
Şimdi yukarıdaki örneği kullanarak kendi /etc/fstab dosyasını yaratın.Eğer SPARC kullanıcı sı iseniz /etc/fstab dosyasına ayrıca şunu da eklemelisiniz:
Kod Listeleme 1.6: /etc/fstab ,ç,ne openprom dosya sstemi ekleme |
none /proc/openprom openpromfs defaults 0 0
|
Eğer usbfs ihtiyaç duyuyorsanız (ki yeni bilgisayarlada muhakkak bir USB cihazınız vardır) , aşağıdaki satırı da ekleyiniz:
Kod Listeleme 1.7: /etc/fstab içine USB dosya sistemini ekleme |
none /proc/bus/usb usbfs defaults 0 0
|
Şimdilik bukadar. Yaptıklarınızı tekrar tekrar kontrol edin ve /etc/fstab dosyasın kaydedip çıkın.
8.b. Ağ Bilgileri
Makine Adı,Alan Adı ve diğerleri
Kullanıcı kişinin diğer seçeneklerinden bir tanesi, bilgisayarına isim vermektir. Bu tamamıyla çok basittir, fakat kullanıcıların çoğu Linux sistemlerine isim bulmakta biraz zorlanırlar. İşlemlerimizin hızını arttırmak için biz bir şeyler hazırladı, bilmenizde fayda var, seçtiğiniz isim sonradan da değiştirilebilir. Biz hepimiz için bir isim bulduk, bu isimleri vererek sonrasında istediğiniz şekilde değiştirebilirsiniz. Şimdi makine ismi olarak tux, alan adı olarak ise homewetwork giricegiz.
Bu değerleri şimdiki aşağıdaki örnekde kullanıyoruz. İlk önce makina adını koyalım:
Kod Listeleme 2.1: Makine ismini ayarlamak |
# echo tux > /etc/hostname
|
Sonra alan ismini koyuyoruz:
Kod Listeleme 2.2: Alan ismini ayarlamak |
# echo homenetwork > /etc/dnsdomainname
|
Eğer NIS alan ismine sahipseniz aşağıdaki kodu giriniz.NIS 'in ne olduğunu bilmiyorsanız muhtemelen NIS alan adına sahip değilsiniz:
Kod Listeleme 2.3: NIS alan adının ayarlanması |
# echo nis.homenetwork > /etc/nisdomainname
|
Şimdi alan ismi(domainname) komut dosyasını ön tanımlı "runlevel" için ekleyiniz.:
Kod Listeleme 2.4: Öntanımlı çalışma seviyesine makina ismi ekleme |
# rc-update add domainname default
|
Ağ Biçimlendirmesi
"Hey biz bu bölümü yaptık demeden önce" , hatırlamanız gereken başlangıçtaki ağ ayarlarımız sadece kurulum içindi.Şimdi sıra kalıcı bir şekilde ağınızı biçimlendirmeye geldi.
Ağ ile ilgili tüm bilgileriniz /etc/conf.d/net dosyasında toplanmıştır. Henüz ağınızı elle ayarlamasını bilmiyorsanız eğer, korkmayın biz size her şeyi aşağıda açıkladık:
İlk olarak nano editörü ile /etc/conf.d/net dosyasını açın:
Kod Listeleme 2.5: /etc/conf.d/net dosyasının açılması |
# nano -w /etc/conf.d/net
|
Dosya içine ilk arayacağımız değişken iface_eth0 değişkenidir, aşağıdaki sözdizimine sahiptir:
Kod Listeleme 2.6: iface_eth0 syntaxis |
iface_eth0="<ip adresiniz> broadcast <broadcast adresiniz> netmask <netmask adresiniz>"
|
Eğer DHCP (otomatik IP alıyorsanız) kullanıyorsanız, tek yapmanız gereken iface_eth0
değişkenini dhcp olarak tanımlamak (# işaretini kaldırmanız yeterli) . rp-pppoe(ADSL kullanıcıları için) kullanıyorsanız up olarak ayarlayın.
Eğer ağınızı elle ayarlamak istiyorsanız ve bu terimlerle ilgili bilgiye sahip değilseniz Ağ Terminolijisi Anlamak bölümüne gidiniz.
Aşağıda sizin için bir kaç örnek verdik.İlki DHCP kullanmakta,ikincisi,sabit bit IP(192.168.0.2), ağ maskesi(255.255.255.0) ve yayımlama(193.168.0.255) adreslerini kullanmaktadır.Sonuncu ise rp-pppoe kullanımını göstermektedir.
Kod Listeleme 2.7: /etc/conf.d/net örnekleri |
iface_eth0="dhcp"
iface_eth0="192.168.0.2 broadcast 192.168.0.255 netmask 255.255.255.0"
gateway="eth0/192.168.0.1"
iface_eth0="up"
|
Eğer birden fazla ağ arabirimine sahipseniz, iface_eth1 ve iface_eth2 gibi extra bir iface_eth değişkeni yaratmanız gerekli. Her bilgisayar için ayrı ağ geçidi girmelisiniz.
Şimdi dosyamızı kayıt ederek güvenli bir şekilde çıkabiliriz.
Ağ Servisimizin Otomatik Olarak Başlangıçda Başlatmak
Ağ servisinizi otomatik olarak başlatabilmek için,aşağıdaki komutları ön tanımlı "runlevel" ekleyiniz. Eğer PCMCIA arabirimine sahipseniz bunu geçin. PCMCIA arabirimini kullanınız.(belgenin sonlarına doğru biz bunu size açıkladık)
Kod Listeleme 2.8: Öntanımlı çalışma seviyesine (runlevel) net.eth0 eklenmesi |
# rc-update add net.eth0 default
|
Birden fazla ağ arabirimine sahipseniz ,ayrıca net.eth1, net.eth2 gibi komut dosyalarını ln komutunu kullanarak oluşturmalısınız:
Kod Listeleme 2.9: İlaveten net.eth1 in oluşturulması |
# cd /etc/init.d
# ln -s net.eth0 net.eth1
# rc-update add net.eth1 default
|
Ağ Bilgilerinin Yazılması
Linux'unuzu ağ hakkında haberdar etmelisiniz, örneğin 3 bilgisayardan oluşan iç bir ağa sahipseniz, bu bilgisayarları IP adresleriyle birlikte /etc/hosts dosyasına eklemelisiniz. Farz edelimki ağımızda 3 bilgisayar var ise aşağıdaki işlemleri yapabiliriz:
Kod Listeleme 2.10: /etc/hosts 'in açılması |
# nano -w /etc/hosts
|
Kod Listeleme 2.11: Ağ bilgilerinin doldurulması |
127.0.0.1 localhost
192.168.0.5 jenny.homenetwork jenny
192.168.0.6 benny.homenetwork benny
192.168.0.7 tux.homenetwork tux
|
Eğer sisteminiz tekse, iç ağ'a sahip değilseniz yani 1 bilgisayarınız varsa, tek bir satır yeterli:
Kod Listeleme 2.12: Tek bir bilgisayar için /etc/hosts dosyası |
127.0.0.1 localhost
|
Devam etmek için dosyadan kayıt ederek çıkınız.
Eğer PCMCIA 'a sahip değilseniz, Sistem Bilgileri bölümüne gidebilirsiniz. PCMCIA kullanıcıları PCMCIA le ilgili başlığı okuyunuz.
İsteğe Bağlı: PCMCIA Aygıtlarının Çalıştırılması
Not:
pcmcia-cs pakedi sadece x86, amd64 ve ppc platformları için mevcuttur. |
PCMCIA kullanıcıları ilk önce pcmcia-cs paketini yüklemeleri gerekli. Bu anda USE="-X" değişkeni Xfree86 dan sakınmak için gerekli:
Kod Listeleme 2.13: pcmcia-cs pakedinin kurulması |
# USE="-X" emerge pcmcia-cs
|
pcmcia-cs paketi yüklendiği zaman ön tanımlı(default)çalışma seviyemize(runlevel) ekleyelim:
Kod Listeleme 2.14: pcmcia runlevel e eklenmesi |
# rc-update add pcmcia default
|
8.c. Sistem Bilgileri
Gentoo /etc/rc.conf dosyası geniş bir sistem bilgisine sahiptir.
Bu dosyayı açarak içerisindeki tüm bilgileri kullanabilirsiniz.:)
Kod Listeleme 3.1: /etc/rc.conf dosyanın açılması |
# nano -w /etc/rc.conf
|
Görüldüğü gibi bu dosya sisteminiz için gerekli değişkenleri ayarlayabilmek için bir çok yoruma sahip ,KEYMAP ayarlarına dikkat ediniz, aksi taktirde klavyeden girilecek olan her yanlış KEYMAP için garip sonuçlar alabilirsiniz. Örn: Türkçe Q Klayve için kullanılabilecek satır :KEYMAP="trq"
Not:
Usb tabanlı SPARC sistemleri ve klon kullanıcıları, i386 keymap olarak "us" yerine "sunkeymap" seçebilirler. |
PPC birçok sistemde x86 "keymap" lerini kullanır. önyüklemede ADB "keymap" kullanmak isteyen kullanıcılar çekirdeklerindeki ADB anahtar kodlarını olanaklı kılmak zorunda ve /etc/rc.conf daki mac/ppc "keymap" lerini ayarlamaları gerekmektedir.
/etc/rc.conf dosyasını ayarlamayı bitirdiyseniz kayıt edip çıkabilirsiniz. Bir sonraki bölüme geçiniz: Önyükleyici Ayarlanması.
9. Önyükleyici Ayarlanması
9.a. Seçim Yapmak
Başlangıç
Şu ana kadar çekirdeğiniz doğru bir şekilde ayarlandı ve tüm gerekli sistem yapılandırma dosyalarınız doğru bir şekilde derlendi. Şimdi sıra geldi önyükleyicimizi kurmaya. Önyükleyicisisteminizi başlattığınızda karşınıza gelen programdır.
Linux altında çeşitli önyükleyiciler vardır. Mesela yaBoot (NewWorld PPC Makinaları için) ve BootX (OldWorld PPC Makalinaları için).
9.b. Varsayılan: yaBoot Kullanımı
Giriş
Önemli:
yaBoot sadece NewWorld PPC basisli sistemlerde kullanılabilir!
|
yaBoot'u sisteminize kurabilmek içn iki yol izleyebilirsiniz. Yeni düzenlenmiş yabootconfig (yaboot-1.3.8-r1
ve sonrası sürümlerinde mevcut ) kullanarak otomatik ayarlanmasını sağlayabilirsiniz.
Herhangi bir sebebten dolayı yabootconfig kullanmak istemiyorsanız ( otomaik olarak
/etc/yaboot.conf dosyasını oluşturmak için) , o zaman bir editor yardımı ile açıp kendiniz eliniz ile düzeltmeniz gereklidir.
Standard: yabootconfig Kullanımı
yabootconfig tarafından diskinizdeki bütün bölümler otomatikman tanınacaktır ve 3 li bür kombinasoyn oluşturulabilir. Mesela Linux, Mac OS ve Mac OS X gibi...
yabootconfig kullanabilmek için sürücünüzde bir bootstrap olması ve /etc/fstab dosyasının içinden tanımlanmış olması gerekir. muss konfiguriert sein. İlkönce emerge --update yaboot komutunu vererek, en gücen sürümün kurulmasını sağlayın.
Kod Listeleme 2.1: yaBoot kurulumu |
# emerge --update yaboot
|
yabootconfig komutunu çalıştırın. Program çalışmaya başlayacaktır ve bootstrap yolllarını sizin onaylamanız isteyecektir. Y tuşuna basarak onaylayın (eğer doğru ise). Doğru değil ise /etc/fstab dosyasını tekrardan düzenleyin. Yabootconfig
sistem ayarlarını kontrol edecek ve /etc/yaboot.conf
dosyasını oluşturacaktır. mkofboot komutu da sonra otomatikman uygulanır. mkofboot komutu Bootstrap bölümlerinin biçimlendirilmesi için kullanılır ve buraya yaBoot ayar dosyaları kurulur.
/etc/yaboot.conf dosyasını içeriğini tekrar tekrar kontrol etmenizde fayda vardır. berprüfen. Eğer /etc/yaboot.conf dosyasında değişiklik yaparsanız , yapılan değişikliklerin aktif olması için ybin -v komutunu uygulayın.
Şimdi Gerekli Sistem Araçlarının Kurulması
bölümü ile devam edebilirsiniz.
Seçmeli: Elile yaBoot Ayarlaması
İlkönce en güncel yaboot sürümünün sisteminizde kurulu olduğunundan emin olun. Değil ise en güncel sürümü kurun:
Kod Listeleme 2.2: yaBoot kurulumu |
# emerge --update yaboot
|
Sonra hazır bitmiş halde biryaboot.conf dosyası görürsünüz. İhtiyacınıza göre bunu değiştirebilrisiniz. Serial ATA sahibi olan G5 kullanıcıları bu sürücülerini dosya içinden /dev/hda yerine /dev/sda olarak değiştirmeleri gerekmektedir. Çünkü serial ATA çihazları SCSI olarak tanınmaktadır.
Kod Listeleme 2.3: /etc/yaboot.conf |
boot=/dev/hda9
device=hd:
partition=11
delay=5
defaultos=macosx
timeout=30
install=/usr/lib/yaboot/yaboot
magicboot=/usr/lib/yaboot/ofboot
image=/boot/vmlinux
label=Linux
root=/dev/hda11
sysmap=/boot/System.map
read-only
macos=/dev/hda13
macosx=/dev/hda12
enablecdboot
enableofboot
|
yaboot.conf dosyasını düzenledikten sonra mkofboot -v komutunu uygulayarak Bootstrap bölümlerinin ayalarının kurulmasını sağlayın. eğer sonradan değişiklik yaparsanız ybin -v komutunu vermeyi unutmayın. Eski haline sokmak içinmkofboot
komutunu verdiğinizde, en eski haline gelecektir.
Diğer detaylı bilgiler için yaboot Projesi sayfasına göz atabilirsiniz.. Şimdi Gerekli Sistem Araçlarının Kurulması
bölümü ile devam edebilirsiniz.
9.c. Alternatif: BootX
Önemli:
BootX sadece OldWorld PPC basisli sistemlerde kullanılabilir!
|
Eğer BootX kullanmak istiyorsanız yapmanız gereken sadece yeniden başlangıç esnasında Control Paneldeki ayarları değiştirmenzi yeterli olacaktır. Daha sonra detaylı olarak buraya değineceğiz.
Şimdi Gerekli Sistem Araçlarının Kurulması
bölümü ile devam edebilirsiniz.
10. Gerekli Sistem Araçlarının Kurulması
10.a. Sistem Kayıtçısı
Elkitabının başlangıcında aşama3 bölümünü tanıttığımızda değinmiştik. Orda tüm gereken sistem araçlarının siz seçmeden bulunduğunu ve hatta daha başka araçların sonradan kurulabileceğini söylemiştik. Evet simdi o noktaya geldik :)
İlk seçimini yapabileceğimiz araç, sistemde olan bitenin(aktiveteleri) Protokolunu tutar. Unix ve Linux Sistem protokol tutmada haylice bir ün saldı-- eğer isterseniz, sizde aisteminizde olan biteni protokol halinde alabilirsiniz. Bu işlem sistem kayıtçısı sayesinde gerçekleşir.
Gentoo değişik sistem kayıtçıları arasında size seçim bırakır: Bunlar sysklogd (bu geleneksel sistem kayıtçı daemon'udur) , syslog-ng (geliştirilmiş bir sistem kayıtçısıdır) ve metalog (çok yönlü ayarlanabilir sistem kayıtçısı) 'dur. Daha başkalarıda olabilir, sunulan paket sayısı gün geçtikce artıyor.
Eğer karar vermediyseniz çok yetenekli
syslog-ng sistem kayıtcısını tavsiye edebiliriz.
Seçtiğiniz Sistem Kayıtçısını yüklemek için emerge yapmanız ve rc-update ile otomatik başlangıca eklemeniz kafidir. Aşağıdaki örnekte syslog-ng kayıtcısını yükleyeceğiz. Tabii ki burda kullandığımız sistem kayıtçısı ismi yerine yükleyeceğiniz sistem kayıtçısı ismiyle değiştirebilirsiniz:
Kod Listeleme 1.1: Sistem kayıtçısı yüklemek |
# emerge syslog-ng
# rc-update add syslog-ng default
|
10.b. İsteğe Bağlı: Cron Daemon
Şimdi sırada Cron Daemon var. Yüklenmesi size bağlıdır, kurma gerekliliği yoktur.
Ancak yüklenmesi tavsiye edilir. Ama bu Cron Daemon nedir ? Cron daemon belirli zamanlarda çalıştırılması için tanımlanan komutları çalıştırabilir. Bu SIK SIK ve hatta günlük kullanılan komutlarda çok pratiktir (örn. günlük, haftalık, aylık).
Gentoo Linux'ta üç değişik Cron Daemon'dan seçim yapabilirsiniz: dcron, fcron ve
vixie-cron. Bunun yüklenmesi Sistem Kayıtçısına benzer. Fakat dcron ve fcron ayarları için ek olarak Komut gerekir, crontab /etc/crontab.
Eğer emin değilseniz vixie-cron kullanmanızı öneririz.
Hazır derlenmiş paketten yükleyecekseniz vixie-cron yüklemesinde hata alırsanız, vixie-cron yerine vcron kullanın.
Kod Listeleme 2.1: Cron Daemon yüklenmesi |
# emerge vixie-cron
# rc-update add vixie-cron default
# crontab /etc/crontab
|
10.c. Dosya Sistemi Araçları
Hangi tür dosya sistemi kullanmayı düşünüyorsanız, o dosya sistemi için gereken araçları (dosya sistemini kontrol etmek, yeni dosya sistemi yapmak için) yüklemeniz gerekir.
Aşağıdaki tablo gerekli dosya sistemi için dosyaları listeler:
| Dosya sistemi |
Araç |
Kurulum komudu |
| XFS |
xfsprogs |
emerge xfsprogs |
| ReiserFS |
reiserfsprogs |
emerge reiserfsprogs |
| JFS |
jfsutils |
emerge jfsutils |
Eğer İnternete bağlanmak için rp-pppoe gerek yoksa Gentoo Kurulumunu Bitirmek ile devam edebilirsiniz. Aksi takdirde İsteğe Bağlı: Ağ Araçları bölümü ile devam edin.
10.d. İsteğe Bağlı: Ağ Araçları
İnternete bağlanmak istiyorsanız rp-pppoe pakedini kurmanız gereklidir:
Kod Listeleme 4.1: rp-pppoe kurulması |
# USE="-X" emerge rp-pppoe
|
USE="-X" düzenlemesinde, XFree bağimlılık olarak beraberinde yüklenmesini engeller (rp-pppoe paketinin arayüz (Grafiksel) araçlarıda mevcuttur, eger arayüz kullanmak isterseniz rp-pppoe paketini yeniden USE="-X" kullanmadan derleyebilirsiniz, yada XFree'yi beraberinde yükleyin-- buda baya uzun sürebilir).
Şimdi sıradaki bölüm ile devam ediyoruz: Gentoo Kurulumunu Bitirmek
11. Gentoo Kurulumunu Bitirmek
11.a. Kullanıcı Yönetimi
Root şifresi ayarlamak
Unutmadan önce, root şifresini aşağıdaki komutu kullanarak ayarlayın:
Kod Listeleme 1.1: Root şifresi ayarlama |
# passwd
|
Eğer root'un seri konsola bağlanabilmesini istiyorsanız, /etc/securetty dosyasına tts/0 ekleyin:
Kod Listeleme 1.2: /etc/securetty dosyasına tts/0 ekleme |
# echo "tts/0" >> /etc/securetty
|
Günlük Kullanım İçin Kullanıcı Eklemek
Bir Unix/Linux sistemde root olarak çalışmak tehlikelidir, ve olabildiğince bu şekilde kullanılmamalıdır. Bu sebeple günlük kullanım için bir kullanıcı oluşturmanız ısrarla tavsiye olunur.
Örnek olarak, whell (su komutuyla root olabilen), users (tüm kullanıcılar için öntanımlı) ve audio (ses aygıtlarını kullanabilen) gruplarına bağlı, ahmet adında bir kullanıcı oluşturmak için:
Kod Listeleme 1.3: Günlük kullanım için kullanıcı ekleme |
# useradd ahmet -m -G users,wheel,audio -s /bin/bash
# passwd ahmet
Password:
Re-enter password:
|
Eğer bir kullanıcının rootun yapabileceği bazı işleri yapması gerekiyorsa, su - (root izinlerine erişebilmek için) komutunu kullanabilir. Bir başka yolda eğer doğru olarak ayarlandıysa çok güvenli olan sudo paketini kullanmaktır.
11.b. Reboot ve Eğlence
Reboot İşlemi
Tebrikler! Gentoo sisteminiz şimdi hazır. Chroot işleminden geçmiş ortamdan çıkın ve bağlı bütün sabit disk bölümlerini ayırın. Sonra beklediğiniz büyülü komutu yazın: reboot.
Kod Listeleme 2.1: Sistemi yeniden başlatma |
# exit
# cd /
# umount /mnt/gentoo/boot /mnt/gentoo/proc /mnt/gentoo
# reboot
|
Tabiki başlatılabilir CD'yi çıkarmayı unutmayın, yoksa sistem Gentoo sisteminiz yerine tekrar CD'den başlar.
PPC kullanıcıları önyükleyiciyi yüklenmedikçe MacOS başlayacaktır. Bu kullanıcılar İsteğe Bağlı: BootX'i Ayarlamak bölümünü okumalıdır.MIPS kullanıcıları Gentoo'yu başlatabilmek için MIPS PROM da biraz oynama yapmalıdır. Bu kullanıcılar İsteğe Bağlı: Çalışmak için Gentoo/MIPS Edinmek bölümünü okumalıdır.
GRP kullanıcıları İsteğe Bağlı: GRP Paketlerini Yüklemek bölümünü okuyabilirler. Diğerleri Kurulum bitti, ya sonra ?bölümü ile devam edebilirler.
İsteğe Bağlı: BootX Ayarları
Önemli:
Bu bölüm sadece BootX kullanmak isteyenonly for PPC kullanıcıları içindir. Tüm diğer okuyucular bu bölümü geçmelidir. |
Makineniz MacOS ile açıldıktan sonra, BootX kontrol panelini (Control Panel) açın. Seçenekler'i (Options) seçin ve "Used specified RAM disk" bölümünün işaretini kaldırın. BootX ana ekranına geri dönüğünüzde, artık makinenizin kök diski ve bölümü için bir seçenek bulacaksınız. Bu alanları sizin sisteminize göre doldurun.
BootX başlama sırasında Linux'un başlaması için ayarlanabilir. Eğer bunu yaptıysanız, makinenizin başlangıcı sırasında önce MacOS'u başladığını, sonra BootX'in Linux'u başlattığını göreceksiniz. Daha fazla bilgi için BootX anasayfasına göz atın:
BootX home page
Eğer bir GRP kullanıcısıysanız İsteğe Bağlı: GRP Paketlerini Yüklemek bölümüyle devam edin, eğer değilseniz Kurulum bitti, ya sonra ? bölüme geçin.
İsteğe Bağlı: Çalışmak için Gentoo/MIPS Edinmek
Önemli:
Bu bölüm sadece only for MIPS kullanıcıları içindir! Tüm diğer kullanıcılar bu bölümü geçmelidir. |
Yeniden başlattığınızda (reboot), System Maintenance Menu kısmına gidin ve
Enter Command Monitor (5) seçin. Eğer Gentoo kurulumunuzu test etmek istiyorsanız, sadece
boot -f <kernel name> komutunu çalıştırabilirsiniz. Gentoo'ya başlamak istiyorsanız, MIPS PROM içerisinde bazı değişkenleri ayarlamanız gerekir:
Kod Listeleme 2.2: PROM'u Gentoo'yu Bağlatması için Ayarlama |
1) Start System
2) Install System Software
3) Run Diagnostics
4) Recover System
5) Enter Command Monitor
Option? 5
Command Monitor. Type "exit" to return to the menu.
>> setenv OSLoadPartition <root device>
>> setenv OSLoader <kernel name>
>> setenv OSLoadFilename <kernel name>
>> setenv OSLoadOptions <kernel parameters>
>> setenv SystemPartition scsi(0)disk(1)rdisk(0)partition(8)
>> setenv AutoLoad Yes
>> setenv TimeZone EST5EDT
>> setenv console d1
|
Şimdi Gentoo ile eğlenmeye hazırsınız!
İsteğe Bağlı: GRP Paketlerini Yüklemek
Önemli:
Bu bölüm GRP kullanıcıları içindir. Diğer kullanıcılar bu bölümü geçipKurulum bitti, ya sonra ? bölümü ile devam etmelidir.
|
Şimdi sisteminiz başladı, oluşturduğunuz kullanıcı olarak giriş yapın (örnek olarak, ahmet) ve su - (root yetkilerine sahip olmak için) komutunu kullanın:
Kod Listeleme 2.3: Root yetkilerine sahip olma |
$ su -
Password:
|
Şimdi ikinci CD (Gentoo Paketleri CD'si) hazırlanmış yapılara bakmak için Portage ayarlarını değiştirmemiz lazım. İlk Önce CD'yi bağlayalım:
Kod Listeleme 2.4: Paketler CD'sini bağlama |
# mkdir /mnt/cdrom
# mount /mnt/cdrom
|
Şimdi Portage'i hazırlanmış paketler için /mnt/cdrom 'u kullanması için ayarlayın:
Kod Listeleme 2.5: Portage'i /mnt/cdrom kullanması için ayarlama |
# ls /mnt/cdrom
# export PKGDIR="/mnt/cdrom/packages"
# export PKGDIR="/mnt/cdrom"
|
Şimdi istediğiniz paketleri yükleyin. Paketler CD'si bir kaç hazırlanmış yapı bulundurur, örnek olarak KDE:
Kod Listeleme 2.6: KDE yükleme |
# USE="bindist" emerge --usepkg kde
|
XFree'yi (doğrudan ya da bağımlılık olarak) yüklerken USE="bindist" kullanmanız gerekiyor. Bu Microsoft'un çekirdek fontlarını (bunları LiveCD'ler içinde veremiyoruz) indirmek için yol gösteriyor.
Çalıştırılabilir yapıları yüklediğinizden şimdi emin olabilirsiniz. Portage'i güncellemek içinemerge sync uyguladığınızda (sonra öğreneceğiniz gibi), çalıştırılabilir yapılar güncellenmiş Portage'inizdeki dosya görüntüleriyle uymayabilir. Bunu engellemek içinemerge --usepkg yerine emerge --usepkgonly deneyebilrisiniz.
Tebrikler, sisteminiz şimdi tam olarak hazırlandı! Gentoo hakkında daha fazla şey öğrenmek için Kurulum bitti, ya sonra ? bölümünden devam edin.
12. Kurulum bitti, ya sonra ?
12.a. Dökümantasyon
Tebrikler! Artık çalışan bir Gentoo sisteminiz var. Fakat burdan nereye gidiyoruz? Seçenekleriniz nelerdir? İlk önce neyi keşfedebilirsiniz? Gentoo kullanıcılarına bolca ihtimal sunar ve bu sebeple bolca dökümanda sunar (ve dökümansız ihtimallerde).
Gentoo El Kitabının İkinci bölümü ( Gentoo Altında Çalışma ) size yazılımlarınızı nasıl güncel tutabileceğinizi, daha çok yazılımı nasıl yükleyeceğinizi, USE bayraklarının neler olduğunu, Gentoo Init sisteminin nasıl çalıştığını v.s. açıklar ve bu kısmı mutlaka okumalısınız.
Eğer sisteminizi masaüstü kullanım için uygunlaştırmak istiyorsanız, ya da sisteminizin tamamiyle masaüstü kullanım için nasıl ayarlanıcağını öğrenmek istiyorsanız, Masaüstü Ayarları Kılavuzu bölümüne göz atın.
Mevcut dökümanların tamamının listesi içinDökümantasyon Kaynak Sayfası (Documentation Resorce page) bakabilirsiniz.
12.b. Gentoo Online
Gentoo Online
Gentoo Formumuza veya
Gentoo IRC kanalımıza herzaman gelebilirsiniz.
Ayrıca tüm kullanıcılarımıza
açık mail listemizde bulunmaktadır.
Biz şimdi sözü burda bağlıyor sizi Gentoo sisteminizle eğlenceye bırakıyoruz :-)
B. Gentoo Altında Çalışma
1. USE flags
1.a. USE Flagları Nedir ?
USE Flaglarının Amacı Nedir ?
Gentoo kurarken, çalıştığınız ortama göre değişiklikler yaparsınız. Bir sunucunun kurulumuyla iş istasyonununki farklıdır. Oyun istasyonu ile 3D-render istasyonu farklıdır.
Bu sadece kurmak için seçeceğiniz paketler için değil, aynı zamanda, paketlerin hangi özellikleri destekleyeceği ile de ilgilidir. Eğer OpenGL'e ihtiyacınız yoksa, niye onu kurmak ve kurduğunuz paketlerde OpenGL desteğini eklemek için ugraşasınız? Eğer KDE kullanmak istemiyorsanız, paketler KDE desteği olmadan sorunsuz çalıştırabilecekken, neden KDE desteği ile kurmak için vakit kaybedesiniz?
Kullanıcıya, neyi kurması/aktivite-etmesi, neyi etmemesine yardım etmek için, kullanıcıdan,kurmak istediği sistemi belirtebilmesi için kolay bir yol olmasını istedik. Bu, kullanıcının gerçekte ne istediğine karar vermesini ister ve Portage'i kolaylaştırır. Portage bizim paket yönetim sistemimizdir.
Bir USE Flagının Tanımı
Bir USE flag girin. Bu flag, belli bir konseptin destek ve bağımlılık bilgilerini meydana getiren anahtar kelimedir. Eğer belli bir USE flag tanımlarsanız, Portage seçilen anahtar kelimenin desteğinin istendiğini anlayacaktır. Bu tabiiki paketin bağımlılık bilgisini de değiştirir.
Şimdi bir öerneği inceleyelim: kde anahtarı. Eğer USE değişkeninde bu anahtar kelime yoksa, seçmeli (optional) KDE desteği bulunan tüm paketler, KDE desteği olmadan derlenir. Seçmeli KDE bağımlılıği olan paketler, bağımlılık olarak KDE kütüphaneleri kurulmadan derlenir ve kurulur.
Anahtar kelimeleri doğru tanımlayarak, ihtiyaçlarınıza göre bir sistem oluşturabilirsiniz.
Hangi USE Flagları Vardir
Global (global) ve yerel (local) olmak üzere iki türlü USE-flag vardır.
- Global sistem genelinde birçok paket tarafından kullanılır. Birçok insana göre USE-flag budur.
- yerel (local) USE-flag tek bir paket tarafından, pakete özel kararları yapmak için kullanılır.
Global USE-flag'larinin listesi, online veya
/usr/portage/profiles/use.desc dosyasında mevcuttur. Bazı kısa ve önemli USE Flagsları şunları (tam liste değildir):
Kod Listeleme 1.1: USE-flaglarınden kısa bir bölüm |
gtk - x11-libs/gtk+ (The Gimp toolkit) desteği ekler.
gtk2 - bi program her ikisini de destekliyorsa, gdk-1.2 yerine gtk-2 kullanır.
gtkhtml - gnome-extra/gtkhtml desteği ekler.
guile - dev-util/guile desteği ekler.
icc - Paket destekliyorsa, intel C++ derleyicisini kullanır.
icc-pgo - icc kullanılırken, PGO veri üretimini etkinleştirir veya kullanır.
imap - IMAP desteği ekler.
|
1.b. USE Flaglarının Kullanılışı
Kalıcı USE Flagsların Belirtilmesi
USE flaglarının ne kadar önemli olduğunu anladınız umuduyla, şimdi onların nasıl belirtileceğini açıklayalım.
Daha once belirtildii gibi, USE-flag'ları USE değiskenine tanımlanır. Kullanıcıların, USE-flaglarını araştırıp seçmesini kolaylaştırmak için, öntanımlı bir USE değişkeni hazırlanmıştır. Bu USE-flagları Gentoo kullanıcılarının en çok kullandıklarıdır. Öntanımlı USE değişkeni, /etc/make.profile/make.defaults dosyasında belirtilmiştir. Bu öntanımlı değişkenlere bir göz atalım:
Kod Listeleme 2.1: /etc/make.profile/make.defaults dosyasındaki USE değişkeni |
USE="x86 oss apm arts avi berkdb crypt cups encode foomaticdb gdbm gif gpm gtk
imlib jpeg kde gnome libg++ libwww mad mikmod motif mpeg ncurses nls
oggvorbis opengl pam pdflib png python qt quicktime readline sdl slang
spell ssl svga tcpd truetype X xml2 xmms xv zlib"
|
Gördüğnüz gibi, bu değişken epey fazla anahtar kelime içeriyor. Bu değişkeni kendinize göre düzenlemek için /etc/make.profile/make.defaults dosyasını kullanmayın. Bu dosya, Portage güncellemesi esnasında eski haline döner.
Öntanımlı değerleri değiştirmek için, USE değiskenine yeni anahtar kelimeler eklemeniz veya varolanları çıkarmanız gerekir. Bu işlem /etc/make.conf dosyasını değiştirerek global olarak yapılabilir. Bu değişkene, kullanmak istediğiniz USE-flag'larını ekliyebilir, istemediklerinizi çıkarabilirsiniz. Çıkarma işlemi, anahtar kelimenin başına "-" (eksi) isareti konularak yapılır:
Mesela, kde ve qt desteğini kaldırıp, ldap desteği eklemek için, /etc/make.conf dosyasındaki USE değişkeni şu şekilde olmalıdır:
Kod Listeleme 2.2: /etc/make.conf dosyasında örnek bir USE değişkeni |
USE="-kde -qt ldap"
|
Geçici USE Flags Belirtmek
Bazen bir USE-flagı sadece bir kez kullanmak isteyebilirsiniz. Bunun için iki kere (derlemeden önce ve sonra)/etc/make.conf dosyasını değiştirmektense USE değişkenini ortam değişkeni olarak kullanabilirsiniz.
Örnek olarak, Mozilla kurulumunda java esteğini USE değiiskeninden geçici olarak çıkaralım.
Not: emerge komutu, Portage ve Yazılım bölümden detaylı olarak anlatılacaktır.
|
Kod Listeleme 2.3: SE değişkenini ortam değişkeni olarak kullanılması. |
# USE="-java" emerge mozilla
|
USE Flaglarının Miras Olarak Kullanımı
Bazı paketler varolan USE Flagları dinleyip uygulamak ile kalmaz, kendileri bazı USE flag desteği verirler. Böyle bir paket eklediğinizde, bu paketin sağladığı USE-flagı USE değişkeninize eklenir. USE-flag sağlayan paketlerin listesini görmek için /etc/make.profile/use.defaults dosyasına göz atmanız yeterli olacaktır:
Kod Listeleme 2.4: /etc/make.profile/use.defaults dosyasındna bir par |
gnome gnome-base/gnome
gtk x11-libs/gtk+
qt x11-libs/qt
kde kde-base/kdebase
motif x11-libs/openmotif
|
Sıralama
Tabiki hangi ayarın USE değişkeninde önceliğe sahip olduğu bellidir. Sadece java'nın belirtildiğini görmek için USE="-java" demek istemezsiniz. USE ayarlarının öncelik sırası: (Birinci en düşük önceliğe sahiptir):
-
Öntanımlı ayarların bulunduğu dosya: /etc/make.profile/make.defaults
-
Eğer, /etc/make.profile/use.defaults dosyasındaki öpaketlerden biri kuruluyor ise, onun mirası olan USE değişkenleri.
-
Kullanıcının /etc/make.conf dosyasında belirttiği USE değişkeni.
-
Kullanıcının ortam değişkeni olarak kullandığı USE değişkeni.
Portage tarafından kullanılan, tüm önceliklere göre ayarlanmış USE değişkenini görmek için emerge info komutunu kullanın. Bu komut Portage'n,n kullandığı tüm değişkenkenleri( USE değişkenide dahil) liste halinde sunar.
Kod Listeleme 2.5: 'emerge info' kullanılması |
# emerge info
|
Tüm Sistemi Yeni USE Flaglarına göre Ayarlamak
Eğer USE flagları değiştirdiyseniz ve tüm sistemi bu yeni USE değişkenine göre güncellemek isterseniz, aşağıdaki adımları izleyebilirsiniz. Bu adımlar uzun zaman alacaktır.
İlk olarak tüm sistemi yeni USE flaglarını kullanarak oluşturun:
Kod Listeleme 2.6: Tüm sistemin tekrar oluşturulması |
# emerge --emptytree world
|
İkinci olarak Portage depclean çalıştırılarak eski USE flaglarına göe bağımlılık sebebi ile kurulmuş ancak yeni USE flaglarına göre ihtiyaç olmayan paketleri kaldırın.
Uyarı:
emerge depclean komutunu kullanmak tehlikeli olabilir. Oluşturulan eski paketlerin listesini iki defa kontrol edin ve kullanacağınız bir pakedin kaldırılmadıına(silinmediğine) emin olun. Sonraki örnekte -p anahtarı ekleyerek paketlerin önce listelenmesi sağlanmıştır.
|
Kod Listeleme 2.7: Eski paketlerin kaldırılması |
# emerge -p depclean
|
depclean bittiğinde, yeni sistemimiz yeni USE flaglarını kullanıyor demektir
1.c. Pakete Özel USE Flaglar
Kullanılabilen USE Flagları Görmek
Sonraki bölüm olan Portage ve Yazılım
'da kurulu paketleri nasıl yöneteceğiniz anlatılacak. Yinede emerge için ilk bilgileri, bir pakedin kullandığı USE flaglarının nasıl görebileceğinizi göstererek vermiş olalım.
Mesela mozilla pakedini örnek alalım: Hangi USE flaglarını kullanıyor? Bunu öğrenmek için emerge komutuna --pretend ve --verbose parametrelerini ekleyelim:
Kod Listeleme 3.1: Kullanılan USE flagların gösterilmesi |
# emerge --pretend --verbose mozilla
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild N ] net-www/mozilla-1.5-r1 +java +crypt -ipv6 -gtk2 +ssl +ldap
+gnome -debug +mozcalendar -mozaccess -mozxmlterm -moznoirc -moznomail
-moznocompose -moznoxft
|
emerge 'den başka yöntemler ilede bu işi yapabiliriz. Aslında sadece paket bilgilerinin görülmesinde kullanılmka üzere etcat adında bir program vardır. Bu program gentoolkit pakedinin içindedir. Yani ilk önce gentoolkit pakedini kurun, ancak o zaman etcat aracını kullanabilirsiniz:
Kod Listeleme 3.2: gentoolkit kurulumu |
# emerge --usepkg gentoolkit
|
Şimdi bir pakedin hangi USE flaglarını kullandığını görebilmek için etcat komutunu uses parametresi ile beraber kullanalım. Mesela gnumeric pakedi için bir örnek:
Kod Listeleme 3.3: Kullanılan USE flaglar için etcat kullanımı |
# etcat uses gnumeric
[ Colour Code : set ]
[ Legend : (U) Col 1 - Current USE flags ]
[ : (I) Col 2 - Installed With USE flags ]
U I [ Found these USE variables in : app-office/gnumeric-1.2.0 ]
- - : Adds GNU Data Access (CORBA wrapper) support for gnumeric
- - : unknown
+ + python : Adds support/bindings for the Python language
+ + bonobo : Adds support for gnome-base/bonobo (Gnome CORBA interfaces)
|
2. Portage ve Yazılımlar
2.a. Paket Bilgisini Görmek
Tüm Araçların Efendisi: emerge
Tüm kullanıcıların kullanacağı asıl Portage aracı emerge aracıdır. Gentoo kurulumu sırasında ve bir önceki bölümde emerge zaten kullanmıştık. Şimdi tam olarak nasıl kullanılacağını açıklayacağız. Bu bölüm ayrıntılı olarak emerge kullanmayı ve yazılım tabanlı tüm ihtiyaçlarınızı karşılamayı öğretecek.
emerge yazılım paketlerini yükleme, kaldırma, sorgulama ve korumaya yarayan bir komuttur.
emerge , ebuild için bir ön işlemcidir; Gentoo profesyoneli olmakla ilgilenen kullanıcılar ebuild kullanımı hakkında detaylı bilgiyi sonra öğrenecekler. Şimdilik emerge ve ebuild
üzerinde duracagız.
emerge gentoo kullanıcıları için en önemli araç olduğu sürece, geniş bir kılavuz sayfasına sahip olacaktır. man emerge veya emerge --help ile çok detaylı bilgi bulabilirsiniz.
Kod Listeleme 1.1: emerge için yardım almak |
# man emerge
# emerge --help
|
Portage Şeması
emerge kullanımına devam etmeden önce, Portage şemasına bir göz atalım./usr/portage dizinine gidin ve mevcut dizinleri listeleyin. Biz dizinlere "/" ekleyerek gösteren ls --classify komutunu kullanıyoruz.
Kod Listeleme 1.2: Portage şemasını görmek |
# cd /usr/portage; ls --classify
app-admin/ dev-ml/ gnome-libs/ net-print/
app-arch/ dev-perl/ gnome-office/ net-wireless/
app-benchmarks/ dev-php/ header.txt net-www/
app-cdr/ dev-python/ incoming/ net-zope/
app-crypt/ dev-ruby/ jython/ packages/
app-dicts/ dev-tcltk/ kde-apps/ profiles/
app-doc/ dev-tex/ kde-base/ releases/
app-editors/ dev-util/ kde-i18n/ scripts/
app-emacs/ distfiles/ kde-libs/ sec-policy/
app-emulation/ eclass/ licenses/ skel.ChangeLog
app-games/ experimental/ media-fonts/ skel.ebuild
app-gnustep/ files/ media-gfx/ skel.metadata.xml
app-i18n/ fresco-base/ media-libs/ snapshots/
app-misc/ games-action/ media-plugins/ sys-apps/
app-office/ games-arcade/ media-radio/ sys-build/
app-pda/ games-board/ media-sound/ sys-cluster/
app-portage/ games-emulation/ media-tv/ sys-devel/
app-sci/ games-engines/ media-video/ sys-fs/
app-shells/ games-fps/ metadata/ sys-kernel/
app-text/ games-kids/ net-analyzer/ sys-kmods/
app-vim/ games-misc/ net-apache/ sys-libs/
app-xemacs/ games-mud/ net-dialup/ unix2tcp/
berlin-base/ games-puzzle/ net-dns/ x11-base/
dev-ada/ games-roguelike/ net-firewall/ x11-libs/
dev-cpp/ games-rpg/ net-fs/ x11-misc/
dev-db/ games-server/ net-ftp/ x11-plugins/
dev-dotnet/ games-simulation/ net-im/ x11-terms/
dev-embedded/ games-sports/ net-irc/ x11-themes/
dev-games/ games-strategy/ net-libs/ x11-wm/
dev-haskell/ games-util/ net-mail/ xfce-base/
dev-java/ glep/ net-misc/ xfce-extra/
dev-lang/ gnome-apps/ net-nds/
dev-libs/ gnome-base/ net-news/
dev-lisp/ gnome-extra/ net-p2p/
|
Gördüğünüz gibi Portage şeması bolca alt dizin içermektedir. Bunların çoğu Gentoo paketlerinin ebuilds olarak adlandırılan kategorilerdir.
Örnek olarak, app-office kategorisine bir göz atalım:
Kod Listeleme 1.3: Bir kategoriyi görmek |
# cd app-office; ls --classify
abiword/ gnotime/ kmymoney2/ ooodi/ plan/ timestamp.x
dia/ gnucash/ koffice/ oooqs/ qhacc/
dia2code/ gnumeric/ lxbank/ openoffice/ sc/
facturalux/ ical/ lyx/ openoffice-bin/ scribus/
gaby/ kbudget/ mdbtools/ openoffice-ximian/ siag/
gnofin/ khacc/ mrproject/ phprojekt/ texmacs/
|
Kategori içinde o kategoriye ait paketleri, paketi içeren klasörlerle bulacaksınız. openoffice paketine bir göz atalım:
Kod Listeleme 1.4: Paket gösterimi |
# cd openoffice; ls --classify
ChangeLog files/ openoffice-1.0.3-r1.ebuild openoffice-1.1.0-r2.ebuild
Manifest metadata.xml openoffice-1.1.0-r1.ebuild openoffice-1.1.0.ebuild
|
Size Gentoo paketlerinin ebulid olarak isimlendirildiğini söylediğimizi hatırladınız mı? Görüldüğü gibi örnek dizinde dört tane ebuild mevcut. İsimleri her zaman fikir verecek şekilde: sadece sürüm numaraları farklı. Paketlerin içeriğini görmekte özgürsünüz: onlar sadece betikler. Gentoo kullanmak için çok önemli bir şey olmadığından bu konunun detaylarına girmeyeceğiz şimdi.
Diğer dosyalar ChangeLog (ebuild'lerde yapılan tüm değişiklikleri içerir), Manifest (dizindeki tüm dosyaların boyutlarını ve checksumlarını içerir) ve metadata.xml (paketler hakkında geliştiricileri, açıklamalar gibi ayrıntılı bilgileri içerir).
files dizininde Portage'in ihtiyaç duyduğu bilgiler (checksum ve paketin ihtiyaç duyduğu diğer dosyaların yetkileri), paketler, örnek ayar dosyaları v.s.
Kod Listeleme 1.5: Özel paketleri görmek |
# cd files; ls --classify
1.0.3/ digest-openoffice-1.0.3-r1 digest-openoffice-1.1.0-r1
1.1.0/ digest-openoffice-1.1.0 digest-openoffice-1.1.0-r2
# cd 1.1.0; ls --classify
fixed-gcc.patch ooffice-wrapper-1.3
newstlportfix.patch openoffice-1.1.0-linux-2.6-fix.patch
no-mozab.patch openoffice-1.1.0-sparc64-fix.patch
nptl.patch
|
Eğer Prtage şemasının kök düzününe giderseniz (/usr/portage), orada katerogize edilmemiş dizinler olduğunu farkedeceksiniz. Bunların ayrıntılarını bu bölümde vereceğiz.
Paket Aramak
Eğer Gentoo Linux'da yeniyseniz, işleriniz için hangi aracı kullanacağınızı bilmiyor olabilirsiniz. Bir arama yapmak için, emerge sistemdeki mevcut paketleri aramak için bir yol sunuyor. Paket aramanın iki yolu var: isim ile arama, ya da isim ve açıklama ile arama.
Portage şemasında isim ile arama gerçekleştirmek için, emerge search kullanın. Örnek olarak, mozillahakkında daha çok şey bulmak için:
Kod Listeleme 1.6: mozilla hakkında bilgi görüntülemek |
# emerge search mozilla
Searching...
[ Results for search key : mozilla ]
[ Applications found : 5 ]
* net-www/mozilla
Latest version available: 1.5-r1
Latest version installed: 1.4-r3
Size of downloaded files: 29,153 kB
Homepage: http://www.mozilla.org
Description: The Mozilla Web Browser
* net-www/mozilla-firebird
Latest version available: 0.7
Latest version installed: [ Not Installed ]
Size of downloaded files: 37,850 kB
Homepage: http://www.mozilla.org/projects/firebird/
Description: The Mozilla Firebird Web Browser
|
Eğer açıklamalarında aranmasını istiyorsanız --searchdesc argümanını kullanın:
Kod Listeleme 1.7: Açıklamalarıda aramak |
# emerge --searchdesc mozilla
Searching...
[ Results for search key : mozilla ]
[ Applications found : 10 ]
* dev-libs/nss-3.8
Latest version available: 3.8
Latest version installed: 3.8
Size of downloaded files: 2,782 kB
Homepage: http://www.mozilla.org/projects/security/pki/nss/
Description: Mozilla's Netscape Security Services Library that implements PKI support
|
Gördüşünüz gibi, emerge'in çıktısı size kategori, paket ismi, mevcut sürüm, yüklenmiş olan sürüm, indirilen dosyaların boyutları, internet sayfası ve küçük bir açıklama gibi bilgilerin hepsini size aktarmakta.
Yeni bir şey gördünüz mü? Evet, indirilmiş dosyalar. Portage'e bir paket yüklemesini söyleniz yeterli, tabiki gerekli kaynaklara sahip olmak zorunda (yada hazır paketler). Bu nedenle Portage
/usr/portage/distfiles (kaynak kodlar için) veya
/usr/portage/packages/All (hazır paketler için) içeriğini paketlerin mevcut olup olmadığını görmek için kontrol eder. Eğer mevcut değilse, gerekli dosyaları indirir ve bu dizinler içine yerleştirir.
ChangeLog Dosyasını Görmek
Portage şemasını gezerken, paketler için bir ChangeLog olduğunu gördünüz. Mevcut sürüm ve yüklenmiş sürüm arasındaki ChangeLog girdilerini emerge ile görebilirsiniz.
--pretend --changelog ( kısaca -pl ) seçeneğini kullanın. Bir örnek olarak gnumeric paketinin ChangeLog girdilerini göreceğiz:
Kod Listeleme 1.8: gnumeric için ChangeLog girdilerini görmek |
# emerge --pretend --changelog gnumeric
*gnumeric-1.2.2
27 Nov 2003; foser <foser@gentoo.org> gnumeric-1.2.2.ebuild :
New release, requested in #34492
updated deps
12 Nov 2003; Jason Wever <weeve@gentoo.org> gnumeric-1.2.0.ebuild:
Marked stable on sparc, fixes bug #32405.
14 Oct 2003; Jason Wever <weeve@gentoo.org> gnumeric-1.0.8.ebuild:
Added ~sparc keyword. Fixes bug #31150.
|
2.b. Portage Güncellemesi Yapmak
Giriş
Portage ile arama yapmak güzel, fakat Portage'i güncellemezseniz sisteminizdeki mevcut paketler içinde sıkışırsınız. Bunun anlamı sisteminiz yakında eskiyecek ve bug yamaları, güvenlik problemleri gibi güncellemeleri kaçıracaksınız.
Portage şemasını güncellemenin bir kaç yolu var. En çok kullanılan yol rsync yansılarımızdan birini kullanmaktır.
Diğer yol ise bir Protage görüntüsü kullanmak (güvenlik duvarı ya da yetersiz network izimleri gibi durumlar için).
"rsync" İçin Bir Yansı Seçmek
Size en yakın yansıyı seçmek avantajlı olacaktır. Bunu el ile SYNC değişkeninin değiştirerek yapabilirsiniz (Bu değişken /etc/make.conf dosyasının içindedir) veya
mirrorselect komutunu kullanarak onun bu işi sizin için yapmasınısağlayabilrisiniz. SYNC
değişkeni üzerinde daha sonra duracağız. Şuanda sadece mirrorselect üzerinde duracağız. İlkönce mirrorselect aracını emerge ediyoruz:
Kod Listeleme 2.1: mirrorselect kurulumu |
# emerge --usepkg mirrorselect
|
Şimdi bize otomatik olarak yansı seçmesi için mirrorselect komutunu veriyoruz (bu aynı zamanda Portage'i kaynak kodlarını o yansıdan indirmesi içinde ayarlayacak):
Kod Listeleme 2.2: mirrorselect uygulaması |
# mirrorselect -a -s3
|
Portage Şemasını Güncellemek
Portage'i rsync yoluyla güncellemek için, basitce emerge sync işlemini başlatın:
Kod Listeleme 2.3: Portage'i emerge sync ile güncellemek |
# emerge sync
|
Eğer bu çalışmazsa (bir ağ problemine ya da güvenlik duvarına bağlı olarak), emerge-webrsync komutunu deneyin. Bu işlem wget kullanarak Portage şemasının görüntüsünü indirecektir. Bu isterseniz proxyde kullanabileceğiniz anlamına geliyor. Gentoo kurulumu sırasında nasıl proxi ayarlayacağınızdan bahsetmiştik.
Kod Listeleme 2.4: emerge-webrsync kullanarak Portage güncellemek |
# emerge-webrsync
|
2.c. Yazılımları Korumak
Hazırlamak mı Yoksa Hazır Kullanmak mı?
Gentoo isterseniz paketleri ebuild olarak sunar. Fakat bir ebuild gibi yüklemek isterseniz, paketi hazırlamak ya da hazırlanmış bir paket kullanmak arasında bir tercih yapabilirsiniz. Fakat bu iki seçim arasındaki avantajlar/dezavantajlar nerlerdir, ve biri diğerine tercih edilebilir mi?
Tahmin edeceğiniz gibi paket hazırlamak uzun zaman alacaktır (özellikle KDE, OpenOffice.org, gibi yapılarda). Bir paket hazırlayarak USE değişkeniyle paketin sizin sisteminize özgü olmasını sağlayabilirsiniz. Tabiki, sisteminize uyarlamak için yüksek seçeneklerde kullanabilirsiniz (CFLAGS ve CXXFLAGS değişkenleriyle).
Hazır bir paket kullanmak yükleme süresini kısaltacaktır (derlemeye gerek yoktur), fakat USE ayarları ve CFLAGS, CXXFLAGS değişkeni avantajlarını kaybedersiniz.
Hazır paketler /usr/portage/packages/All dizininde barındırılırlar. Kaynak kodları ise /usr/portage/distfiles altında toplanırlar. Eğer bir yazılım kurmayı bitirdiyseniz, paketi ya da kaynak kodunu bu dizinden silebilirsiniz. Fakat, istiyorsanız tekrar kurmanız gerekebilirse paket ya da kaynak kodunun son versiyonunu saklayabilirsiniz (bu sayede tekrar indirmeniz gerekmez).
Kaynak Kodundan Yazılım Kurmak
Tamam, bu kadar konuşma yeter. Bir paket yüklemek için emerge komutunu kullanacaksınız. Eğer hazır bir paket kullanmak istemiyorsanız, sadece emerge <paket_ismi> veya emerge
<kategori>/<paket ismi> kullanabilirsiniz. Örnek olarak gnumeric yükleyelim:
Kod Listeleme 3.1: gnumeric derlenmesi |
# emerge gnumeric
|
Bu komut sisteminize dosyayı indirir, açar, derler ve yükler. Aynı zamanda bunu tüm bağımlılıklara yapar. Eğer paketle birlikte hangi bağımlılıkların yüklendiğini görmek isterseniz, --pretend seçeneğini kullanın ( kısaca -p olarak da kullanabilirsiniz):
Kod Listeleme 3.2: gnumeric bağımlılıklarını görmek |
# emerge --pretend gnumeric
|
Eğer bir paketin ve bağımlılıklarının kaynak kodlarını indirmek istiyor fakat kurmak istemiyorsanız, --fetchonly seçeneğini kullanın
(kısaca -f kullanabilirsiniz):
Kod Listeleme 3.3: gnumeric kaynaklarını indirmek |
# emerge --fetchonly gnumeric
|
Eğer emerge kaynakları nerden indirdiğini görmek istiyorsanız, --fetchonly ve --pretend seçeneklerini kullanın:
Kod Listeleme 3.4: gnumeric kaynağının URL'sini görmek |
# emerge --fetchonly --pretend gnumeric
|
Aynı zamanda paketlerin detaylı sürümlerinide yükleyebilirsiniz. Örnek olarak, gnumeric'in 1.2 sürümünden eski bir sürümünü yüklemek istiyorsunuz ( herhangi garip bir sebeple :) ) şunu yazmalısınız:
Kod Listeleme 3.5: Detaylı gnumeric sürümü yüklemek |
# emerge "<gnumeric-1.2"
|
Diğer olasılıklar tabiki ">"(sonraki sürüm) ve "="(belirtilen sürüm).
Hazır Paketleri Yüklemek
Hazır paket yüklemek istediğiniz zaman --usepkg seçeneğini ( kısaca -k ) kullanabilirsiniz. Bu eğer paket ve sürüm uyuşuyorsa /usr/portage/packages/All dizini altındaki mevcut derlenmiş paketi kullanacak.
Kod Listeleme 3.6: gnumeric için hazır paket yüklemek |
# emerge --usepkg gnumeric
|
Eğer derlenmiş paket yüklemek istiyorsanız, buna karşılık sürüm uyuşmuyorsa,
--usepkgonly (kısaca -K ) kullanabilrisiniz.
Kod Listeleme 3.7: gnumeric için hazır paket yüklemek |
# emerge --usepkgonly gnumeric
|
Eğer sisteminizde henüz hazır paket bulunmuyorsa emerge bu işi PORTAGE_BINHOST
değişkennde belirtilmiş bir yansıdan indirerek yapabilir (değişken /etc/make.conf dosyasının içindedir).
Bu paket sisteminizde yoksa ve hazır paketi indirmek istiyorsanız --getbinpkg (kısaca -g ) kullanabilirsiniz:
Kod Listeleme 3.8: Downloading and installing a prebuilt package for gnumeric |
# emerge --getbinpkg gnumeric
|
Bu işlem paketi ve paket bilgilerini bağımlılıklarıyla beraber sisteminize indirecek ve kuracak. Eğer paketle birlikte hangi bağımlılıkların yüklendiğini görmek için, --pretend seçeneğini kullanın (kısaca -p):
Kod Listeleme 3.9: gnumeric için yüklenen bağımlılıkları görmek |
# emerge --getbinpkg --pretend gnumeric
|
Aynı zamanda sisteminizde bulunan hazır paketi kullanmadan ve yerel sisteminiz hakkında bilgi toplamadan bir hazır paket (ve paket bilgisi) indirmek için, --getbinpkgonly seçeneğini kullanabilirsiniz (kısaca -G):
Kod Listeleme 3.10: Yerel bilgileri kullanmadan hazır paket yüklemek |
# emerge --getbinpkgonly gnumeric
|
Özel paket sürümleride yükleyebilirsiniz. Örnek olarak, gnumeric'in 1.2 versiyonundan eski bir versiyonunu kullanmak istiyorsanız şunu yazmalısınız:
Kod Listeleme 3.11: Özel gnumeric sürümü yüklemek |
# emerge --usepkg "<gnumeric-1.2"
|
Diğer olasılıklar tabiki ">"(sonraki sürüm) ve "="(belirtilen sürüm).
Bağımlılıklarla Çalışmak
Portage bağımlılıklarla başa çıkmak için geniş bir destek sunar. Aslında bunu düşünmenize pek gerek yok (bağımlılıklar otomatik olarak Portage tarafından halledilir) fakat bazı kullanıcılar bağımlılıklar için emerge ile nasıl çalışacaklarını bilmek isteyebilirler.
Örnek olarak, Portage'in bir paketle beraber yüklediği bağımlılıkları görmek için --emptytree seçeneğini kullanabilirsiniz (kısaca -e). Bir paketin bağımlılıklarını tam bir şema olarak görmek için --pretend seçeneğiniyle beraber kullanılması yararlıdır. --pretend seçeneği olmazsa emerge listelenen paketleri (yeniden) derler.
Kod Listeleme 3.12: gnumeric paketinin tüm bağımlılıklarını görmek |
# emerge --emptytree --pretend gnumeric
|
Bir başka argüman --nodeps seçeneğidir. Bu seçenek bağımlılıkları kurmadan paketi yüklemenizi sağlar.
Kod Listeleme 3.13: Bağımlılıklar olmaksızın gnumeric yüklemek |
# emerge --nodeps gnumeric
|
--nodeps seçeneğinin tersi --onlydeps seçeneğidir. Bu seçenek istediğini paketin tüm bağımlılıklarını yükler fakat paketin kendisini yüklemez:
Kod Listeleme 3.14: gnumeric paketinin bağımlılıklarını yüklemek |
# emerge --onlydeps gnumeric
|
Sisteminizi Güncellemek
Portage sistemi güncellemek için iki anahtar kelimeyi tanıyor: system ve world. Eğer stage3 kullanmadıysanız zaten bunlardan birini gördünüz. Bulunan şeyleri yenilemek için: system çalışan bir Gentoo sistemi için gereken core paketlerinin bir koleksiyonunu yapar.
world anahtar kelimesi ise sizin kurduğunuz system üzerine kurulmuş paketleri edinir. Diğer bir değişle, emerge <paket-ismi> şeklinde yüklediğiniz her paket, world dosyasına (/var/cache/edb/world) kaydedilir. Bağımlılıklar world dosyasının bir parçası değildir, fakat bunu daha sonra halledeceğiz.
Eğer sistem paketlerini güncellemek istiyorsanız, --update seçeneğini kullanın (kısaca -u):
Kod Listeleme 3.15: Sistem paketlerini güncellemek |
# emerge --update system
|
Aynı işlem world paketleri içinde kullanılabilir.
Kod Listeleme 3.16: Yüklediğiniz sistemi güncellemek |
# emerge --update world
|
Tekrar, eğer emerge'in güncelleyeceği dosyaları görmek istiyorsanız, --pretend seçeneğini --update seçeneğiyle beraber kullanabilirsiniz:
Kod Listeleme 3.17: Yüklediğiniz sistemi güncelleme sırasında yüklenecek dosyaları görmek |
# emerge --pretend --update world
[ebuild U ] net-misc/wget-1.9-r1 [1.9]
[ebuild UD] media-video/dvdauthor-0.5.0 [0.5.3]
[ebuild U ] net-analyzer/ethereal-0.9.16 [0.9.14]
|
Bu adımla bir harf (ya da harf kombinasyonları) farkedeceksiniz. Bu size paket hakkında daha fazla bilgi verecek:
-
B (blocks) Solda listelenen paket sağda listelenen paketin yüklenmesini blokluyor(engelliyor).
-
N (new) Bu paket sizin sisteminizde yeni ve ilk defa kurulacak.
-
R (reemerge) Bu paket yeni değil fakat yeniden derlenmesi gerekli.
-
F (fetch) Bu paketin kaynağını elle indirmeniz gerekiyor (örnek olarak, lisans sorunları sebebiyle).
-
U (update) Bu paket sisteminizde mecvut fakat güncellenecek.
-
UD (downgrade) Bu paket sisteminizde mevcut fakat eski bir sürümle değiştirilecek.
-
U- (slot warning) Yüklediğiniz paket paket olarak listelenmekte ancak başka bir versiyonla birlikte çalışamaz, ama güncel olan yapabilir. Güncel olan yüklenecek ve eski olan kaldırılacak.
Bazı sebeplerden dolayı, bir güncelleme eski paket yükleyek anlamına gelebilir. Eğer bunun olmasını istemiyorsanız, --upgradeonly seçeneğini kullanmalısınız (kısaca -u):
Kod Listeleme 3.18: Yüklediğiniz sistemi güncellemek |
# emerge --update --upgradeonly world
|
Tabiki biz system ve world paketleri hakkında konuşuyoruz, fakat aynı işlemi seçtiğiniz bir paket içinde kullanabilirsiniz.
Yazılım Kaldırmak
Eğer sisteminizden bir yazılımı kaldırmak istiyorsanız, unmerge seçeneğini kullanabilirsiniz (kısaca -C ):
Kod Listeleme 3.19: Yazılım kaldırmak |
# emerge unmerge gnumeric
|
Eğer bir kaldırma işlemini test etmek ama uygulamak istemiyorsanız, gene --pretend seçeneğini kullanabilirsiniz:
Kod Listeleme 3.20: Yazılım kaldırma işlemini test etmek |
# emerge --pretend unmerge gnumeric
|
Uyarı:
Portage, kaldırmak istediğiniz yazılım başka bir yazılımın bağımlılığıysa bunu farkedemez. Aynı zamanda sistemin bir parçasıysa da sizi uyarmaz, örn: sistemin doğru fonksiyonelliği için gerekli bir core uygulaması!
|
unmerge işlemi başladığında pakete ait olan dosya isimlerinin yazıldığı uzun bir liste göreceksiniz. Bazı dosya isimlerinin sol tarafında işaretler göreceksiniz. Bu işaretler !mtime, !empty, ve cfgpro
işaretleridir ve paket kaldırıldığı halde bu dosyaların nie kaldırılmadığının sebebini açıklar. Listede bulup bu işaretlerin bulunmadığı dosya isimleri sistemden başarıyla kaldırılmıştır. Bu iç işaret şu nedenleri açıklar:
-
!mtime : Bu dosya muthemelen siz ya da bir araç tarafından, yüklendikten sonra değiştirilmiş.
-
!empty : Listelenen dizin boş değil.
-
cfgpro : Bu dosya korumalı bir dizin içinde ve güvenlik için dokunulmayacak.
2.d. Mevcut Yazılımlar
ARCH mı, Değil mi?
Gentoo paketlerini ARCH ve
~ARCH adında iki olası biçime göre çağırır. Bu biçim kullandığınız mimariye bağlıdır. Diğer bir değişle, x86 temelli bir sistemde x86 ve
~x86, ppc temelli sistemdeppc ve ~ppc vb...
~ARCH biçimi paketin tam olarak test edilmediğini ve henüz ARCH kategorisine alınamayacağını belirtir. ~ARCH paketleri genellikle buglardan arındığında ve uzun süre bu şekilde devam edebildiğinde ARCH sınırına alınır.
Sisteminiz varsayılan olarak ARCH paketlerini kullanacaktır. Eğer sınırda yaşamayı seviyor, kırık paketleri kullanmayı kafaya takmıyorsanız ve bugs.gentoo.org, adresine bug raporu göndermekten hoşlanıyorsanız~ARCH seçeneğini kullanabilirsiniz. Eğer~ARCHkullanan bir sisteme geçmek istiyorsanız, ACCEPT_KEYWORDS değişkenini /etc/make.conf dosyasından değiştirin (tekrar: x86 temelli sistem için ~x86, vb.).
Şunu not alın; ARCH 'dan ~ARCHbiçimine dönmek abes olmaktan uzak.
Eğer sisteminizi şimdi güncellemek istiyorsanız, farkedeceğiniz üzere bir çok paket güncellenecek!
Maskelenmiş Paketler
Bir paket yüklemek istediğiniz zaman aşağıdaki gibi bir mesajla karşılaşabilirsiniz:
Kod Listeleme 4.1: Maskelenmiş paketler hakkında mesaj |
Calculating dependencies
!!! <your package>
|
Bir paket iki sebepten dolayı maskelenir:
- Siz ARCH kullanıyorken paket ~ARCH biçimi olabilir.
- Paket açıkca sabit-maskeleme biçiminde olabilir.
Eğer paket birinci sebepten dolayı maskelenmişse ve siz bunu gerçekten kurmak istiyorsanız (neden ARCH sınıfında olmayışının sebebini bilerek), geçici olarak ~ARCH biçimini kullanabilirsiniz:
Kod Listeleme 4.2: Geçici olarak ~ARCH paketlerini kabul etmek |
# ACCEPT_KEYWORDS="~x86" emerge gnumeric
|
Bir paket /usr/portage/profiles/package.mask dosyasının içinde listelendiyse sabit maskelenmiştir. Eğer bu dosyayı okursanız breaberinde sabit maskelenmesinin sebebinide okuyabilirsiniz. Tüm bunlara rağmen paketi yüklemek istiyorsanız (sürekli "sisteminizi kırar", "diğer paketleri kırar", "ciddi olarak test edilmesi gerekli" diyerek başınızı ağrıtmamıza rağmen), /etc/portage/package.unmask dosyası oluşturun ve paketin ismini bu dosyaya listeleyin (aynı şekilde /usr/portage/profile/package.mask içindede yapın).
Portage şemasını güncellediğinizde /usr/portage/package.mask dosyasını değiştirmeyin. Eğer bir dosyayı sabit maskelemek isterseniz /etc/portage/package.mask dosyası oluşturun ve paketin ismini içine listeleyin (aynı işlemi tersi içinde yapabilirsiniz).
Bloklanmış Paketler
Eğer ekranda aşağıdaki hatayı görürdüğünüz bir durumla karşılaştınız:
Kod Listeleme 4.3: Blocking package |
[blocks B ] gnome-base/bonobo-activation (from pkg gnome-base/libbonobo-2.4.0)
|
Bu verilen örnekte, bonobo-activation paketi libbonobo paketinin yüklenmesini blokluyor. Bu durumdan kurtulmak için, bonono-activation paketini kaldırıp devam edin:
Kod Listeleme 4.4: Bloklama durumundan kurtulmak |
# emerge unmerge bonobo-activation
|
3. Portage Özellikleri
3.a. DistCC
DistCC Nedir?
distcc birden fazla birbirine uyumlu olmak zorunda olmayan bilgisayarların, ağ üzerinden derlemeyi dağıtan yazılımdır. Distcc istemcisi gereken tüm bilgileri ulaşabildiği DistCC-sunucularına yollar (distccd'nin çalıştığı makinalar) ve böylece kaynak kodların istemciler tarafından derlenmesini sağlar. Sonuçta bu yöntemle zaman kazanırız.
DistCC hakkında daha ayrıntılı bilgiye Gentoo
Distcc Documentation adresinden ulaşabilrisiniz.
DistCC Kurmak
DistCC'nin beraberinde gelen monitörün vasıtasıyla bilgisayarın derlemek için gönderdiği işlemlerden haberdar olabilirsiniz. Eğer Gnome kullanıyorsanız USE- değişkenlerinde 'gnome' eklemelisiniz, Gnome kullanmıyorsanız ve DistCC'nin monitörünü kullanmak istiyorsanız 'USE- değişkenine 'gtk' seçeneğini eklemelisiniz. Tüm yazılımların Gentoo'nun Portage'i tarafından sunulduğundan DistCC'nin kurumuda dolaysıyla çok basit.
Not:
Bu bölümden itibaren artık binary paketlerin nasıl kurulduğunu bildiğinizi var sayarak, --usepkg seçeneğini Gentoo elkitabının geri kalan bölümlerinde anlatmıyacağız.
|
Kod Listeleme 1.1: Distcc kurulumu |
# emerge distcc
|
Portage Desteğini Aktifleştirmek
Kurumu basit olduğuna göre geri kalanıda kolay olmalı :-) Hemen distcc'nin Portage desteğini açalım o halde.
İlk önce /etc/make.conf dosyamızı bir editörle açıp FEATURES değişkenine distcc anahtar kelimesini ekliyelim. Sonra MAKEOPTS değişkenine -jX seçeneğini eklemeliyiz, X burda distccd'yi sunuma açık tutan makinaların işlemci sayılarının bir fazlasıdır ( ve ilaveten yazılımın yükleneceği makinanın işlemcisi):
Kod Listeleme 1.2: Possible MAKEOPTS setting in /etc/make.conf |
MAKEOPTS="-j4"
|
Tekrardan /etc/make.conf dosyası içinde PORTAGE_TMPDIR satırının başındaki '#' işaretini kaldırarark, dosyamıza aşağıdaki satırı eklemelisiniz .
Kod Listeleme 1.3: Add an extra, distcc-specific variable to /etc/make.conf |
DISTCC_DIR=${PORTAGE_TMPDIR}/portage/.distcc
|
Şimdi distcc-config yazıyoruz ve enter yapıp mevcut DistCC sunucularının listesini görebilirsiniz.
Basit bir örnek olarak ulaşabildiğiniz DistCC sunucuların 192.168.1.102 (yazılımın kurulacağı makina), 192.168.1.103 ve 192.168.1.104 (uzaktaki sunucular) olduğunu var sayalım:
Kod Listeleme 1.4: DistCC'nin ulaşabildiği 3 adet DistCC sunucusu |
# distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"
|
Elbetteki DistCC demonunu (distccd ) çalıştırmayı unutmuyoruz:
Kod Listeleme 1.5: DistCC demonunu çalıştırmak |
# /etc/init.d/distccd start
|
Hayırlı olsun, sisteminiz artık derleme işlemini dağıtabilecek. Daha derin bilgi almak için Gentoo DistCC Rehberini okuyun: Gentoo DistCC Documentation.
3.b. ccache
ccache Nedir?
ccache hızlı bir derleyici arabirimidir. Bir yazılımı derlerken ara sonuçlar cache edilir, bu yazılıma re-derleme yaptığınızda 5 ve 10 katı arasında bir derleme hızına ulaşabilirsiniz.
Eğer ccache programının beraberinde getirdiği avantaj ve dezavantajları merak ediyorsanız, ccache anasayfasını ziyaret edin:
ccache web sayfası.
ccache Kurmak
Gentoo linux'nuza ccache programını kurmak çok basit; sadece bir emerge ccache komutu yeterli.:)
Kod Listeleme 2.1: ccache kurulumu |
# emerge ccache
|
Portage Desteğini Aktifleştirmek
İlk önce /etc/make.conf dosyasını bir editörle açıp FEATURES değişkenine ccache anahtar kelimesini eklemelisiniz:
Kod Listeleme 2.2: /etc/make.conf dosyasından FEATURES değişkenini düzenlemek |
FEATURES="ccache"
|
Sonra CCACHE_SIZE değişkenini cache yapması için ccache yazılımına vermek istediğiniz sabit disk hacmini eklemelisiniz (Eğer CCACHE_SIZE değişkeni yoksa /etc/make.conf dosyasında bunu eklemek zorundasınız):
Kod Listeleme 2.3: CCACHE_SIZE değişkeninin /etc/make.conf dosyasından düzenlenmesi |
CCACHE_SIZE="2G"
|
Bu işlemden itibaren Portage derleme işleminde ccache yazılımını kullanacaktır, ve her mümkün olduğunda derleme işlemini hızlandıracaktır. Ccache'in çalıştığına emin olmak için, ccache -s seçeneğiyle beraber çalıştırın. Böylece ccache yazılımının istatiklerine bakabilirsiniz:
Kod Listeleme 2.4: ccache istatistiklerine bakmak |
# ccache -s
|
3.c. Binary Paketleri
Binary Paketlerini Oluşturmak
Önceki bölümlerde binary paketlerle nasıl çalışacağınızı anlatmıştık. Peki kendimiz nasıl binary paketleri oluşturabiliriz?
Eğer binary paketini oluşturmak istediğiniz yazılım makinanıza yüklüyse, quickpkg komutuyla yüklü dosyalardan bir Tarball oluşturabilirsiniz. Bu yöntem yedekleme ilemleri için çok faydalı bir yöntemdir (Oluşan dosyalar /usr/portage/packages/ALL dizini altında kaydolur).
Kod Listeleme 3.1: quickpkg kullanmak |
# quickpkg gnumeric
|
Eğer gnumeric yazılımı makinanızda yüklü değilse bunu hemen emerge edebilirsiniz. Yüklerken aynı zamanda binary paketide oluşturabilirsiniz. emerge --buildpkg komutu (kısaltılması -b kullanılabilir) çalıştırmak yeterli olacaktır:
Kod Listeleme 3.2: Gnumeric programını yüklemek ve aynı işlem içinde binary paketini oluşturmak |
# emerge --buildpkg gnumeric
|
Portage'in bunu devamlı olarak yapmasını dilerseniz, /etc/make.conf dosyasında bulunan FEATURES değişkenine buildpkg anahtarsözcüğünü eklemeniz gerekir.
Kod Listeleme 3.3: Binary paketlerin otomatik olarak oluşturulması |
FEATURES="buildpkg"
|
Yazılımın sadece biner paketini oluşturmak ve sisteme yüklemek için emerge ederken --buildpkgonly seçeneğini kullanmalısınız (kısa yazılımı -B ).
Kod Listeleme 3.4: Gnumeric yazılımının sadece biner paketlerini oluşturmak |
# emerge --buildpkgonly gnumeric
|
3.d. Güvenlik İle İlgili Özellikler
Sandbox
Portage paketleri yüklediğinde ve oluşturduğunda Live sisteminizi korumak için bir sandbox kullanır. Bunun anlamı bir paketin kurulumunun tamamıyle sonuna kadar sistemdeki hiçbir dosyaya sandbox dışında erişemesi. Böylece Portage'in hangi dosyanın hangi paketten alındığını yada hangi paket tarafından değiştirildiğini bilmesi mümkün olur.
Bir paketin derlenmesi bittiğinde, portage tarafından ilk önce Sandbox'da ön-kurulum yapılır. Bu işlem esnasında hangi dosyanın nereye taşındığı not alınır. Sonraki aşamada bu dosyalar Sandbox tarafından Live-sisteminize taşınır.
User Ayrıcalıkları
Portage kullanıcı tarafından paket oluşturulmasını destekliyor (daha doğrusu kullanıcı "portage" ve grub "portage"). Böylece paket oluşumundaki güvenlik artmış oluyor. Kullanıcı ayrıcalıklarını sandbox'lu yada sandbox'suz kullanmakta özgürsünüz. Genelde ama kullanıcı ayrıcalıkları ve Sandbox beraber kullanılır.
Sandbox İle Kullanıcı Ayrıcalıklarını Etkinleşirmek
Öntanımlı olarak portage tarafından sandbox kullanır. Eğer userpriv kullanmak isterseniz bunu FEATURES değişkenine eklemelisiniz. Dikkat edilmesi gereken bir olay, userpriv özelliğini aktif ettikten sonra sandbox'un deaktif hale geçmesi. Tabi bu olay usersandbox'u aktif ederseniz gerçekleşmez:
Kod Listeleme 4.1: Userpriv ve usersandbox'u etkinleştirmek |
FEATURES="userpriv usersandbox"
|
Uyarı:
sandbox'u katiyen FEATURES değişkeninden çıkarmayınız.
|
Sıkı Kontrol
Portage'e tehlikeli şartlara karşı sıkı önlem alması söylenebilir (örn. Eksik yada hatalı manifest - dosyaları için). Bu sıkı kontrolü açmak için FEATURES değişkenine strict seçeneğini ekleyin:
Kod Listeleme 4.2: Sıkı kontrolü açmak |
FEATURES="strict"
|
Akıllı Dosya Sistemi Hakları
Portage'e otomatik olarak potansiyel tehlikeli dosya haklarını değiştirmesi söylenebilir. Bu işlem sırasında "grub(group)" ve "diğer(other)" okunabilir bit'lerin setuid dosyaları ve "diğer(other)" okunabilir bit'lerin setgid dosyaları kurum öncesi aşamada silinir. Akıllı dosya sistemi haklarını kullanmak için FEATURES değişkenine sfperms seçeneğini eklemek gerekir:
Kod Listeleme 4.3: Akıllı dosya sistemi haklarını kullanmak |
FEATURES="sfperms"
|
3.e. Başka Özellikler
Portage Yardım
FEATURES değişkenine ekliyebileceğiniz daha çok anahtar kelimesi var. Genelde bir çoğu yapılandırıcılar tarafından kullanılmakta. Bu özellikler hakkında (yada Portage hakkında genel) bilgi edinmek isterseniz make.conf klavuz sayfasını okumayı ihmal etmeyin.
Kod Listeleme 5.1: Portage hakkında daha fazla bilgi |
# man make.conf
|
4. Portage Davranışlarının Kontrolu
4.a. Ayar Dosyalarının Korunması
Korumak?
Portage'a "korunan dosyalar" konsepti eklenmiştir. Bunun anlamı , bir yazılımı güncellediğinizde belirli dosyaların yeni sürümlerini hemen eskisinin üstüne yazmak yerine kullanıcıyı yeni bir sürümün olduğuna dair uyarmasıdır. Bu , ayar dosyaları için ( /etc içinde duranlar) tabii ki çok kullanışlıdır. .
Bu dosyaların üstüne yazılmak yerine , yerine orjinal dosyanın adı gelecek şekilde ._cfg0000_<name> adında dosyalar. Bundan sonra dosyaların arasındaki farkları düzeltmek kullanıcıya kalmış olur. Ayrıca işlemi kolaylaştırmak için etc-update komutu da kullanılabilir. etc-update üstünde daha sonra duracağız.
CONFIG_PROTECT Tanımlaması
Portage , dosya tabanlı değil de klasör tabanlı bir koruma sunar. CONFIG_PROTECT , tüm korunan dosyaların listesini verir. Listeki dizinlerdeki tüm alt-dizinlerde aynı zamanda korunur. CONFIG_PROTECT , /etc/make.globals içinde tanımlanmıştır ama değiştirmek isterseniz , /etc/make.conf içinde tanımlama yapmanız gerekir( tutarlı olmak için tüm portage ayarlamalarında /etc/make.conf kullanılır).
Kod Listeleme 1.1: CONFIG_PROTECT ayarı örneği |
CONFIG_PROTECT="/etc /usr/share/config /usr/kde/3.1/share/config"
|
Sadece belirli bir dizini koruyup alt dizinlerini korumak istemiyorsanız , bu dizinleri CONFIG_PROTECT_MASK değişkeninde belirtebilirsiniz. Bu değişken de aynı şekilde /etc/make.globals içinde tanımlanmış ama değişiklik yapabilmek için /etc/make.conf dosyasında tanımlanması gerekli :
Kod Listeleme 1.2: CONFIG_PROTECT_MASK ayarı örneği |
CONFIG_PROTECT_MASK="/etc/init.d"
|
Ayar dosyalarının korunması hakkında daha çok bilgi , emerge'in online yardımında bulunabilir:
Kod Listeleme 1.3: Dosya Koruması Hakkında Bilgi Alım örneği |
# emerge --help config
|
etc-update
etc-update aracı ,._cfg0000_<name> dosyalarının birleştirmesinde yardı eder.Etkileşimli bir birleştirme işlemi sunmasının yanında önemsiz değişiklikleri de otomatik yapar.
etc-update 'i çalıştırmak oldukça basit bir iş:
Kod Listeleme 1.4: etc-update kullanımı |
# etc-update
|
Önemsiz değişiklikler yapıldıktan sonra , güncellenmeyi bekleyen korunan dosyaların bir listesiyle ve en altta da geçerli seçeneklerle karşılaşacaksınız:
Kod Listeleme 1.5: etc-update options |
Please select a file to edit by entering the corresponding number.
(-1 to exit) (-3 to auto merge all remaining files)
(-5 to auto-merge AND not use 'mv -i'):
|
Eğer -1 girerseniz, etc-update hiçbir değişiklik yapmadan doğrudan çıkar. -3 veya -5 seçimlerinde ise, listelenmiş bütün ayar dosyalarının üstüne yenileri yazılır. O yüzden otomatik olarak güncellenmemesini istediğiniz ayar dosyalarını seçmek çok önemli. Bu iş te , ilgili ayar dosyasının sol tarafındaki numarasını girmekten ibaret.
Örnek olarak biz /etc/pear.conf dosyasını seçtik:
Kod Listeleme 1.6: Belirli bir ayar dosyasını güncellemek |
Beginning of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf
End of differences between /etc/pear.conf and /etc/._cfg0000_pear.conf
1) Replace original with update
2) Delete update, keeping original as is
3) Interactively merge original with update
4) Show differences again
|
Artık iki dosyanın arasındaki farkları görebilirsiniz. Eğer güncellenmiş ayar dosyasının sorunsuz olarak çalışacağından eminseniz 1 seçin. Eğer güncellenmiş dosyanın gereksiz veya herhangi yeni, kullanışlı bilgi sağladığını düşünmüyosanız 2 seçin. Eğer şu anki ayar dosyasını etkileşimli olarak güncellemek isterseniz 3 seçin.
Etkileşimli birleştirmeyi çok detaylandırmaya gerek yok. Tam olması için , dosyaları etkileşimli olarak birleştirirken gerekli olan tüm komutları listeleyeceğiz. İki satır (orjinal dosya , teklif edilen dosya) ve aşağıdaki komutları girebileceğiniz bir komut satırı ile karşılaşacaksınız:
Kod Listeleme 1.7: Commands available for the interactive merging |
ed: Edit then use both versions, each decorated with a header.
eb: Edit then use both versions.
el: Edit then use the left version.
er: Edit then use the right version.
e: Edit a new version.
l: Use the left version.
r: Use the right version.
s: Silently include common lines.
v: Verbosely include common lines.
q: Quit.
|
Önemli dosyaların güncellenmesini bitirdikten sonra artık diğer tüm dosyaları otomatik olarak güncelleyebilirsiniz. Eğer etc-update güncellenebilecek başka bir dosya bulamazsa , çıkar.
4.b. Ağ Ayarları
Yansılar
Gentoo hızlanarak popüler hale geldikçe , yansıları kullanmakta önem kazanıyor. Portage , yansılar için üç değişken kullanır : bir tane rsync yansıları için (Portage Ağacınızı senkronize etmek için), bir tane distfiles için (Kaynak kodu için), ve bir tanede önceden hazırlanmış paketler için.
Varolan tüm distfiles yansılarGentoo mirrors page adresnde bulunabilir.Sisteminizdeki yansı işlemlerini kolaylaştırmak için mirrorselect komutunuda kullanabilirsiniz. Ama önce değişkenleri bir görelim...
Kullanmak istediğiniz syncs aslında SYNC değişkeninin içinde tutulur. Örneğin rsync://rsync.namerica.gentoo.org/gentoo-portage adresini kullanmak için bunu /etc/make.conf içinde tanımlamamız gereklidir:
Kod Listeleme 2.1: /etc/make.conf için SYNC'i tanımlamak |
SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage
rsync://rsync.samerica.gentoo.org/gentoo-portage"
|
GENTOO_MIRRORS değişkeninde , kullanmak isteyebileceğiniz distfiles yansıları tutulur. Örneğin
ftp://ibiblio.org/pub/Linux/distributions/gentoo adresini ilk seçenek ve http://www.gtlib.cc.gatech.edu/pub/gentoo adresini ikinci seçenek olarak kullanmak isterseniz bunu /etc/make.conf içinde tanımlamanız gerekir :
Kod Listeleme 2.2: /etc/make.conf içinde GENTOO_MIRRORS'ı tanımlamak |
GENTOO_MIRRORS="ftp://ibiblio.org/pub/Linux/distributions/gentoo
http://www.gtlib.cc.gatech.edu/pub/gentoo"
|
PORTAGE_BINHOST eğişkeninde , kullanmak isteyebileceğiniz önceden derlenmiş paketler tutulur. Örneğin ,
ftp://login:pass@grp.mirror.site/pub/grp/i686/athlon-xp, adresini kullanmak isterseniz bunu/etc/make.conf dosyasında tanımlamanız gereklidir:
Kod Listeleme 2.3: etc/make.conf içinde PORTAGE_BINHOST'u tanımlamak |
PORTAGE_BINHOST="ftp://login:pass@grp.mirror.site/pub/grp/i686/athlon-xp"
|
Mirrorselect
mirrorselect kullanmak istiyorsanız önce kurmalısınız (tabii daha önce kurmadıysanız).
Kod Listeleme 2.4: mirrorselect kurulması |
# emerge mirrorselect
|
Artık mirrorselect yansıları otomatik olarak seçmesi veya sizin bir listeden elle seçmeniz gibi iki seçeneğiniz mevcut. Mirrorselect'in nasıl kullanılacağı hakkında bilgi için , komut satırından mirrorselect'i çalıştırın - kısa bir bakış sunar.
Kod Listeleme 2.5: mirrorselect çalıştırmak |
# mirrorselect
|
İndirmek (fetching)
Portage'ın arşivleri hangi programla indireceğini FETCHCOMMAND ve RESUMECOMMAND ayarlarında belirtebilirsiniz. /etc/make.conf ve
/etc/make.globals dosyaların birkaç örnek mevcut. Portage'da varsayılan olarak wget kullanılır :
Kod Listeleme 2.6: Varsayılan FETCHCOMMAND & RESUMECOMMAND |
FETCHCOMMAND="/usr/bin/wget -t 5 --passive-ftp -P \${DISTDIR} \${URI}"
RESUMECOMMAND="/usr/bin/wget -c -t 5 --passive-ftp -P \${DISTDIR} \${URI}"
|
${DISTDIR} değişkeni , indirilen dosyaların saklanacağı dizin adıyla değiştirilirken (/usr/portage/distfiles), ${URI} değişkeni Portage'ın indirmesi gerekn dosyanın adresi ile değiştirilir.
Portage, varsayılan olarak wget kullandığı için http_proxy ve ftp_proxy (küçkharf ile yazıldığına dikkat edin)tanımlanarak vekil sunucu (proxy) kullanılabilir. Bu işi /etc/make.conf dosyasının içindende yapabilrisiniz fakat http_proxy ve ftp_proxy değişkenleri başka programlar tarafından da kullanılılabiliyor. Bu yüzden /etc/make.conf yerine geneş bir yol kullanmanızı tavsiye ederiz. Sistem çapında değişkenleri nasıl tanımlayabileceğinizi öğrenmek için Ortam Değişkenleri bölümünü okuyun.
"rsync" Ayarlamak
rsync , emerge sync tarafından Portage Ağacını güncellemek için kullanılır. Portage tarafından kullanılan ve Rsync'in çalışmasını değiştiren üç tane değişken var :
RSYNC_EXCLUDEFROM, RSYNC_RETRIES ve RSYNC_TIMEOUT.
Ebuild'lerin portage tarafından otomatik olarak güncelleştirilip kaldırılmasını "engellemenin" bir yolu RSYNC_EXCLUDEFROM değişkenidir. rsync belirli dosyaları dışarıda bırakmak için kullandığı dosyalardan birine yazılabilir ve varsayılan olarak /etc/portage/rsync_excludes dosyasındadır.Dikkatli olunmadığında bağımlılıkları bozabilecek bir yol olduğundan kullanılması tavsiye *edilmez*. Tavsiye edilen yol olan PORTDIR_OVERLAY değişkeninden daha sonra bahsedeceğiz. Daha çok bilgi için lütfen rsync man sayfasını okuyun.
Kod Listeleme 2.7: RSYNC_EXCLUDEFORM değişkeni |
RSYNC_EXCLUDEFROM="/etc/portage/rsync_excludes"
|
"rsync" başarılı olamadığında , varolan diğer sunucuya geçmeden önce birkaç kere deneme yapar. Bu sayı RSYNC_RETRIES tanımlıdır ve varsayılan olarak3'tür:
Kod Listeleme 2.8: RSYNC_RETRIES="3" |
RSYNC_RETRIES="3"
|
Eğer (çok) yavaş bir rsync sunucusu kullanıyorsanız, rsync ver akışı durursa zaman aşımı (time-out) verebilir. Zaman aşımını bekleme süresi RSYNC_TIMEOUT değişkeninde tanımlıdır ve varsayılan olarak 180 değeri atanmıştır:
Kod Listeleme 2.9: RSYNC_TIMEOUT değişkeni |
RSYNC_TIMEOUT="180"
|
4.c. Dizin Yolları
Giriş
Değişik işlemler için kullanılan dizinler ve Portage'ın ihtiyacı olduğu dosyalarda dahil olmak üzere Portage hakkındaki herşey ayarlanabilir. Varsayılan yolları (/etc/make.globals dosyasında tanımlandığı üzere) değiştirmek için /etc/make.conf dosyasında - başka nerede olabilir ki? :) - doğru değişkenleri tanımlamalısınız.
Uyarı:
Eğer herhangi bir değişkeni değiştiriyorsanız yazdığınız yolun sonuna *kesinlikle* / eklemeyin!
|
Portage Ağacı
Portage Ağacının yolu PORTDIR değişkeninde tanımlıdır. Varsayılan olarak /usr/portage yolu tanımlanmıştır:
Kod Listeleme 3.1: PORTDIR değişkeni |
PORTDIR="/usr/portage"
|
Yerel bir Portage ağacını , "resmi" sürüme yakın tutmak istiyorsanız PORTDIR_OVERLAY değişkenini tanımlamalısınız. Bu değişkende listelenen dizin(ler) , emerge sync olayından etkilenmezler : buralardaki ebuildler güncellenmez veya kaldırılmazlar ama Portage Ağacına dahildir.
Kod Listeleme 3.2: PORTDIR_OVERLAY değişkeni |
PORTDIR_OVERLAY="/usr/local/portage"
|
Distfiles
İndirilen kaynak kodlarının (distfiles denen) yolları DISTDIR değişkeninde tanımlıdır. Varsayılan olarak ${PORTDIR}/distfiles yolunu gösterir :
Kod Listeleme 3.3: DISTDIR değişkeni |
DISTDIR="${PORTDIR}/distfiles"
|
Paketler ve RPM'ler
Önceden derlenmiş paketlerin yolları ise PKGDIR değişkeninde tanımlıdır. Varsayılan olarak ${PORTDIR}/packages olarak belirlenmiştir:
Kod Listeleme 3.4: PKGDIR değişkeni |
PKGDIR="${PORTDIR}/packages"
|
RPMlerin (evet , bazı paketler RPM olarak mevcut) yolları ise RPMDIR değişkeni sorumludur. Varsayılan olarak ${PORTDIR}/rpm belirtilmiştir:
Kod Listeleme 3.5: RPMDIR değişkeni |
RPMDIR="${PORTDIR}/rpm"
|
Gecici Portage Dosyaları
Portage , ebuildleri oluşturmak için geçici bir dizin kullanır. Bu dizinin yolu PORTAGE_TMPDIR değişkeninde tanımlıdır ve varsayılan olarak /var/tmp yoludur:
Kod Listeleme 3.6: PORTAGE_TMPDIRdeğişkeni |
PORTAGE_TMPDIR="/var/tmp"
|
Portage varsayılan olarak ,
PORTAGE_TMPDIR içinde bir portage dizini oluşturur. Bu ise BUILD_PREFIX değişkeninde tanımlıdır:
Kod Listeleme 3.7: BUILD_PREFIX değişkeni |
BUILD_PREFIX="${PORTAGE_TMPDIR}/portage"
|
Bu yolu değiştirmeye karar verirseniz , geçici dizini yeterli disk alanına sahip bir yere koyduğunuzdan emin olun : büyük yazılım paketlerini derlerken dizin , 2GB+ olabiliyor.
Kayıt Tutma (Logging)
PORT_LOGDIR özel bir değişken olmakla birlikte varsayılan olarak tanımlı değildir. Eğer tanımlarsanız Portage , her ebuild için verilen dizinde bir kayıt dosyası oluşturur :
Kod Listeleme 3.8: PORT_LOGDIR değişkeni |
PORT_LOGDIR="/var/log/portage"
|
4.d. Diğer Portage Ayarları
Caziplik Değeri
Portage , caziplik değerine (Önceliğe benzer bir değer) derlemeyi destekliyor. Eğer Portage'ın paketleri daha yüksek caziplik-değerinde derlemesini (derleme sırasında sistemin ulaşılbilirliğini arttırır fakat derleme süresini uzatır) istiyorsanız PORTAGE_NICENESS değişkenini pozitif bir sayı olarak tanımlayın :
Kod Listeleme 4.1: PORTAGE_NICENESS değişkeni |
PORTAGE_NICENESS="3"
|
SLOT'lanmış Paketler ve Otomatik Temizlik
Bazı durumlarda bir paketin(kütüphaneler dahil olmak üzere) birden çok sürümünün sistemde varolmasını isteyebilirsiniz. Portage bunu , ebuildlerdeki SLOT değişkeni ile destekler. Bir kullanıcı olarak SLOT'lamanın nasıl çalıştığını bilmek zorunda değilsiniz ama bunun desteklendiğini bilmeniz önemli.
Eğer bir paketin daha yeni bir sürümünü kuruyorsanız , Portage bu paket için tanımlı olan
SLOT değerine bakar. Eğer bu değer her iki pakette (eski ve yeni) farklıysa , eski pakete dokunulmaz.
Bununla birlikte SLOT değişkeni aynıysa (genellikle olan durum) , varsayılan olarak eski paket kaldırılır. Bu kaldırma işleminin kullanıcı tarafından kesilebilir bir hale getirilmesi için Portage , belli bir sayıdan geriye doğru sayar. Bu değer CLEAN_DELAY değişkeninde tanımlıdır ve varsayılan olarak 5 saniyedir:
Kod Listeleme 4.2: CLEAN_DELAY değişkeni |
CLEAN_DELAY="5"
|
Eğer Portage'nin otomatik olarak eski sürümleri silmesini İSTEMİYORSANIZ AUTOCLEAN değişkenine no değerini atayın:
Kod Listeleme 4.3: AUTOCLEAN değişkeni |
AUTOCLEAN="no"
|
Derlemeyle İlgili Değişkenler
Buraya kadar birçok değişken gördük ama daha bitmedi. Gentoo kuranlar , derleyicinin paketleri derleyip optimize etmesi için kullanılan CHOST, CFLAGS
ve CXXFLAGS değişkenlerini bilir.
Bu değişkenler hakkında daha çok bilgi gcc bilgi sayrafından veya GCC Online Manuals sayfasında online olara bulunabilir.
Kod Listeleme 4.4: CHOST,CFLAGS ve CXXFLAGS bilgilerini almak |
# info gcc
|
Eğer DEBUGBUILD tanımlıysa Portage , debug işini kolaylaştırmak için yapılan tüm binary kütüphanelerin gösterilmesini gerçekleştirmez. Bu sisteminizi yavaşlatıp , dosya boyutunu büyütür.
Kod Listeleme 4.5: DEBUGBUILD değişkeni |
DEBUGBUILD="true"
|
MAKEOPTS değişkeni make tarafından bir paketin derlenmesini kolaylaştırmak için kullanılır. Genellikle make birkaç derlemeyi aynı anda yapmasını söylemek için ayarlıdır (özellikle çok işlemcili bir makine veya distcc kullanıyorsanız).
"make" üç tane derlemeyi aynı anda yapmasını sağlamak için
MAKEOPTS değişkenini -j3ayarlayın:
Kod Listeleme 4.6: MAKEOPTS değişkeni |
MAKEOPTS="-j3"
|
ROOT değişkeni /etc/make.conf yerine ortam değişkeni olarak tanımlanmalıdır. Portage bu değişkeni , bir paketin nereye kurulacağını öğrenmek için kontrol eder. Tabiiki varsayılan olarak / dir. Örnek olarak , gnumeric yazılımının çalışan sistem yerine nasıl /mnt/gentoo altına kurulacağını gösteriyoruz:
Kod Listeleme 4.7: ROOT değişkeni |
# ROOT="/mnt/gentoo" emerge gnumeric
|
Çıktı Biçimlendirmesi
Varsayılan olarak Portage , çıktısını okunabilirliğini arttımak için renklendirir. Bunu istemiyorsanız NOCOLOR değişkenini true yapın:
Kod Listeleme 4.8: NOCOLOR değişkeni |
NOCOLOR="true"
|
4.e. Kaynaklar
Man Sayfaları
Eğer tüm değişkenleri çabucak görebileceğiniz bir yer gerekiyorsa , lütfen make.conf man page
sayfalarına göz atmayı unutmayın
Kod Listeleme 5.1: Make.conf man dosyasına göz atmak |
# man make.conf
|
Örnekler
/etc/make.conf dosyasında sizinde ilginç
bulabileceğiniz birçok örnek mevcut. Bununla birlikte birçok
kişi/etc/make.conf dosyalarını güncellemedikleri için bu
dosyaya yapılan değişiklikleri göremiyorlar.
/etc/make.conf dosyasının son halini Online
ViewCVS Repository depomuzda bulabilirsiniz.
5. İnit Betikleri (initscripts)
5.a. Çalışma Seviyeleri(run levels)
Sisteminizi Önyükleme
Sisteminizi önyüklediğinizde, birçok kayan yazıyı farkedersiniz. Eğer dikkatlice takip ederseniz, bu yazıların sisteminizi her açtığınızda aynı olduğunu görürsünüz. Bu işlemler dizisinin tamamına açılış dizisi denir ve (az ya da çok) statik olarak belirtilir.
Önce, açılış yöneticisi, ayar dosyasında belirttiğiniz kerneli hafızaya yükler, sonra da işlemciye kerneli çalıştırmasını söyler. Kernel yüklenip çalıştırıldığında, kernele özgü yapı ve görevleri başlatır ve init sürecini çalıştırır.
Bu süreç, daha sonra (/etc/fstab içinde tanımlı) bütün dosya sistemlerinin bağlanıp kullanıma hazır olduğundan emin olur. Sonra da /etc/init.d içinde bulunan, sisteminizin başarılı bir şekilde açılması için gerekli servisleri başlatacak çeşitli betikleri çalıştırır.
Son olarak, bütün betikler çalıştırıldığında, init süreci, agetty adındaki özel süreci bağlayarak terminalleri (genellikle ALT-F1, ALT-F2, ... altındaki sanal konsolları) aktifleştirir. Bu süreç daha sonra login'i çalıştırarak terminallere bağlanabileceğinizden emin olur.
Açılış Betikleri (Init Scripts)
Buradainit , /etc/init.d
,çindeki betikleri rastgele çalıştırmaz. Hatta /etc/init.d içindeki her betiği değil, sadece çalıştırması söylenenleri çalıştırır. Hangi betikleri çalıştırması gerektiğine /etc/runlevels içine bakarak karar verir.
Önce init , /etc/runlevels/boot içinde sembolik bağlantısı olan /etc/init.d betiklerini çalıştırır. Genellikle, betiklere alfabetik sırada başlar, ama bazı betikler bağımlılık bilgisi içerir ve çalışmadan önce başka hangi betiklerin çalıştırılması gerektiğini sisteme söyler.
/etc/runlevels/boot içinde referansı bulunan her betik çalıştırıldıktan sonra init, /etc/runlevels/default içinde sembolik bağlantısı olan betikleri çalıştırır. Tekrar, hangi betiğin önce çalışacağına, düzgün bir başlangıç süreci sağlamak için içerisinde bağımlılık bilgisi içermediği sürece alfabetik sırayı kullanarak karar verir.
Init Nasıl Çalışır
Elbette init bunların hepsini kendisi düşünmez. Hangi işlemlerin yapılacağını belirten bir konfigürasyon dosyasına ihtiyaç duyar. Bu konfigürasyon dosyası /etc/inittab'dir.
Eğer size biraz önce açıkladığımız açılış dizisini hatırlarsanız, init'in ilk işi dosya sistemlerini bağlamaktır. Bu, /etc/inittab içindeki şu satır ile belirtilmiştir:
Kod Listeleme 1.1: /etc/inittab içindeki sistem başlangıcı satırı |
si::sysinit:/sbin/rc sysinit
|
Bu satır init'e, sistemi başlatmak için /sbin/rc sysinit komutunu çalıştırması gerektiğini söyler. /sbin/rc betiği, başlangıç işlemlerini halleder, bu yüzden init'in çok iş yapmadığını -- sistem başlangıç işlemlerinin yapılması işini başka süreçlere aktarır.
İkinci olarak init, /etc/runlevels/boot içinde sembolik bağlantısı buşunan bütün betikleri çalıştırır. Bu, aşağıdaki satır ile tanımlanmıştır:
Kod Listeleme 1.2: Sistem başlangıcı, devamı |
rc::bootwait:/sbin/rc boot
|
Yine rc betiği, gerekli işlemleri gerçekleştirir. Dikkat ederseniz, rc'ye verilen parametre (boot), /etc/runlevels altındaki altdizin ile aynıdır.
Şimdi init, hangi çalışma seviyesinin kullanılacağını görmek için konfigürasyon dosyasını kontrol eder. Buna karar vermek için, /etc/inittab'deki aşağıdaki satırı okur:
Kod Listeleme 1.3: initdefault satırı |
id:3:initdefault:
|
Bu durumda (Gentoo kullanıcılarının çoğunun kullanacağı) çalışma seviyesi (runlevel) 3'tür. Bu bilgiyi kullanarak init, 3 numaralı çalışma seviyesi için neyi çalıştırması gerektiğini kontrol eder:
Kod Listeleme 1.4: Çalışma seviyeleri tanımlamaları |
l0:0:wait:/sbin/rc shutdown
l1:S1:wait:/sbin/rc single
l2:2:wait:/sbin/rc nonetwork
l3:3:wait:/sbin/rc default
l4:4:wait:/sbin/rc default
l5:5:wait:/sbin/rc default
l6:6:wait:/sbin/rc reboot
|
TSeviye 3'ü tanımlayan satır, servisleri çalıştırmak için tekrar rc betiğini (default argümanını ile) kullanır. Tekrar, rc'nin argümanının /etc/runlevels içindeki altdizin ile aynı olduğuna dikkat edin.
rc bittiğinde, init hangi sanal konsolları aktifleştirmesi ve her konsolda hangi komutları çalıştırması gerektiğine karar verir:
Kod Listeleme 1.5: Sanal konsol tanımlaması |
c1:12345:respawn:/sbin/agetty 38400 tty1 linux
c2:12345:respawn:/sbin/agetty 38400 tty2 linux
c3:12345:respawn:/sbin/agetty 38400 tty3 linux
c4:12345:respawn:/sbin/agetty 38400 tty4 linux
c5:12345:respawn:/sbin/agetty 38400 tty5 linux
c6:12345:respawn:/sbin/agetty 38400 tty6 linux
|
Çalışma Seviyesi Nedir?
Init'in hangi çalışma seviyesini aktifleştireceğine karar vermesi için bir numaralandırma yöntemi kullandığını gördünüz. Bir çalışma seviyesi, sisteminizin hangi durumda çalıştığıdır ve bir çalışma seviyesine girdiğinizde çalıştırılması gereken betik topluluğunu (çalışma seviyesi betikleri ya da init betikleri) içerir.
Gentoo'da, yedi çalışma seviyesi tanımlanmıştır: üç dahili çalışma seviyesi ve dört kullanıcı tanımlı çalışma seviyesi. Dahili çalışma seviyeleri sysinit, shutdown ve reboot'tur ve isimlerinin ima ettiği işleri yaparlar: sistemi başlat, sistemi kapat, sistemi yeniden başlat.
Kullanıcı tanımlı çalışma seviyeleri de /etc/runlevels içinde altdizini bulunan boot, default, nonetwork ve single'dır. boot çalışma seviyesi, diğer tüm çalışma seviyelerinin kullandığı, sisteme gereken tüm servisleri çalıştırır. Geri kalan üç çalışma seviyesi de, çalıştırdıkları servislere göre farklılık gösterirler: default, günlük yapılan işler için kullanılır; nonetwork, ağ bağlantısı gerekmediğinde kullanılır; single ise sistemi onarmak istediğinizde kullanılır.
Init Betikleri ile Çalışma
rc sürecinin başlattığı betiklere init betikleri denir. /etc/init.d içindeki her betik start, stop, restart, pause, zap, status, ineed, iuse, needsme, usesme veya broken argümanları ile çalıştırılabilir.
Bir servisi (ve bağlı tüm servisleri) başlatmak, durdurmak ya da yeniden başlatmak için, start, stop ve restart kullanılır:
Kod Listeleme 1.6: Postfix'i başlatma |
# /etc/init.d/postfix start
|
Not:
Sadece belirtilen servise ihtiyaç duyan servisler durdurulur yada yeniden başlatılır. Diğer bağımlı servislere (servisi kullanan ama ihtiyaç duymayanlara) dokunulmaz.
|
Eğer bir servisi durdurmak istiyorsanız, ama ona bağlı servisleri durdurmak istemiyorsanız, pause argümanını kullanabilirsiniz:
Kod Listeleme 1.7: Postfix'i durdurma ve bağlı servisleri çalışır durumda bırakma |
# /etc/init.d/postfix pause
|
Eğer bir servisin durumunu öğrenmek istiyorsanız (başlamış, durmuş, bekletilmiş), status argümanını kullanabilirsiniz:
Kod Listeleme 1.8: Postfix'in durum bilgisi |
# /etc/init.d/postfix status
|
Eğer durum bilgisi size servisin çalıştığını gösteriyorsa, ancak öyle olmadığını biliyorsanız, servisin durum bilgisini zap argümanı ile "durdurulmuş" konuma sıfırlayabilirsiniz:
Kod Listeleme 1.9: Postfix'in durum bilgisini sıfırlama |
# /etc/init.d/postfix zap
|
Servisin hangi bağımlılıklara sahip olduğunu öğrenmek için iuse ve ineed argümanlarını kullanabilirsiniz. ineed ile servisin çalışması için hangi servislerin bulunması gerektiğini görebilirsiniz. Diğer taraftan, iuse ile servis tarafından kullanılabilen, ancak çalışması için bulunması zorunlu olmayan servislerin listesini görebilirsiniz.
Kod Listeleme 1.10: Postfix'in ihtiyaç duyduğu servislerin listesini isteme |
# /etc/init.d/postfix ineed
|
Benzer olarak, servise ihtiyaç duyan servislerin (needsme) ve servisi kullanabilen servislerin (usesme) listesini öğrenebilirsiniz:
Kod Listeleme 1.11: Postfix'e ihtiyaç duyan servislerin listesini isteme |
# /etc/init.d/postfix needsme
|
Son olarak, servis için gerekli olan kayıp servislerin listesini de öğrenebilirsiniz:
Kod Listeleme 1.12: Postfix'in ihtiyaç duyduğu kayıp servislerin listesini isteme |
# /etc/init.d/postfix broken
|
5.b. rc-update ile Çalışma
rc-update nedir?
Gentoo'nun init sistemi hangi servislerin önce çalıştırılması gerektiğine karar veren bir bağımlılık ağacı kullanır. Bu can sıkıcı iş yüzünden kullanıcılarımızın bunu el ile yapmalarını istemiyorduk, çalışma seviyeleri ve init betiklerinin yönetimini kolaylaştırmak için bazı araçlar hazırladık.
rc-update sayesinde, bir çalışma seviyesine init betiği ekleyip çıkarabilirsiniz. Sonra rc-update aracı otomatik olarak depscan.sh betiğinden bağımlılık ağacını oluşturmasını ister.
Servis Ekleme ve Çıkarma
Daha önce, Gentoo kurulumu sırasında init betiklerini "default" çalışma seviyesine eklediniz. O zamanda, "default"un ne için olduğu hakkında bilginiz yoktu, ama şimdi olmalı. rc-update betiği bir argümana ihtiyaç duyar: add (eklemek için), del (silmek için) veya show (göstermek için).
Init betiği eklemek ya da çıkarmak için, rc-updatekomutuna add veya del argümanlarını verin, ardından init betiğini ve çalışma seviyesini yazın. Mesela:
Kod Listeleme 2.1: default çalışma seviyesinden Postfix'i çıkarma |
# rc-update del postfix default
|
rc-update show komutu size bütün init betiklerini ve hangi çalışma seviyesinde çalıştıklarını gösterir:
Kod Listeleme 2.2: Init betiği bilgisini alma |
# rc-update show
|
5.c. Servisleri Ayarlama
Fazladan Ayarlamaya Olan İhtiyaç Neden?
Init betikleri oldukça karmaşık olabilir. Bu yüzden kullanıcıların init betiklerini doğrudan düzenlemesi çekici olmayabilir, ayrıca betikleri hata eğilimli hale getirebilir. Bununla beraber, herhangi bir servis ayarlamasını yapabilmek önemlidir. Mesela bir servisin kendisine daha fazla opsiyon eklemek isteyebilirsiniz.
Bu konfigürasyonu init betiğinin dışından yapmak için ikinici bir sebep, konfigürasyon değişikliklerinizin yapılmamış olmasından korkmadan güncelleme yapabilmektir.
/etc/conf.d Dizini
Gentoo, bir servisi konfigüre etmek için kolay bir yol sunar: konfigüre edilebilen her init betiği /etc/conf.d içinde bir dosyaya sahiptir. Mesela, apache2 init betiği (/etc/init.d/apache2), Apache 2 sunucusu başlatılırken verilecek opsiyonları içeren /etc/conf.d/apache2 içinde bir konfigürasyon dosyasına sahiptir:
Kod Listeleme 3.1: /etc/conf.d/apache2 içinde tanımlanmış değişken |
APACHE2_OPTS="-D PHP4"
|
Böyle bir konfigürasyon dosyası değişkenleri ve yalnız olan değişkenleri (tıpkı /etc/make.conf gibi) içerir, servisleri konfigüre etmeyi çok kolay hale getirir. Ayrıca (yorumlar ile) değişkenler hakkında daha fazla bilgi vermeyi de sağlar.
5.d. Init Betikleri Yazma
Yazmak zorunda mıyım?
Hayır. Gentoo, sunulan servisler için kullanıma hazır init betikleri sunduğundan, init betikleri yazmak çoğu zaman gerekli değildir. Ancak, Portage kullanmadan bir servis kurduğunuzda, muhtemelen kendi init betiğinizi yaratmanız gerekebilir.
Açık şekilde Gentoo için yazılmamışsa, bir servis ile sunulan init betiğini kullanmayın: Gentoo'nun init betikleri diğer dağıtımların kullandığı init betikleri ile uyumlu değildir!
Düzen (Layout)
Bir init betiğinin temel yapısı aşağıda gösterilmiştir:
Kod Listeleme 4.1: Bir init betiğinin temel yapısı |
#!/sbin/runscript
depend() {
}
start() {
}
stop() {
}
restart() {
}
|
Her init betiğinde start() fonksiyonunun tanımlı olması gerekir. Diğerleri ihtiyaca göre değişebilir.
Bağımlılıklar
Tanımlayabileceğiniz iki bağımlılık vardır: use ve need. Daha önce belirttiğimiz gibi, need bağımlılığı use bağımlılığından daha katıdır. Bu bağımlılık tipini takip ederek, bağımlı olduğunuz servise, ya da sanal bağımlılığa girersiniz.
Sanal bağımlılık, bir servisin sağladığı, ancak yalnızca o servis tarafından sağlanmayan bir bağımlılıktır. Sizin init betiğiniz sistem kayıt edicisine bağlı olabilir, ancak pek çok sistem kayıt edicisi (metalogd, syslog-ng, sysklodg, ...) vardır. Her birine tek tek ihtiyaç duymayacağınız (need) için (hiçbir mantıklı sistemde bütün bu sistem kayıt edicilerin hepsi yüklü ve çalışır durumda değildir), biz bütün bu servislerin sanal bağımlılık sağladığından (provide) emin olduk.
Postfix servisine ait bağımlılık bilgisine bakalım:
Kod Listeleme 4.2: Postfix için bağımlılık bilgisi |
depend() {
need net
use logger dns
provide mta
}
|
Gördüğünüz gibi, postfix servisi:
-
net bağımlılığına (sanal) ihtiyaç duyar (mesela, /etc/init.d/net.eth0 ile sağlanan))
-
logger bağımlılığını (sanal) kullanır (mesela/etc/init.d/syslog-ng ile sağlanan)
-
dns bağımlılığını (sanal) kullanır (mesela/etc/init.d/named ile sağlanan))
-
mta bağımlılığı (sanal) sağlar (tüm mail sunucular için ortak olan)
Sıralamayı Kontrol Etme
Birçok durumda, bir servise ihtiyaç duymazsınız ama servisinizin, bu servis sisteminizde varsa, ondan önce (before) ya da sonra (after) çalışması gerekebilir (şarta dikkat edin - bu artık bağımlılık değildir), ve aynı çalışma seviyesinde çalışır (şarta dikkat edin - sadece aynı çalışma seviyesindeki servisler birbirine bağlanabilir). Bu bilgiyi before ve after ayarları ile sağlayabilirsiniz.
Örnek olarak Portmap servisinin ayarlarına bakalım:
Kod Listeleme 4.3: Portmap servisinin depend() fonksiyonu |
depend() {
need net
before inetd
before xinetd
}
|
Ayrıca "*" işaretini kullanarak çalışma seviyesindeki tüm servisleri temsil edebilirsiniz, ancak bu tavsiye edilmez.
Kod Listeleme 4.4: Bir init betiğini çalışma seviyesinde ilk çalıştırma |
depend() {
before *
}
|
Standart Fonksiyonlar
depend() işlevselliğinden sonra, bir de start() fonksiyonunu tanımlamalısınız. Bu, servisinizi başlatmak için gerekli tüm komutları içerir. ebegin ve eend fonksiyonlarını kullanarak kullanıcıya ne olup bittiği konusunda bilgilendirmek tavsiye edilir:
Kod Listeleme 4.5: Örnek start() fonksiyonu |
start() {
ebegin "Starting my_service"
start-stop-daemon --start --quiet --exec /path/to/my_service
eend $?
}
|
Eğer start() fonksiyonu ile ilgili daha fazla örnek görmek istiyorsanız, lütfen /etc/init.d dizininizdeki init betiklerinin kaynak kodlarını okuyun. Daha fazla bilgiye ihtiyaç duyarsanız, start-stop-daemon için mükemmel bir klavuz sayfası (man sayfası) bulunmaktadır:
Kod Listeleme 4.6: start-stop-daemon hakkındaki man sayfasını okuma |
# man start-stop-daemon
|
Tanımlayabileceğiniz diğer fonksiyonlar şunlardır: stop() ve restart(). Bu fonksiyonları tanımlamaya zorlanmamaktasınız! Bizim init sistemimiz bu fonksiyonları kendisi dolduracak kadar zekidir, tabi start-stop-daemon kullanırsanız.
Özel Seçenekler Ekleme
Eğer kendi init betiklerinizin, daha önce karşılaştığımız seçeneklerden daha fazlasını desteklemesini istiyorsanız, istediğiniz seçeneği opts değişkenine eklemeli, ve aynı isimde bir fonksiyon yaramalısınız. Örneğin, restartdelay adında bir seçenek eklemek için:
Kod Listeleme 4.7: restartdelay seçeneğini ekleme |
opts="${opts} restartdelay"
restartdelay() {
stop()
sleep 3
start()
}
|
Servis Ayar Değişkenleri
/etc/conf.d içinde bir konfigürasyon dosyası kullanmak için yapmanız gereken ek birşey yoktur. Init betiğiniz çalıştırıldığında, aşağıdaki dosyalar otomatik olarak okunur (örneğin kullanılabilir değişkenler):
- /etc/conf.d/<sizin init betiğiniz>
- /etc/conf.d/basic
- /etc/rc.conf
Ayrıca, eğer init betiğiniz sanal bir bağımlılık ( net gibi), ağlıyorsa, ilişkilendirilen bağımlılığa ait konfigürasyon da (/etc/conf.d/net gibi) okunur.
5.e. Çalışma Seviyesi Davranışını Değiştirme
Bundan Kim Yararlanabilir?
Birçok dizüstü bilgisayar kullanıcısı bu durumu bilir: evdeyken net.eth0
'ı çalıştırmanız gerekir, ancak yoldayken (mevcut bir ağ olmadığında)net.eth0 'ı çalıştırmanız gerekmez. Gentoo ile, çalışma seviyesi davranışını isteğinize göre değiştirebilirsiniz.
Örneğin, başka init betiklerinin bulunduğu ikinci bir "default" çalışma seviyesi yaratabilirsiniz. Açılış anında hangisini çalıştıracağınızı seçebilirsiniz.
SOFTLEVEL Kullanma
Herşeyden önce, ikinci "default" çalışma seviyeniz için bir dizin yaratın. Örnek olarak offline çalışma seviyesi yaratalım:
Kod Listeleme 5.1: Çalışma seviyesi dizini yaratma |
# mkdir /etc/runlevels/offline
|
Gerekli init betiklerini yeni yaratılan çalışma seviyesine ekleyin. Mesela, mevcut default çalışma seviyenizin net.eth0'ı içermeyen bir kopyasını yaratmak istiyorsanız:
Kod Listeleme 5.2: Gerekli init betiklerini ekleme |
# ls /etc/runlevels/default
acpid domainname local net.eth0 netmount postfix syslog-ng vcron
# rc-update add acpid offline
# rc-update add domainname offline
# rc-update add local offline
# rc-update add syslog-ng offline
# rc-update add vixie-cron offline
|
Şimdi açılış yöneticinizin ayarlarını değiştirerek,
offline çalışma seviyesi için bir kayıt ekleyin. Örneğin /boot/grub/grub.conf dosyasının içine:
Kod Listeleme 5.3: offline çalışma seviyesi için bir kayıt ekleme |
title Gentoo Linux Offline Usage
root (hd0,0)
kernel (hd0,0)/kernel-2.4.25 root=/dev/hda3 softlevel=offline
|
İşte yaptınız. Eğer sisteminizi açarken yeni eklediğiniz kaydı seçerseniz, default çalışma seviyesi yerine
offline çalışma seviyesi kullanılır.
BOOTLEVEL Kullanma
bootlevel kullanmak softlevel kullanmaya çok benzer. ek fark, ikinci "default" çalışma seviyesi tanımlamak yerine ikinci "boot" çalışma seviyesi tanımlamanızdır.
6. Ortam Değişkenleri
6.a. Ortam Değişkenleri
Ortam Değişkenleri Nedir?
Ortam değişkenleri , bir veya daha çok uygulamanın kullandığı bilgiyi saklayan isimlendirilmiş nesnelerdir. Birçok kullanıcı (özellikle Linux'a yeni olanlar) bunu garip ve kullanışsız bulabilir. Fakat bu yanlış : ortam değişkenleri yardımıyla bir veya daha çok uygulamanın ayarı çok kolay değiştirilebilir.
Bazı Önemli Değişkenler
Aşağıdaki tabloda Linuxta kullanılan birçok değişkenin ismi ve ne işe yaradıkları yazıyor. Örnek değerler tablodan sonra veriliyor.
| Değişken |
Açıklama |
| PATH |
Sistemin çalıştırılabilir dosyalar için bakacağı yerlerin listesi , iki nokta üstüste ile ayrılmış şekilde burada saklanır. Eğer bir komut verirseniz (mesela ls, rc-update veya emerge) ve bu komut listelenmiş dizinlerin hiçbirinde mevcut değilse , sistem bunu çalıştırmaz. (/bin/ls gibi tam yolu yazmadığınız sürece)
|
| ROOTPATH |
Bu değişken de PATH gibidir fakat sadece root olan kullanıcı bir komut verdiğinde bakılacak dizinleri içerir.
|
| LDPATH |
Bu değişken dinamik linker'in bir kütüphaneyi bulmak için bakacağı dizinlerin listesini iki nokta üstüste ile ayrılmış biçimde saklar.
|
| MANPATH |
Man komutunun man dosyaları için bakacağı yerlerin listesini iki nokta üstüste ile ayrılmış biçimde saklar. |
| INFODIR |
Info komutunun info dosyaları için bakacağı yerlerin listesini iki nokta üstüste ile ayrılmış biçimde saklar. |
| PAGER |
Bu değişkende dosya içeriklerinin gösterilmesi için kullanılacak programların (less ve more gibi) yerleri saklanır.
|
| EDITOR |
Dosya içeriklerinin değiştirilmesi için kullanılacak programların (nano ve vi gibi) yerleri bu değişkende saklanır.
|
| KDEDIRS |
KDE'ye ait şeylerin olduğu dizinlerin listesini iki nokta üstüste ile ayrılmış biçimde saklar. |
| CLASSPATH |
ava Class(sınıf)larının olduğu dizinlerin listesini iki nokta üstüste ile ayrılmış biçimde içerir.
|
| CONFIG_PROTECT |
Portage ile güncelleme yapılırken korunması gereken dizinlerin adreslerini "boşluk-ters kesme" işaretleriyle ayrılmış biçimde saklar.
|
| CONFIG_PROTECT_MASK |
Portagela güncelleme yapılırken korunması gerekmeyen dizinlerin adreslerini "boşluk-ters kesme" işaretleriyle ayrılmış biçimde saklar. |
Aşağıda , tüm bu değişkenler için örnek tanımlamaları bulabilirsiniz:
Kod Listeleme 1.1: Örnek Tanımlamar |
PATH="/bin:/usr/bin:/usr/local/bin:/opt/bin:/usr/games/bin"
ROOTPATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
LDPATH="/lib:/usr/lib:/usr/local/lib:/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
MANPATH="/usr/share/man:/usr/local/share/man"
INFODIR="/usr/share/info:/usr/local/share/info"
PAGER="/usr/bin/less"
EDITOR="/usr/bin/vim"
KDEDIRS="/usr"
CLASSPATH="/opt/blackdown-jre-1.4.1/lib/rt.jar:."
CONFIG_PROTECT="/usr/X11R6/lib/X11/xkb /opt/tomcat/conf \
/usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ \
/usr/share/texmf/tex/platex/config/ /usr/share/config"
CONFIG_PROTECT_MASK="/etc/gconf
|
6.b. Değişkenleri Global olarak tanımlamak
/etc/env.d dizini
Değişkenlerin tanımlarının bir merkezde toplanması için Gentoo , /etc/env.d dizinini yarattı. Bu dizinde 00basic, 05gcc vb. gibi isimlerinde belirtilen uygulama için gerekli olan değişkenleri taşıyan dosyaları bulabilirsiniz.
Örneğin gcc 'yi kurduğunuzda ; ismi 05gcc olan ve aşağıdaki değişkenleri taşıyan bir dosya , ebuild tarafından yaratılır:
Kod Listeleme 2.1: /etc/conf.d/05gcc |
PATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
ROOTPATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
MANPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/man"
INFOPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/info"
CC="gcc"
CXX="g++"
LDPATH="/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
|
Diğer dağıtımlar sizden /etc/profile veya başka yerlerdeki ortam değişkeni tanımlarını değiştirmenizi isterler. Fakat Gentoo , ortam değişkenlerini taşıyan birçok dosya ile uğraşılmasını engelleyerek , hem bu değişkenlerin bakımını hemde yönetimini sizin (ve Portage) için çok kolaylaştırıyor.
Örneğin gcc güncellendiğinde , hiçbir kullanıcı müdahalesine gerek kalmadan /etc/env.d/05gcc dosyasıda güncelleniyor.
Bu sadece Portage'a değil ama bir kullanıcı olarak size de yarar sağlıyor. Bazen bir değişkeni sistem çapında ayarlamanız istenebilir. Mesela http_proxy değişkenini ele alalım. /etc/profile ile uğraşmaktansa artık sadece bir dosya (/etc/env.d/99local) yaratıp tanımlamaları onun içine girebilirsiniz :
Kod Listeleme 2.2: /etc/env.d/99local |
http_proxy="proxy.server.com:8080"
|
Tüm değişkenler için aynı dosyayı kullanarak , kendi tanımladıklarınıza kolayca bakabilirsiniz.
env-update Betiği (Script)
/etc/env.d dizinindeki bazı dosyalar PATH değişkenini belirler. env-update çalıştırıldığında ortam değişkenlerini güncellemeden önce , bazı tanımalamarı eklemek suretiyle varolan değişkenleri ellemeden kendininkileri eklemeyi , paketler (veya kullanıcılar) için daha kolay hale gertiriyor.
env-update scripti , değerleri /etc/env.d deki dosyaların alfabetik sıralamasına göre ekler. İşte bu yüzden , /etc/env.d deki birçok dosyanın adı bir rakamla başlar.
Kod Listeleme 2.3: env-update 'in güncelleme sırası |
00basic 99kde-env 99local
+-------------+----------------+-------------+
PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin"
|
env-update çalıştırıldığında , tüm ortam değişkenleri oluşturulup /etc/profile.env (/etc/profile tarafındanda kullanılan) dosyasına konulur.
Ayrıca LDPATH değişkenindeki bilgiler okunup /etc/ld.so.conf dosyasının oluşturulmasında kullanılır.Bundan sonra , dinamik linker tarafından kullanılan /etc/ld.so.cache dosyasının oluşturulması için ldconfig çalıştırılır.
Eğer env-update komutunun etkilerini çalıştırdıktan hemen sonra görmek istiyorsanız , ortamı güncellemek için aşağıdaki komutu kullanın. Gentoo'yu kendileri kuran kullanıcılar bu komutu hatırlayacaklardır :
Kod Listeleme 2.4: Ortam değişkenlerini güncellemek |
# env-update && source /etc/profile
|
6.c. Değişkenleri Yerel Olarak Tanımlamak
Kullanıcıya Özel Değişkenler
Bir değişkeni her zaman global olarak tanımlamak istemeyebilirsiniz. Örneğin , /home/kullanici/bin dizinini PATH'e ekleyip sistemdeki diğer kullanıcıların PATH değişkenlerinde bunun olmasını istemiyor olabilirsiniz. Bir değişkeni yerel olarak tanımlamak istiyorsanız ~/.bashrc veya ~/.bash_profile dosyalarını kullanmalısınız( ~ işareti /home/kullanıcı_ismi dizinine eşittir) :
Kod Listeleme 3.1: Yerel kullanım için PATH değişkenini ~/.bashrc de genişletmek |
PATH="${PATH}:/home/kullanıcı_ismi/bin"
|
Kullanıcı ile tekrar giriş yaptığınızda PATH değişkeni güncellenmiş olur.
Oturuma Özel Değişkenler
Bazen çok daha sıkı tanımlamalar istenebilir. Birkaç dakikalığına ihtiyacınız olan binaryleri ~/.bashrc dosyasını değiştirmeden veya gerçek binaryleri kullanmadan , geçici bir dizinden çalıştırmak isteyebilirsiniz.
Bu durumda export komutuyla , sadece geçerli oturumdaki PATH değişkenini tanımlayabilirsiniz. Çıkış yapmadığınız sürece , geçici PATH değişkeni geçerliliğini sürdürür.
Kod Listeleme 3.2: Oturuma özel bir ortam değişkeni tanımlamak |
# export PATH="${PATH}:/home/my_user/tmp/usr/bin"
|
Bu belgenin içeriği Creative Commons Attribution / Share Alike altında lisanslanmıştır
|