Türkçe Linux/HPPA Elkitabı
İç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ı
Bu bölümde kendi ihtiyaçlarınıza göre nasıl PALO ayarlayabileceğiniz anlatılacak.
-
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. Hardware Requirements
Introduction
Before we start, we first list what hardware requirements you need to
successfully install Gentoo on your box.
Hardware Requirements
A list of supported hardware can be found on the PA Team website. You may find
additional information about your box in the Parisc-Linux Hardware Database and
the processor
list on www.openpa.net.
If you don't know which version of PA-RISC your box is using, please check the
links above to find out whether you're using version 1.1 or 2.0. You will need
this information later on.
| Memory |
64 MB |
| Diskspace |
1.5 GB (excluding swap space) |
| Swap space |
At least 256 MB |
2.b. The Gentoo Installation CDs
Introduction
The Gentoo Installation CDs are bootable CDs which contain a
self-sustained Gentoo environment. They allow you to boot Linux from the CD.
During the boot process your hardware is detected and the appropriate drivers
are loaded. They are maintained by Gentoo developers.
All Installation CDs allow you to boot, set up networking, initialize your
partitions and start installing Gentoo from the Internet. We currently provide
two Installation CDs which are equally suitable to install Gentoo from, as long
as you're planning on performing an Internet-based installation using the
latest version of the available packages.
If you wish to install Gentoo without a working Internet connection, please use
the installation instructions described in the Gentoo 2008.0 Handbooks.
The two Installation CDs that we currently provide are:
-
The Gentoo Minimal Installation CD, a small, no-nonsense, bootable
CD which sole purpose is to boot the system, prepare the networking and
continue with the Gentoo installation.
-
The Gentoo Universal Installation CD, a bootable CD with the same
abilities as the Minimal Installation CD. Additionally, it contains
several stage3 tarballs (optimized for the individual subarchitectures).
To help you decide which Installation CD you need, we have written down the
major advantages and disadvantages of each Installation CD.
Gentoo's Minimal Installation CD
The Minimal Installation CD is called ${min-cd-name}
and takes up only 75 MB of diskspace. You can use this Installation CD to
install Gentoo, but always with a working Internet connection only.
| Minimal Installation CD |
Pros and Cons |
| + |
Smallest download |
| - |
Contains no stage3 tarball, no Portage snapshot, no prebuilt packages and is
therefore not suitable for networkless installation
|
Gentoo's Universal Installation CD
The Universal Installation CD is called install-hppa-universal-2008.0.iso
and consumes about 339 MB on a CD. You can use this Installation CD to install
Gentoo, and you can even use it to install Gentoo without a working internet
connection.
| Universal Installation CD |
Pros and Cons |
| + |
Contains everything you need. You can even install without a network
connection.
|
| - |
Huge download |
Other CDs
You might find a Package CD on one of our mirrors. This CD is not an
Installation CD but an additional resource that can be exploited during a
networkless installation. It contains prebuilt packages (also known as the GRP
set) that allow you to easily and quickly install additional applications (such
as OpenOffice.org, KDE, GNOME, ...) immediately after the networkless Gentoo
installation.
If you intend to use the Packages CD to quickly install additional software,
make sure that you use the same subarchitecture as the stage3 tarball you use.
The Stage3 Tarball
A stage3 tarball is an archive containing a minimal Gentoo environment, suitable
to continue the Gentoo installation using the instructions in this manual.
Previously, the Gentoo Handbook described the installation using one of three
stage tarballs. While Gentoo still offers stage1 and stage2 tarballs, the
official installation method uses the stage3 tarball. If you are interested in
performing a Gentoo installation using a stage1 or stage2 tarball, please read
the Gentoo FAQ on How do I Install Gentoo
Using a Stage1 or Stage2 Tarball?
2.c. Download, Burn and Boot the Gentoo Universal Installation CD
Downloading and Burning the Installation CD
You have chosen to use a Gentoo Installation CD. We'll first start by
downloading and burning the chosen Installation CD. We previously discussed
the several available Installation CDs, but where can you find them?
You can download any of the Installation CDs (and, if you want to, a Packages
CD as well) from one of our mirrors. The
Installation CDs are located in the ${release-dir}installcd
directory.
Inside that directory you'll find ISO files. Those are full CD images which you
can write on a CD-R.
After downloading the file, you can verify its integrity to see if it is
corrupted or not:
-
You can check its MD5 checksum and compare it with the MD5 checksum we
provide (for instance with the md5sum tool under Linux/Unix or
md5sum for Windows)
-
You can verify the cryptographic signature that we provide. You need to
obtain the public key we use (17072058) before you proceed though.
To fetch our public key using the GnuPG application, run the following command:
Kod Listeleme 3.1: Obtaining the public key |
$ gpg --keyserver subkeys.pgp.net --recv-keys 17072058
|
Now verify the signature:
Kod Listeleme 3.2: Verify the cryptographic signature |
$ gpg --verify <signature file> <downloaded iso>
|
To burn the downloaded ISO(s), you have to select raw-burning. How you
do this is highly program-dependent. We will discuss cdrecord and
K3B here; more information can be found in our Gentoo FAQ.
-
With cdrecord, you simply type cdrecord dev=/dev/hdc <downloaded iso
file> (replace /dev/hdc with your CD-RW drive's device
path).
-
With K3B, select Tools > Burn CD Image. Then you can locate
your ISO file within the 'Image to Burn' area. Finally click Start.
Booting the Installation CD
Not:
If you have problems booting the Installation CD or any other media, please
read the
PA-RISC Linux Boot HOWTO.
|
Boot your HPPA system. During the boot process, you will see a message similar
to the following:
Kod Listeleme 3.3: HPPA boot message |
Searching for Potential Boot Devices.
To terminate search, press and hold the ESCAPE key.
|
When this message appears, press and hold the Esc-key until an option menu
appears. This can take a while, be patient. By default, you should enter the
BOOT_ADMIN console. If you receive an option menu, choose Enter Boot
Administration mode to enter the BOOT_ADMIN console. You should now have an
'>' prompt.
Put the Gentoo Installation CD in the CD-ROM. If you do not know the SCSI ID of
your CD-ROM drive, your PA-RISC station will search for it when you issue the
search command.
Kod Listeleme 3.4: Searching for SCSI ID |
> search
Searching for Devices with Bootable Media.
To terminate search, please press and hold the ESCAPE key.
|
Your PA-RISC station will now display all the available boot media. This is an
example result of this command:
Kod Listeleme 3.5: Available boot media |
Device Selection Device Path Device Type and Utilities
---------------------------------------------------------------------------
P0 scsi.5.0 TOSHIBA CD-ROM XM-3301TA
IPL
P1 scsi.2.0 COMPAQ ST32550N
IPL
P2 lan.0010a7-06d1b6.3.6 server
IPL
|
To boot from a CD-ROM you need the accompanying Device Path. For instance, if we
want to boot from the TOSHIBA CD-ROM in the above example, we would need to type
the following command:
Kod Listeleme 3.6: Booting from a CD-ROM |
> boot scsi.5.0 ipl
Trying scsi.5.0
|
The ipl keyword (Initial Program Loader) tells palo (the PA-RISC boot
LOader) to enter interactive mode. This will allow you to change, for example,
the kernel boot parameters.
When the boot is successful, palo will start in interactive mode:
Kod Listeleme 3.7: PALO Interactive Mode |
Boot path initialized.
Attempting to load IPL.
HARD Booted.
palo ipl 1.5 root@hope Sat Apr 23 18:06:47 CEST 2005
Boot image contains:
0/vmlinux32 6241293 bytes @ 0x3904000
0/vmlinux64 8352719 bytes @ 0x3ef8000
0/ramdisk 1007589 bytes @ 0x105800
Information: No console specified on kernel command line. This is normal.
PALO will choose the console currently used by firmware (serial).Current command line:
0/vmlinux initrd=initrd TERM=linux root=/dev/ram0 init=/linuxrc cdroot looptype=squashfs loop=/livecd.squashfs hda=scsi console=ttyS0
0: 0/vmlinux
1: initrd=initrd
2: TERM=linux
3: root=/dev/ram0
4: init=/linuxrc
5: cdroot
6: looptype=squashfs
7: loop=/livecd.squashfs
8: hda=scsi
9: console=ttyS0
<#> edit the numbered field
'b' boot with this command line
'r' restore command line
'l' list dir
|
These parameters are suitable for most situations.
If you need extra features you must add the appropriate keyword(s) to the end of
the command line. To add a keyword, edit the last field, add a space and type
your keyword. The only implemented keywords as of now are cdcache which
tells the Installation CD to load itself into RAM, allowing you to unmount the
CD, and noload=module1[,module2[,...]] which allows you to explicitly
disable loading of particular modules.
Kod Listeleme 3.8: Adding hdb=scsi as boot option |
(or 'b' to boot with this command line)? 9
console=ttyS0 hdb=scsi
|
Now that you have tweaked your kernel boot params, boot it.
Kod Listeleme 3.9: Booting the kernel |
(or 'b' to boot with this command line)? b
|
You should have a root ("#") prompt on the current console and can also switch
to other consoles by pressing Alt-F2, Alt-F3 and Alt-F4. Get back to the one you
started on by pressing Alt-F1.
Now continue with Extra Hardware
Configuration.
Extra Hardware Configuration
When the Installation CD boots, it tries to detect all your hardware devices and
loads the appropriate kernel modules to support your hardware. In the
vast majority of cases, it does a very good job. However, in some cases it may
not auto-load the kernel
modules you need. If the PCI auto-detection missed some of your system's
hardware, you will have to load the appropriate kernel modules manually.
In the next example we try to load the 8139too module (support for
certain kinds of network interfaces):
Kod Listeleme 3.10: Loading kernel modules |
# modprobe 8139too
|
Optional: User Accounts
If you plan on giving other people access to your installation
environment or you want to chat using irssi without root privileges (for
security reasons), you need to create the necessary user accounts and change
the root password.
To change the root password, use the passwd utility:
Kod Listeleme 3.11: Changing the root password |
# passwd
New password:
Re-enter password:
|
To create a user account, we first enter their credentials, followed by
its password. We use useradd and passwd for these tasks.
In the next example, we create a user called "john".
Kod Listeleme 3.12: Creating a user account |
# useradd -m -G users john
# passwd john
New password:
Re-enter password:
|
You can change your user id from root to the newly created user by using
su:
Kod Listeleme 3.13: Changing user id |
# su - john
|
Optional: Viewing Documentation while Installing
If you want to view the Gentoo Handbook (either from the CD or online) during the
installation, make sure you have created a user account (see Optional: User Accounts). Then press Alt-F2 to
go to a new terminal and log in.
If you want to view the documentation on the CD you can immediately run
links to read it:
Kod Listeleme 3.14: Viewing the on-CD documentation |
# links /mnt/cdrom/docs/html/index.html
|
However, it is preferred that you use the online Gentoo Handbook as it will be
more recent than the one provided on the CD. You can view it using links
as well, but only after having completed the Configuring your Network
chapter (otherwise you won't be able to go on the Internet to view the
document):
Kod Listeleme 3.15: Viewing the Online Documentation |
# links http://www.gentoo.org/doc/en/handbook/${online-book}
|
You can go back to your original terminal by pressing Alt-F1.
Optional: Starting the SSH Daemon
If you want to allow other users to access your computer during the
Gentoo installation (perhaps because those users are going to help you
install Gentoo, or even do it for you), you need to create a user
account for them and perhaps even provide them with your root password
(only do that if you fully trust that user).
To fire up the SSH daemon, execute the following command:
Kod Listeleme 3.16: Starting the SSH daemon |
# /etc/init.d/sshd start
|
To be able to use sshd, you first need to set up your networking. Continue with
the chapter on Configuring your Network.
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. Introduction to Block Devices
Block Devices
We'll take a good look at disk-oriented aspects of Gentoo Linux
and Linux in general, including Linux filesystems, partitions and block devices.
Then, once you're familiar with the ins and outs of disks and filesystems,
you'll be guided through the process of setting up partitions and filesystems
for your Gentoo Linux installation.
To begin, we'll introduce block devices. The most famous block device is
probably the one that represents the first drive in a Linux system, namely
/dev/sda. SCSI and Serial ATA drives are both labeled
/dev/sd*; even IDE drives are labeled /dev/sd* with
the new libata framework in the kernel. If you're using the old device
framework, then your first IDE drive is /dev/hda.
The block devices above represent an abstract interface to the disk. User
programs can use these block devices to interact with your disk without worrying
about whether your drives are IDE, SCSI or something else. The program can
simply address the storage on the disk as a bunch of contiguous,
randomly-accessible 512-byte blocks.
Partitions and Slices
Although it is theoretically possible to use a full disk to house your Linux
system, this is almost never done in practice. Instead, full disk block devices
are split up in smaller, more manageable block devices. On most systems, these
are called partitions. Other architectures use a similar technique,
called slices.
4.b. Designing a Partitioning Scheme
How Many and How Big?
The number of partitions is highly dependent on your environment. For instance,
if you have lots of users, you will most likely want to have your
/home separate as it increases security and makes backups easier.
If you are installing Gentoo to perform as a mailserver, your /var
should be separate as all mails are stored inside /var. A good
choice of filesystem will then maximise your performance. Gameservers will have
a separate /opt as most gaming servers are installed there. The
reason is similar for /home: security and backups. You will
definitely want to keep /usr big: not only will it contain the
majority of applications, the Portage tree alone takes around 500 Mbyte
excluding the various sources that are stored in it.
As you can see, it very much depends on what you want to achieve. Separate
partitions or volumes have the following advantages:
-
You can choose the best performing filesystem for each partition or volume
-
Your entire system cannot run out of free space if one defunct tool is
continuously writing files to a partition or volume
-
If necessary, file system checks are reduced in time, as multiple checks can
be done in parallel (although this advantage is more with multiple disks than
it is with multiple partitions)
-
Security can be enhanced by mounting some partitions or volumes read-only,
nosuid (setuid bits are ignored), noexec (executable bits are ignored) etc.
However, multiple partitions have one big disadvantage: if not configured
properly, you might result in having a system with lots of free space on one
partition and none on another. There is also a 15-partition limit for SCSI and
SATA.
4.c. Using fdisk on HPPA to Partition your Disk
Use fdisk to create the partitions you want:
Kod Listeleme 3.1: Partitioning the disk |
# fdisk /dev/sda
|
HPPA machines use the PC standard DOS partition tables. To create a new
DOS partition table, simply use the o command.
Kod Listeleme 3.2: Creating a DOS partition table |
# fdisk /dev/sda
Command (m for help): o
Building a new DOS disklabel.
|
PALO (the HPPA bootloader) needs a special partition to work. You have
to create a partition of at least 16MB at the beginning of your disk.
The partition type must be of type f0 (Linux/PA-RISC boot).
Önemli:
If you ignore this and continue without a special PALO partition, your system
will stop loving you and fail to start. Also, if your disk is larger than 2GB,
make sure that the boot partition is in the first 2GB of your disk. PALO is
unable to read a kernel after the 2GB limit.
|
Kod Listeleme 3.3: A simple default partition schema |
# cat /etc/fstab
/dev/sda2 /boot ext3 noauto,noatime 1 1
/dev/sda3 none swap sw 0 0
/dev/sda4 / ext3 noatime 0 0
# fdisk /dev/sda
Command (m for help): p
Disk /dev/sda: 4294 MB, 4294816768 bytes
133 heads, 62 sectors/track, 1017 cylinders
Units = cylinders of 8246 * 512 = 4221952 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 8 32953 f0 Linux/PA-RISC boot
/dev/sda2 9 20 49476 83 Linux
/dev/sda3 21 70 206150 82 Linux swap
/dev/sda4 71 1017 3904481 83 Linux
|
Now that your partitions are created, you can continue with Creating Filesystems.
4.d. Creating Filesystems
Introduction
Now that your partitions are created, it is time to place a filesystem on them.
If you don't care about what filesystem to choose and are happy with what we use
as default in this handbook, continue with Applying a Filesystem to a Partition.
Otherwise read on to learn about the available filesystems...
Filesystems
The Linux kernel supports various filesystems. We'll explain ext2, ext3,
ReiserFS, XFS and JFS as these are the most commonly used filesystems on Linux
systems.
ext2 is the tried and true Linux filesystem but doesn't have metadata
journaling, which means that routine ext2 filesystem checks at startup time can
be quite time-consuming. There is now quite a selection of newer-generation
journaled filesystems that can be checked for consistency very quickly and are
thus generally preferred over their non-journaled counterparts. Journaled
filesystems prevent long delays when you boot your system and your filesystem
happens to be in an inconsistent state. If you intend to install Gentoo on a
very small disk (less than 4GB), then you'll need to tell ext2 to reserve enough
inodes when you create the filesystem by running mke2fs -T small
/dev/<device>.
ext3 is the journaled version of the ext2 filesystem, providing metadata
journaling for fast recovery in addition to other enhanced journaling modes like
full data and ordered data journaling. It uses an HTree index that enables high
performance in almost all situations. In short, ext3 is a very good and
reliable filesystem. Ext3 is the recommended all-purpose all-platform
filesystem. If you intend to install Gentoo on a very small disk (less than
4GB), then you'll need to tell ext3 to reserve enough inodes when you create the
filesystem by running mke2fs -j -T small /dev/<device>.
JFS is IBM's high-performance journaling filesystem. JFS is a light,
fast and reliable B+tree-based filesystem with good performance in various
conditions.
ReiserFS is a B+tree-based journaled filesystem that has good overall
performance, especially when dealing with many tiny files at the cost of more
CPU cycles. ReiserFS appears to be less maintained than other filesystems.
XFS is a filesystem with metadata journaling which comes with a robust
feature-set and is optimized for scalability. XFS seems to be less forgiving to
various hardware problems.
Applying a Filesystem to a Partition
To create a filesystem on a partition or volume, there are tools available for
each possible filesystem:
| Filesystem |
Creation Command |
| ext2 |
mke2fs |
| ext3 |
mke2fs -j |
| reiserfs |
mkreiserfs |
| xfs |
mkfs.xfs |
| jfs |
mkfs.jfs |
For instance, to have the boot partition (/dev/sda2 in our
example) in ext2 and the root partition (/dev/sda4 in our example)
in ext3 (as in our example), you would use:
Kod Listeleme 4.1: Applying a filesystem on a partition |
# mke2fs /dev/sda2
# mke2fs -j /dev/sda4
|
Now create the filesystems on your newly created partitions (or logical
volumes).
Activating the Swap Partition
mkswap is the command that is used to initialize swap partitions:
Kod Listeleme 4.2: Creating a Swap signature |
# mkswap /dev/sda3
|
To activate the swap partition, use swapon:
Kod Listeleme 4.3: Activating the swap partition |
# swapon /dev/sda3
|
Create and activate the swap with the commands mentioned above.
4.e. Mounting
Now that your partitions are initialized and are housing a filesystem, it is
time to mount those partitions. Use the mount command. Don't forget to
create the necessary mount directories for every partition you created. As an
example we mount the root and boot partition:
Kod Listeleme 5.1: Mounting partitions |
# mount /dev/sda4 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/sda2 /mnt/gentoo/boot
|
Not:
If you want your /tmp to reside on a separate partition, be sure
to change its permissions after mounting: chmod 1777 /mnt/gentoo/tmp.
This also holds for /var/tmp.
|
We will also have to mount the proc filesystem (a virtual interface with the
kernel) on /proc. But first we will need to place our files on the
partitions.
Continue with Installing the Gentoo
Installation Files.
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. Timezone
You first need to select your timezone so that your system knows where it is
located. Look for your timezone in /usr/share/zoneinfo, then copy
it to /etc/localtime. Please avoid the
/usr/share/zoneinfo/Etc/GMT* timezones as their names do not
indicate the expected zones. For instance, GMT-8 is in fact
GMT+8.
Kod Listeleme 1.1: Setting the timezone information |
# ls /usr/share/zoneinfo
# cp /usr/share/zoneinfo/GMT /etc/localtime
|
7.b. Installing the Sources
Choosing a Kernel
The core around which all distributions are built is the Linux kernel. It is the
layer between the user programs and your system hardware. Gentoo provides its
users several possible kernel sources. A full listing with description is
available at the Gentoo Kernel
Guide.
For HPPA we have gentoo-sources.
Kod Listeleme 2.1: Installing a kernel source |
# emerge gentoo-sources
|
When you take a look in /usr/src you should see a symlink called
linux pointing to your kernel source. In this case, the installed
kernel source points to hppa-sources-${kernel-version}. Your
version may be different, so keep this in mind.
Kod Listeleme 2.2: Viewing the kernel source symlink |
# ls -l /usr/src/linux
lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -> linux-${kernel-version}
|
Now it is time to configure and compile your kernel source. All architectures
can use genkernel for this, which will build a generic kernel as used
by the Installation CD. We explain the "manual" configuration first though, as
it is the best way to optimize your environment.
If you want to manually configure your kernel, continue now with Default: Manual Configuration. If you want to use
genkernel you should read Alternative: Using
genkernel instead.
7.c. Default: Manual Configuration
Introduction
Manually configuring a kernel is often seen as the most difficult procedure a
Linux user ever has to perform. Nothing is less true -- after configuring a
couple of kernels you don't even remember that it was difficult ;)
However, one thing is true: you must know your system when you start
configuring a kernel manually. Most information can be gathered by emerging
pciutils (emerge pciutils) which contains lspci. You will now
be able to use lspci within the chrooted environment. You may safely
ignore any pcilib warnings (like pcilib: cannot open
/sys/bus/pci/devices) that lspci throws out. Alternatively, you can run
lspci from a non-chrooted environment. The results are the same.
You can also run lsmod to see what kernel modules the Installation CD
uses (it might provide you with a nice hint on what to enable).
Now go to your kernel source directory and execute make menuconfig. This
will fire up an ncurses-based configuration menu.
Kod Listeleme 3.1: Invoking menuconfig |
# cd /usr/src/linux
# make menuconfig
|
You will be greeted with several configuration sections. We'll first list some
options you must activate (otherwise Gentoo will not function, or not function
properly without additional tweaks).
Activating Required Options
First go to File Systems and select support for the filesystems you use.
Don't compile them as modules, otherwise your Gentoo system will not be
able to mount your partitions. Also select Virtual memory and /proc
file system:
Kod Listeleme 3.2: Selecting necessary file systems |
File systems --->
Pseudo Filesystems --->
[*] /proc file system support
[*] Virtual memory file system support (former shm fs)
<*> Reiserfs support
<*> Ext3 journalling file system support
<*> JFS filesystem support
<*> Second extended fs support
<*> XFS filesystem support
|
If you are using PPPoE to connect to the Internet or you are using a dial-up
modem, you will need the following options in the kernel:
Kod Listeleme 3.3: Selecting PPPoE necessary drivers |
Device Drivers --->
Networking support --->
<*> PPP (point-to-point protocol) support
<*> PPP support for async serial ports
<*> PPP support for sync tty ports
|
The two compression options won't harm but are not definitely needed, neither
does the PPP over Ethernet option, that might only be used by ppp
when configured to do kernel mode PPPoE.
If you require it, don't forget to include support in the kernel for your
ethernet card.
If you have a HIL mouse or keyboard, do not forget to compile in support for
them.
Kod Listeleme 3.4: Activating HIL support |
Input core support --->
[*] Keyboard support
[*] Mouse support
[*] Event interface support
|
If you have no mouse on your HIL port, only use the basic support:
Kod Listeleme 3.5: Basic HIL support |
HIL support --->
[*] HIL Keyboard (basic) support
|
If you however want full HIL support, select the following options:
Kod Listeleme 3.6: Full HIL support |
HIL support --->
[*] HP System Device Controller i8042 Support
[*] HIL MLC Support
[*] HIL Keyboard (full) support
[*] HIL Mouse & Pointer support
|
Also include display driver support:
Kod Listeleme 3.7: Display Driver support |
Graphics support --->
[*] Support for frame buffer devices
[*] HP STI frame buffer device support
Console display driver support --->
[*] STI text console
|
When you're done configuring your kernel, continue with Compiling and Installing.
Compiling and Installing
Önemli:
If you want to compile a 64-bit kernel, you'll need to first emerge
kgcc64. However, running a 64-bit kernel is discouraged. You should only
run a 64-bit kernel if you have more than 4GB of RAM or if your server requires
it, i.e. on the A500.
|
Now that your kernel is configured, it is time to compile and install it. Exit
the configuration and start the compilation process:
Kod Listeleme 3.8: Compiling the kernel |
# make && make modules_install
|
When the kernel has finished compiling, copy the kernel image to
/boot. Use whatever name you feel is appropriate for your kernel
choice and remember it as you will need it later on when you configure your
bootloader. Remember to replace <kernel-version> with the
name and version of your kernel.
Kod Listeleme 3.9: Installing the kernel |
# cp vmlinux /boot/<kernel-version>
|
Now continue with Kernel Modules.
7.d. Alternative: Using genkernel
If you are reading this section, you have chosen to use our genkernel
script to configure your kernel for you.
Now that your kernel source tree is installed, it's now time to compile your
kernel by using our genkernel script to automatically build a kernel for
you. genkernel works by configuring a kernel nearly identically to the
way our Installation CD kernel is configured. This means that when you use
genkernel to build your kernel, your system will generally detect all
your hardware at boot-time, just like our Installation CD does. Because
genkernel doesn't require any manual kernel configuration, it is an ideal
solution for those users who may not be comfortable compiling their own
kernels.
Now, let's see how to use genkernel. First, emerge the genkernel ebuild:
Kod Listeleme 4.1: Emerging genkernel |
# emerge genkernel
|
Now, compile your kernel sources by running genkernel all.
Be aware though, as genkernel compiles a kernel that supports almost all
hardware, this compilation will take quite a while to finish!
Note that, if your boot partition doesn't use ext2 or ext3 as filesystem you
need to manually configure your kernel using genkernel --menuconfig all
and add support for your filesystem in the kernel (i.e. not as a
module).
Kod Listeleme 4.2: Running genkernel |
# genkernel all
|
Once genkernel completes, a kernel, full set of modules and
initial root disk (initrd) will be created. We will use the kernel
and initrd when configuring a boot loader later in this document. Write
down the names of the kernel and initrd as you will need it when writing
the bootloader configuration file. The initrd will be started immediately after
booting to perform hardware autodetection (just like on the Installation CD)
before your "real" system starts up.
Kod Listeleme 4.3: Checking the created kernel image name and initrd |
# ls /boot/kernel* /boot/initramfs*
|
7.e. Kernel Modules
Configuring the Modules
You should list the modules you want automatically loaded in
/etc/modules.autoload.d/kernel-2.6. You can add extra options to
the modules too if you want.
To view all available modules, run the following find command. Don't
forget to substitute "<kernel version>" with the version of the kernel you
just compiled:
Kod Listeleme 5.1: Viewing all available modules |
# find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko' | less
|
For instance, to automatically load the 3c59x.ko module, edit the
kernel-2.6 file and enter the module name in it.
Kod Listeleme 5.2: Editing /etc/modules.autoload.d/kernel-2.6 |
# nano -w /etc/modules.autoload.d/kernel-2.6
|
Kod Listeleme 5.3: /etc/modules.autoload.d/kernel-2.6 |
3c59x
|
Continue the installation with Configuring your
System.
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. Installing PALO
On the PA-RISC platform, the boot loader is called palo. You may need to emerge
it on your machine first.
Kod Listeleme 1.1: Installing palo |
# emerge palo
|
You can find the configuration file in /etc/palo.conf. Here is a
sample configuration:
Kod Listeleme 1.2: /etc/palo.conf example |
--commandline=2/${kernel-name} root=/dev/sda4
--recoverykernel=/vmlinux.old
--init-partitioned=/dev/sda
|
The first line tells palo the location of the kernel and which boot parameters
it must use. 2/${kernel-name} means the kernel named
/${kernel-name} resides on the second partition. Beware, the
path to the kernel is relative to the boot partition, not to the root
partition.
The second line indicates which recovery kernel to use. If it is your
first install and you do not have a recovery kernel, please comment this
out. The third line indicates on which disk palo will reside.
When configuration is done, just run palo.
Kod Listeleme 1.3: Applying the PALO configuration |
# palo
|
Now continue with Rebooting the System.
9.b. Rebooting the System
Exit the chrooted environment and unmount all mounted partitions. Then type in
that one magical command you have been waiting for: reboot.
Kod Listeleme 2.1: Exiting the chroot, unmounting all partitions and rebooting |
# exit
cdimage ~# cd
cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
cdimage ~# reboot
|
Of course, don't forget to remove the bootable CD, otherwise the CD will be
booted again instead of your new Gentoo system.
Once rebooted in your Gentoo installation, finish up with Finalizing your Gentoo Installation.
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
|