TurkisH
01-23-2007, 11:27 AM
5.5 Sistemin Güncellenmesi
Tekrar Linux yüklenecek olan makina üzerinde halihazırda Linux bulunmasının yararları olduğu gibi bazı sakıncaları vardır. İlk olarak yararlarına değinmek gerekirse, yapılacak aslında sadece işletim sisteminin bulunduğu bölümü değiştirmektir. Takas alanının ayrılması, kullanıcı alanının ayrılması gibi işlemler bu durumda önceden yapılmış oluyorlar. Ancak yeni işletim sisteminin yüklenmesinin bazı zararları da var.
Herşeyden önce çalıştığı bilinen bir işletim sistemi yenisi ile değiştiriliyor. Gerçekten bunu gerektirecek bir sebep olmadıkça bu tür güncellemelerden kaçınılması veya en aza indirilmesi gerekir. Yeni bir sistem, yeni bilinmeyenler ve az da olsa bile çalışmama riski getirecektir.
Eğer sistem üzerinde belirli hizmetler veriliyorsa o hizmetlere ilişkin verilerin bu güncelleme esnasında yok olmamasına dikkat edilmeli. Mesela makina bir web sunucu olarak kullanılıyorsa web dosyalarının bir şekilde yeni sisteme aktarılması gerekecektir .
Benzer bir şekilde makinaya ait tanımların (/etc) ve standart dağıtım dışında yüklenmiş paketlerin önceden yedeklenmesi gerekir. Yoksa herşeye yeniden başlamak gerekebilir.
Güncelleme için iki yöntem akla gelebilir, doğrudan yeni sistemi eskisinin üzerine bindirmek veya eskisini silerek yeniden yüklemek. Slackware sürümü için en sağlıklısı eski sistemi silmektir. Çünkü değişik dağıtımlarda dosya dağılımı farklılıklar göstere bilmektedir. Bunun sonucunda bazı dosyalar birden fazla yerde gözükebilmektedirler. Bir diğer sakınca ise setup yazılımının bazen bu durumda şaşırabilmesi ve hata vermesi. Bazı ticari Linux sürümleri (Red-Hat, Debian, Caldera gibi) eski sürümü silmeye gerek bırakmadan sistemi güncelleme özelliğine sahipler.
Güncellemeniz gerekebilecek dizinler, /var/spool/mail, kullanıcı dizinleri (root dahil), /usr altında gerekli dizinler,/var/adm/ ve /etc olarak sayılabilir. Bazen /etc içinde yer alan dosyaların yeri veya şekli değişmiş olabilir. Onun için en güvenlisi teker teker dosyaları inceleyip kopyalamaktır. Belirli dosyaları yeni sistemi kurduktan sonra hemen kopyalayabilirsiniz :
/etc/group/etc/printcap /etc/hosts ...
Daha önce shadow kullanmayan bir sistemden shadow sistemine geçiyorsanız, /etc/passwd ve /etc/shadow dosyalarında gerekli değişiklikleri yapmadan yeni yerine kopyalamayın.
Ayrıca ne olur ne olmaz diye çalıştığını bildiğiniz bir çekirdeği de yedeğe almayı ihmal etmeyin.
5.6 Çekirdeğin Derlenmesi
Bu bölümde, çekirdeğin konfigürasyonu ve derlenmesi için gerekli bilgiler vardır. Çekirdek derleme uzun ve zahmetli bir işlemdir. Derleme aşamasını en kısa zamanda ve en uygun yoldan gerçekleştirmek gerekir. Derleme işlemi, kullanıcının önüne kafasını karıştıracak kadar çok seçenek sunar.
Nedir bu çekirdek? Genel anlamda çekirdek, yazılımın ve donanımın arasında bekleyerek iletişimi sağlayan bir arabirimdir. Çalışan tüm programların ve süreçlerin hafıza ile olan ilişkilerini düzenler. İşlemcinin gücünün tüm bu programlar arasında adil bir şekilde dağıtımını üzerine alır. Bu işlemleri kullanıcının haberi olmadan her an durmaksızın yapar.
Çekirdek kaynak dosyaları diskte hatırı sayılır bir alan tutar. Örneğin sürüm 2.0.20 yaklaşık 6Mb disk alanı kaplar. Açıldığı zaman ise toplam kapladığı alan 24 Mb olur. Derleme aşamasından sonra bu rakam 30 Mb'yi geçer. Her eklenen aygıt sürücü desteği bir miktar daha yer alır.
Kullandığınız sisteme göre çekirdeğin derlenme süresi değişkenlik gösterir. 12 Mb 486DX4/100 makinasında, 5 dosya sistemi desteği, ağ desteği ve ses kartı sürücüsü ile yaklaşık 30 dakika sürer. Aynı konfigürasyonu içeren çekirdeğin derlenmesi ise daha güçsüz bir makina olan 8Mb 386DX/40 altında 1.5 saati bulur. Derlerken gidip çayınızı için, biraz televizyon seyredin. Makinaniz 386 ise bir banyo alıp dışarı çıkın, alışveriş yapın. Çok ümitsiz bir durumdaysanız, yapılacak en iyi şey en yakın bilgisayar satıcısına uğrayarak yeni fiyatları sormak :-)
Çekirdek kaynak kodu , ODTÜ ftp arşivindeki adresinden veya tsx-11.mit.edu adresinin yansısını tutan herhangi bir adresten alınabilir. Bu dizin altındaki Linux sürümlerinin bir tanesini (v1.2, v2.0, v2.1 gibi) seçtikten sonra altındaki dosyayı alabilirsiniz. Dosyanın ismi linux-x.y.z.tar.gz yapısındadır.
Aşağıdaki örnekte ODTÜ ftp arşivinden 2.0.20 sürümünün alınışı gösterilmektedir:
[Üye Olmadan Linkleri Göremezsiniz.]
Sisteme root olarak giriş yapın ve /usr/src dizinine geçin. Linux'un kurulması aşamasında çekirdekleri de kurmuş iseniz bu dizinde 'linux' isminde ve eski çekirdeğin kaynak kodlarını kapsayan bir alt dizin göreceksiniz. Genellikle her kullanıcının yaptığı, bu dizinin ismini o an çalışan çekirdeğin sürümüne göre değiştirmektir. Çekirdek sürümünü bulmak için ise uname -r komutunu kullanabilirsiniz.
$ uname -r 2.0.23
Bu komuttan çekirdeğin 2.0.23 sürümü olduğunu anlayabiliriz.
Çekirdek kodunu içeren paketi açmadan önce /usr/src dizinine kopyalayın, ve açmadan önce bu dizinde 'linux' isimli bir dizinin olmadığına emin olun. Şimdi /usr/src içinde iken sıkıştırılmış çekirdek kodunu 'tar' komutu yardımıyla açın.
# tar -zxf linux-x.y.z.tar.gz
Komutun işletimi bitince 'linux' dizini oluşur. İlk defa derleme işlemi yapacaksanız aşağıdaki komutları sırasıyla yazın.
# cd /usr/include # rm -rf asm linux scsi # ln -s /usr/src/linux/include/asm-i386 asm # ln -s /usr/src/linux/include/linux linux # ln -s /usr/src/linux/include/scsi scsi # cd /usr/src/linux # make mrproper
Çekirdek Konfigürasyonu
/usr/src/linux dizini altinda iken make config yazın. Bu komut, bir konfigürasyon dosyası yaratmak amacıyla sorular sorar.
Karşınıza çıkan sorulara 'y' (evet) veya 'n' (hayır) ile cevap vermeniz gerekir. Bazı aygıt sürücülerde 'm' seçeneği de olabilir. Bunun anlamı, sistem o programı modül olarak derleyecek ve çekirdeğe dahil etmeyecek demektir. Kullanıcı derleme aşamasından sonra istediği zaman bu modülü çekirdeğe dahil edebilir, işini bitirdikten sonra da çıkarabilir.
2.0.x ve daha yukarı sürümlerde '?' tuşuna basmakla daha ayrıntılı bilgi alabilirsiniz. Aşağıda bazı konfigürasyon parametreleri verilmiştir.
Matematik işlemci emülasyonu (Kernel math emulation)
Kullandığınız makinanın işlemcisi yardımcı matematik işlemcisine sahip değilse (486SX, 386SX veya daha düşük makinalar) bu seçeneğe evet cevabını vermelisiniz.
Normal (MFM/RLL) disk ve IDE disk/cdrom desteği (Normal disk and IDE disk/cdrom support)
Hemen herkesin kullandığı PC sabit disklerinin standart olması sebebiyle bu seçenege 'y' cevabı verilebilir. Daha ileride SCSI sabit disk ve cdrom desteği de sorulacaktır. Ardından gelecek olan 'old disks-only' ve 'new IDE' sürücülerinden birini seçerken, aralarındaki farkın ilkinde tek arabirim üzerinden iki adet diski desteklemesi, diğerinde ise ikinci arabirim ile birlikte IDE/ATAPI cdrom'ları desteklemesidir.
Ağ desteği (Networking support)
Makinanız herhangi bir ağ üzerinde ise (İnternet gibi), veya İnternet'e bağlanmak için SLIP, PPP gibi programları kullanmak istiyorsanız bu bölüme 'y' cevabı vermelisiniz. Fakat, ağ üzerinde olmasanız bile her geçen gün yeni yeni uygulama programlarının ve paketlerin ağ desteğine ihtiyacı olduğunu düşünürsek (X Window gibi) bu bölüme 'y' cevabı vermeniz şart görünüyor.
En fazla 16Mb hafıza (Limit memory to low 16Mb)
Bazı hatalı 386 DMA denetleyicileri hafızanın 16Mb'tan yüksek bölümlerine ulaşamazlar. Çok nadir görülen bu durum makinanızda varsa bu seçeneği 'y' ile geçin.
System V IPC (System V IPC):
IPC (Interprocess Communication) desteği verir. Bazı Perl programları ve oyunlar (DOOM gibi) bu seçenek olmadan çalışamazlar. Bu durumda ne yaptığınızı iyi bilmiyorsanız bu seçeneğe 'y' -evet- cevabı verin.
İşlemci tipi (386, 486, Pentium, PPro):
Burada, çekirdeğinizi hangi tür makina için derliyorsanız, o makinanın tipini giriniz.
SCSI desteği (SCSI Support):
SCSI aygıtlarınız var ise bu seçenek için 'evet' deyin. Daha sonra da karşınıza gelecek SCSI aygıtlar arasından size uygun olanları alın.
Ağ kartı desteği (Network Device Support):
Ağa bağlanmak için bir kart kullanacaksanız veya SLIP, PPP bağlantıları, ya da paralel port üzerinden yapacağınız her türlü işlemler için bu seçeneği işaretleyin. Ardından ekrana gelen kart tiplerinden uygun olanlarını seçin.
Dosya sistemleri (Filesystems):
Burada, aşağıdaki dosya sistemlerinden kullanmak istediklerinizi seçebilirsiniz.
minix: Yeni dağıtımlar , artik tarih olmaya başlayan bu dosya sistemini desteklememekte. Bazı kurtarma disketleri yaratmak için daha yaygın, fakat daha az kararlı olan ext2 dosya sistemine tercih edilirler.
Extended file system (ext): Bu da artık kullanımı olmayan bir dosya sistemi. Desteğini ekleyip eklememek size kalmış.
Second extended file system (ext2): Linux'un kullandığı en önemli dosya sistemi. Alınması şart.
xiafs: Artık kullanılmıyor.
msdos: Sabit diskinizde DOS bölümü varsa, ya da DOS disketi kullanmak istiyorsanız, alın.
umsdos: MS-DOS dosya sistemine bazı yenilikler (uzun dosya isimleri gibi) getirilerek oluşturulan bir teknoloji. MS-DOS desteği almadıysanız buna da gerek yok.
proc: Bu aslında gerçek bir dosya sistemi değil, çekirdek görüntüsüdür. `y' cevabını vermezseniz ileride başınız çok ağrır.
NFS: Linux makinaniz bir ağ üzerinde kurulu iken ağ üzerindeki diğer makinaların dosya sistemlerini kullanabilmenizi sağlar.
ISO9660: CD-ROM sürücünüzü Linux altında kullanabilmek için 'y' cevabı verin.
OS/2 HPFS: OS/2 dosya sistemlerini okuyabilmek için 'y' cevabı verin.
System V: Bir UN*X sürümü olan System V makinalarının dosya sistemleri üzerinde çalışabilmeyi sağlar.
Karakter aygıtlar (Character devices):
Bu bölümde yazıcı, fare ve bazı teyp yedekleme sürücüleri gibi karakter aygıtları (iletişimini karakter karakter sağlayan aygıtlar) için sürücüleri ekleyebilirsiniz.
Ses kartı (Sound Card Support):
Linux'un ses kapasitesini "duyabilmek" için bu desteği ekleyin.
Çekirdek işlemleri (Kernel Hacking):
Çekirdekten doğan hataların bulunmasını kolaylaştıran bu seçenek, programcılara yönelik.
Tüm bu işlemlerin ardından make config komutunun görevi bitmiş olur.
Temizlik
Fazla dosyaları temizlemek, gerekli olan dosyaların da yerinde olup olmadığını kontrol etmek için , sırasıyla
# make dep # make clean
yazın. Ardından tüm nesne dosyaları ve eski sürümden arta kalan dosyalar silinecektir. Bu adımı es geçmemelisiniz.
Temizlik işleminden sonra,
# make zImage , veya # make zdisk
yazın. Eğer bir kişisel bilgisayarda çalışıyorsanız, ilk seçenekte çekirdek derlenip /usr/src/linux/arch/i386/boot dizini altına zImage adıyla yerleştirilecektir. Buraya yerleştirilmeden önce yerden kazanmak için çekirdek sıkıştırılır. Diğer durumda ise yeni çekirdek sabit disk yerine A: disket sürücüsüne yazılır. Disket üzerine yazmanın bir avantajı, kararlı olmayan ve sistemi açmayan çekirdek ile karşılaşılması halinde, sistemi sabit disk üzerindeki eski çekirdekten açabilme imkanı bırakmasıdır.
Çekirdeğin Kurulması
LILO, bilgisayarın açılışı anında çekirdek ile ilgili düzenlemeleri okur, buna göre hangi çekirdekten açması gerektiğini anlar. Konfigürasyon dosyası biraz karmaşık olmasına rağmen kullanım aşamasında büyük yararlar sağlar. /etc/lilo.conf dosyasının içinde gerekli olan kurulum bilgileri vardır. Bu dosyanın bir bölüm aşağıda görülüyor.
image = /vmlinuz label = linux root = /dev/hda1 other = /dev/hda1 label = dos table = /dev/hda
image = ibaresi kurulu olan çekirdeğe işaret eder. Çoğu kullanıcı bu kısma vmlinuz yazar. label = bölümünde hangi işletim sistemi veya çekirdek sürümünun açılışta kullanılacağı yazılır. Hemen altındaki root bölümünde ise label = kısmında seçilen işletim sisteminin hiyerarşik sırada en üst dizin yapısı yazılır. Eski çekirdeğin bir yedeğini alın ve yeni derlediğiniz çekirdeği image = satırında belirtilen yere kopyalayın.
# cp zImage /vmlinuz
Şimdi LILO programını çalıştırın. Komut satırında lilo yazmak yeterlidir. `*' karakteri, çalıştırılacak ilk çekirdeği veya sistemi gösterir.
# lilo Added linux * Added dos
LILO ve konfigürasyonu hakkında , daha fazla bilgi LILO-NASIL çevirisinden alınabilir.
Yeni bir çekirdeği derledikten sonra LILO üzerinden ekleme yapmak ve açılış anında kullanmak için /etc/lilo.conf dosyasındaki
image = /vmlinuz label = Linux root = /dev/hda1
satırlarının kopyasını çıkarın, image , label ve root yerine sırasıyla yeni derlenen çekirdeğin sabit disk üzerindeki yerini, ismini ve Linux işletim sisteminizin kök dizinini yazın. Bunlara ek olarak, açılış anında bekleme sağlamak ve seçim yapabilmek için konfigürasyon dosyasının başına delay = xxx ekleyebilirsiniz. xxx sayısı, gecikme zamanı saniyenin onda biri olarak verilir. Bu sayede açılış anında , örneğin shift tuşuna basılarak istenen çekirdeğin ismi (label = satırında yazılan isim) seçilir ve çalıştırılır.
Çekirdeğin Yamanması (patch)
Çekirdeğin her yeni sürümüyle birlikte bir önceki sürümünun yaması da gelir. Yamayı uygulamak, tüm çekirdeğin tekrar derlenmesinden daha kolaydır. Örnek olarak, elinizde 2.0.10 çekirdeği var ve ftp adresinde 2.0.11 sürümü bekliyor. Halihazırdaki çekirdeği 2.0.11 sürümüne yükseltelim:
Yamayı önce /usr/src dizinine kopyalayın. Bu dizin altında iken
# zcat patch-2.0.11.gz | patch -p0
veya eğer sıkıştırılmış değilse
# patch -p0 < patch-2.0.11
yazın. Bu komutun ardından satırlar ekrandan kaymaya başlayacak ve yama işlemi tamamlanacaktır. Satırlar bazen o kadar hızlı kayar ki neler yazdığını bile göremeyebilirsiniz. Yamanın başarılı bir şekilde tamamlandığından emin olmak amacıyla, /usr/src/linux dizini altında .rej uzantılı dosyalara bakın.
# find . -name '*.rej' -print
Komut, .rej uzantılı dosyalar bulursa yama işlemi tamamlanamamış demektir. Eğer yama işlemi tamamlanırsa, sırasıyla
# make clean # make config # make dep
komutlarını yazın. Bu komutlarla ilgili detaylı bilgi önceki konuda anlatılmıştır.
patch komutunun alabildiği bazı seçenekler vardır. patch -s komutu oluşabilecek tüm hata mesajlarını ekrana yazar. Diğer yama seçenekleri man patch yazarak görülebilir.
Birkaç yamanın ardından, .orig uzantılı dosyalar etrafta dolaşmaya başlar. Bu dosyalar gereksizdir, büyük yer kapladıkları için silinmeleri gerekir. Aşağıdaki komut yardımıyla /usr/src/linux dizini altında .orig uzantılı dosyaları silebilirsiniz.
# find /usr/src/linux -name '*.orig' -exec rm -f {} ';'
Çıkabilecek Sorunlar
Eger rutin bir çekirdek güncellemesinden sonra yeni çekirdeğiniz gerçekten garip şeyler yapıyorsa, büyük ihtimalle yeni çekirdeğinizi derlemeden önce "make clean" komutunu kullanmayı unutmuşsunuzdur.
Eğer çekirdek çok fazla hafıza harcıyorsa, çok büyükse, veya yeni 786DX6/440 makinanızda bile derlenmesi sonsuza kadar sürüyorsa, büyük ihtimalle ayarlanmış bir çok gereksiz parça (aygıt sürücüleri, dosya sistemleri, vb.) vardır. Büyük çekirdeklerin en belirgin özelliği sürekli hafızadan diske ve diskten hafızaya takas yapmalarıdır.
Çekirdeğinizin ne kadar hafıza kullandığını makinanın toplam hafızasından /proc/meminfo dosyasındaki total mem değerini çıkararak veya free komutunun çıktısından öğrenebilirsiniz. Ayrıca dmesg komutunu kullanarak (veya çekirdek kayıt dosyasına bakarak) da bu değere ulaşabilirsiniz.
Memory: 15124k/16384k available (552k kernel code, 384k reserved, 324k data)
LILO'yu çalışıtırmayı unuttunuz, veya sistem hiç açılmıyorsa bu durumda yapacağınız en iyi şey disketten açılış yapmak ve daha sonra açılış yapabilen başka bir disket hazırlamaktır.
Eğer eski çekirdek 1.2.X ve daha düşükse ve bunu 2.0.x sürümüne yükseltmek istiyorsanız, 2.0.x çekirdek kurulumunda getirilen bazı değişiklikler sorun çıkartabilir. /usr/src/linux/Documentation/Changes dosyasında yapmanız gereken değişklik listesi vardır. gcc, libc gibi birkaç paketi yeniden kurmanız gerekebilir.
Aynı anda birkaç çekirdek kaynak kodunu sistemde bulundurmayı düşünüyorsanız, izlenecek en güvenilir yol, her birine /usr/src/linux-x.y.z ismini vermektir (x.y.z halihazırdaki çekirdek sürümünü gösterir). Ardından sembolik bir bağlantı yardımıyla istediğiniz kaynak dizinini seçebilirsiniz, örneğin
# ln -sf linux-2.0.2 /usr/src/linux
komutu, linux-2.0.2 dizinini aktif hale getirir. Artık kaynak dosyalarının bulunduğu yer linux-2.0.2 dizinidir.
5.7 Modüller (Yüklenebilir Çekirdek Parçaları)
Linux işletim sistemi çekirdeğinin boyu genellikle 400-600Kb arasındadır. Hantal çekirdeklerde bu sayı 800Kb'lara kadar çıkabilir. Çekirdeğin boyunun büyümesi, sistemin performansını olumsuz yönde etkiler. Özellikle bilgisiz kullanıcıların gerekli gereksiz tüm desteği çekirdeğe yüklemesi sıkça görülür. Bunun önüne geçmek de deneyim ister.
Linux'a özgü özelliklerden birisi modüllerdir (yüklenebilir çekirdek parçaları). Modüller sayesinde nadiren gerekli duyulan bir çekirdek parçası sadece gerektiği zaman çekirdeğe eklenir. Örneğin Java programlarını her zaman çalıştırmak istemiyorsanız, bu desteği modül olarak derleyip bir kenara koyarsınız. Ne zaman bir Java programı çalıştırılacaksa bu modül hafızaya yüklenecektir.
Bir modül, çekirdeğin derleme aşamasında `M' parametresiyle tanımlanır. Her desteğin modülü henüz geliştirilmemiş olmasına rağmen bu sayı gün geçtikçe artmaktadır. İlginizi çekebilecek modüller arasında disket desteği, yazıcı desteği, minix dosya sistemi desteği veya SCSI aygıt sürücü desteği sayılabilir.
Bir modülü derledikten sonra modüle ait dosya /lib/modules dizini altında yeralır. Burada istenilen bir modül
# insmod modul-ismi
komutuyla çekirdeğe eklenir. Modülü hafızadan çıkarmak için
# rmmod modul-ismi
yazın. Hafızadaki modüllerin bir listesini görebilmek için de lsmod komutu kullanılabilir.
kerneld komutu, arkaplanda çalışarak gerekli olan modülleri anında yükler. Bu sayede çekirdeğe eklemek için insmod komutuna gerek kalmaz. Ayrıca belirli bir süre içinde kullanılmayan modülleri de çekirdekten atar.
5.8 Yeni Yazılımların Yüklenmesi
Linux işletim sistemi, benzerlerine nazaran çok büyük bir hızla genişliyor. Her an yeni bir program, yeni bir yazılım piyasaya çıkıyor ve bunları takip etmek de gittikçe zorlaşıyor. Bir ftp adresini kontrol ettikten iki gün sonra tekrar bakıyorsunuz ki üç-beş yeni yazılım gelivermiş.
Tabi ki her an her programı makinanıza indirip açmak zorunda değilsiniz. Buna ne zamanınız, ne de sabit diskiniz yeter (Linux'un sunsite arşivi 20GB'tan fazla yer kaplıyor!). Öyleyse tespih çeker gibi program indirmek veya varolan yazılımları güncellemek komik olur. Sadece gereken zamanda gereken dosyaları makinanıza kurmalı veya güncellemelisiniz.
Bu işlem çekirdek için de geçerlidir. Bazı çekirdek fanatikleri çekirdeği çıktığı anda makinalarına indirir ve derlerler. Linux'a çok önemli bir fonksiyon kazandırmayacaksa her an çekirdek derlemek hem zaman kaybı olur, hem de derleme esnasında sistemi yavaşlatarak diğer kullanıcıları kızdırır.
Kurmak istediğiniz ve ftp adresinden bulup getirilen dosya çok büyük ihtimalle tar ve gzip ile arşivlenip sıkıştırılmıştır. Bu dosyanın sonu genellikle tar.gz, tgz veya tar.Z ile biter. Dosya kaynak koduyla veya çalıştırılabilir program olarak dağıtılıyor olabilir . Her iki durumda da yapılacak işlemler birbirine benzer.
Öncelikle yazılımın açıldığı zaman hangi dizine kendini yerleştireceğine bakmak gerekir. Bunu tar komutunun -t seçeneği ile kontrol edin. compress ve gzip ile sıkıştırılmış dosyalar için,
# tar -ztvf dosya.tar.gz
komutu kullanılabilir. Çok nadir durumlarda dosya, kendine ait bir dizin yaratmaz, onlarca programı ve konfigürasyon dosyasını bulunduğunuz dizine yazar. Karmaşıklık yaratan bu durumdan ancak arşivi ayrı bir dizin altında açmakla kurtulabilirsiniz.
Linux'çular yeni bir yazılımı denemek istediklerinde arşivi genellikle /usr/src veya /usr/local/src dizini altına kopyalarlar ve burada açarak biraz sonra anlatılacak konfigürasyon işlemini uygularlar. Derleme gerektirmeyen bazı programların ise doğrudan kök dizinde açılmaları gerekebilir. Bu programlar açıldıkları anda çalışmaya hazırdırlar.
/usr/src veya /usr/local/src dizini altına dosyayı açtıktan sonra bol miktarda dosya ve dizinle karşılaşabilirsiniz. Buna en iyi örnek Linux çekirdeğidir. Burada yeralan bazı anahtar dosyalar yazılımın kurulması için hayati önem arzeder.
Öncelikle README, README.linux ve varsa INSTALL dosyalarının gözden geçirilmesi gerekir. Bunlar sırayla bir kullanıcı olarak dosyaları nasıl kuracağınızı ayrıntılarıyla söyler. Kurma aşamasında dikkat edilecek dosyalardan ilki Makefile veya makefile dosyasıdır. Bu dosyanın içinde (nadiren) küçük birkaç değişiklik yapmak gerekebilir. Diğer kontol edilmesi gereken dosya ise varsa config.h dosyasıdır. Bunu da sistem gereksinimize göre değiştirmelisiniz.
Bazen başta derleyici olmak üzere sistemdeki yazılımı baştan aşağı kontrol eden programlar olabilir (configure gibi). Bunların da komut satırından çalıştırılmaları gerekir.
Varsa Makefile dosyasına göre yazılımı kurmak için make komutunu kullanın. make komutu kuruluma make all, make install gibi bazı parametreler alabilir. make all, halihazırda yeralan tüm yazılımları kurarken make install, bu yazılımı konfigürasyon dosyalarının gösterdiği dizinlere yerleştirirler.
Çoğu büyük paketler, man dosyalarıyla birlikte gelirler. Bunları da diğer man dosyalarının yanına (/usr/man) koymak için ayrı bir make install.man türü komut kullanmak gerekebilir.
Her durumda, mutlaka README dosyasını okuyun. Biraz sıkıcı gelse de sizi zaman kaybından kurtaracaktır.
Slackware dağıtımını kullanıyorsanız, yüklenmiş yazılımları silmek için 2 yolunuz var. Birincisi, root olarak sisteme girip, istemediğiniz programları tek tek komut satırından silebilirsiniz. Ama bu size önerebileceğimiz bir yol değil ve çok fazla sakıncası var. Örneğin, programı silip, ona olan bağlantıları unutabilirsiniz. Ya da tam tersi olabilir. İkinci yol ve en geçerlisi, Slackware dağıtımı ile gelen pkgtool programı kullanmanız. pkgtool seçenekleri arasındaki remove package işinize yarayacaktır
Tekrar Linux yüklenecek olan makina üzerinde halihazırda Linux bulunmasının yararları olduğu gibi bazı sakıncaları vardır. İlk olarak yararlarına değinmek gerekirse, yapılacak aslında sadece işletim sisteminin bulunduğu bölümü değiştirmektir. Takas alanının ayrılması, kullanıcı alanının ayrılması gibi işlemler bu durumda önceden yapılmış oluyorlar. Ancak yeni işletim sisteminin yüklenmesinin bazı zararları da var.
Herşeyden önce çalıştığı bilinen bir işletim sistemi yenisi ile değiştiriliyor. Gerçekten bunu gerektirecek bir sebep olmadıkça bu tür güncellemelerden kaçınılması veya en aza indirilmesi gerekir. Yeni bir sistem, yeni bilinmeyenler ve az da olsa bile çalışmama riski getirecektir.
Eğer sistem üzerinde belirli hizmetler veriliyorsa o hizmetlere ilişkin verilerin bu güncelleme esnasında yok olmamasına dikkat edilmeli. Mesela makina bir web sunucu olarak kullanılıyorsa web dosyalarının bir şekilde yeni sisteme aktarılması gerekecektir .
Benzer bir şekilde makinaya ait tanımların (/etc) ve standart dağıtım dışında yüklenmiş paketlerin önceden yedeklenmesi gerekir. Yoksa herşeye yeniden başlamak gerekebilir.
Güncelleme için iki yöntem akla gelebilir, doğrudan yeni sistemi eskisinin üzerine bindirmek veya eskisini silerek yeniden yüklemek. Slackware sürümü için en sağlıklısı eski sistemi silmektir. Çünkü değişik dağıtımlarda dosya dağılımı farklılıklar göstere bilmektedir. Bunun sonucunda bazı dosyalar birden fazla yerde gözükebilmektedirler. Bir diğer sakınca ise setup yazılımının bazen bu durumda şaşırabilmesi ve hata vermesi. Bazı ticari Linux sürümleri (Red-Hat, Debian, Caldera gibi) eski sürümü silmeye gerek bırakmadan sistemi güncelleme özelliğine sahipler.
Güncellemeniz gerekebilecek dizinler, /var/spool/mail, kullanıcı dizinleri (root dahil), /usr altında gerekli dizinler,/var/adm/ ve /etc olarak sayılabilir. Bazen /etc içinde yer alan dosyaların yeri veya şekli değişmiş olabilir. Onun için en güvenlisi teker teker dosyaları inceleyip kopyalamaktır. Belirli dosyaları yeni sistemi kurduktan sonra hemen kopyalayabilirsiniz :
/etc/group/etc/printcap /etc/hosts ...
Daha önce shadow kullanmayan bir sistemden shadow sistemine geçiyorsanız, /etc/passwd ve /etc/shadow dosyalarında gerekli değişiklikleri yapmadan yeni yerine kopyalamayın.
Ayrıca ne olur ne olmaz diye çalıştığını bildiğiniz bir çekirdeği de yedeğe almayı ihmal etmeyin.
5.6 Çekirdeğin Derlenmesi
Bu bölümde, çekirdeğin konfigürasyonu ve derlenmesi için gerekli bilgiler vardır. Çekirdek derleme uzun ve zahmetli bir işlemdir. Derleme aşamasını en kısa zamanda ve en uygun yoldan gerçekleştirmek gerekir. Derleme işlemi, kullanıcının önüne kafasını karıştıracak kadar çok seçenek sunar.
Nedir bu çekirdek? Genel anlamda çekirdek, yazılımın ve donanımın arasında bekleyerek iletişimi sağlayan bir arabirimdir. Çalışan tüm programların ve süreçlerin hafıza ile olan ilişkilerini düzenler. İşlemcinin gücünün tüm bu programlar arasında adil bir şekilde dağıtımını üzerine alır. Bu işlemleri kullanıcının haberi olmadan her an durmaksızın yapar.
Çekirdek kaynak dosyaları diskte hatırı sayılır bir alan tutar. Örneğin sürüm 2.0.20 yaklaşık 6Mb disk alanı kaplar. Açıldığı zaman ise toplam kapladığı alan 24 Mb olur. Derleme aşamasından sonra bu rakam 30 Mb'yi geçer. Her eklenen aygıt sürücü desteği bir miktar daha yer alır.
Kullandığınız sisteme göre çekirdeğin derlenme süresi değişkenlik gösterir. 12 Mb 486DX4/100 makinasında, 5 dosya sistemi desteği, ağ desteği ve ses kartı sürücüsü ile yaklaşık 30 dakika sürer. Aynı konfigürasyonu içeren çekirdeğin derlenmesi ise daha güçsüz bir makina olan 8Mb 386DX/40 altında 1.5 saati bulur. Derlerken gidip çayınızı için, biraz televizyon seyredin. Makinaniz 386 ise bir banyo alıp dışarı çıkın, alışveriş yapın. Çok ümitsiz bir durumdaysanız, yapılacak en iyi şey en yakın bilgisayar satıcısına uğrayarak yeni fiyatları sormak :-)
Çekirdek kaynak kodu , ODTÜ ftp arşivindeki adresinden veya tsx-11.mit.edu adresinin yansısını tutan herhangi bir adresten alınabilir. Bu dizin altındaki Linux sürümlerinin bir tanesini (v1.2, v2.0, v2.1 gibi) seçtikten sonra altındaki dosyayı alabilirsiniz. Dosyanın ismi linux-x.y.z.tar.gz yapısındadır.
Aşağıdaki örnekte ODTÜ ftp arşivinden 2.0.20 sürümünün alınışı gösterilmektedir:
[Üye Olmadan Linkleri Göremezsiniz.]
Sisteme root olarak giriş yapın ve /usr/src dizinine geçin. Linux'un kurulması aşamasında çekirdekleri de kurmuş iseniz bu dizinde 'linux' isminde ve eski çekirdeğin kaynak kodlarını kapsayan bir alt dizin göreceksiniz. Genellikle her kullanıcının yaptığı, bu dizinin ismini o an çalışan çekirdeğin sürümüne göre değiştirmektir. Çekirdek sürümünü bulmak için ise uname -r komutunu kullanabilirsiniz.
$ uname -r 2.0.23
Bu komuttan çekirdeğin 2.0.23 sürümü olduğunu anlayabiliriz.
Çekirdek kodunu içeren paketi açmadan önce /usr/src dizinine kopyalayın, ve açmadan önce bu dizinde 'linux' isimli bir dizinin olmadığına emin olun. Şimdi /usr/src içinde iken sıkıştırılmış çekirdek kodunu 'tar' komutu yardımıyla açın.
# tar -zxf linux-x.y.z.tar.gz
Komutun işletimi bitince 'linux' dizini oluşur. İlk defa derleme işlemi yapacaksanız aşağıdaki komutları sırasıyla yazın.
# cd /usr/include # rm -rf asm linux scsi # ln -s /usr/src/linux/include/asm-i386 asm # ln -s /usr/src/linux/include/linux linux # ln -s /usr/src/linux/include/scsi scsi # cd /usr/src/linux # make mrproper
Çekirdek Konfigürasyonu
/usr/src/linux dizini altinda iken make config yazın. Bu komut, bir konfigürasyon dosyası yaratmak amacıyla sorular sorar.
Karşınıza çıkan sorulara 'y' (evet) veya 'n' (hayır) ile cevap vermeniz gerekir. Bazı aygıt sürücülerde 'm' seçeneği de olabilir. Bunun anlamı, sistem o programı modül olarak derleyecek ve çekirdeğe dahil etmeyecek demektir. Kullanıcı derleme aşamasından sonra istediği zaman bu modülü çekirdeğe dahil edebilir, işini bitirdikten sonra da çıkarabilir.
2.0.x ve daha yukarı sürümlerde '?' tuşuna basmakla daha ayrıntılı bilgi alabilirsiniz. Aşağıda bazı konfigürasyon parametreleri verilmiştir.
Matematik işlemci emülasyonu (Kernel math emulation)
Kullandığınız makinanın işlemcisi yardımcı matematik işlemcisine sahip değilse (486SX, 386SX veya daha düşük makinalar) bu seçeneğe evet cevabını vermelisiniz.
Normal (MFM/RLL) disk ve IDE disk/cdrom desteği (Normal disk and IDE disk/cdrom support)
Hemen herkesin kullandığı PC sabit disklerinin standart olması sebebiyle bu seçenege 'y' cevabı verilebilir. Daha ileride SCSI sabit disk ve cdrom desteği de sorulacaktır. Ardından gelecek olan 'old disks-only' ve 'new IDE' sürücülerinden birini seçerken, aralarındaki farkın ilkinde tek arabirim üzerinden iki adet diski desteklemesi, diğerinde ise ikinci arabirim ile birlikte IDE/ATAPI cdrom'ları desteklemesidir.
Ağ desteği (Networking support)
Makinanız herhangi bir ağ üzerinde ise (İnternet gibi), veya İnternet'e bağlanmak için SLIP, PPP gibi programları kullanmak istiyorsanız bu bölüme 'y' cevabı vermelisiniz. Fakat, ağ üzerinde olmasanız bile her geçen gün yeni yeni uygulama programlarının ve paketlerin ağ desteğine ihtiyacı olduğunu düşünürsek (X Window gibi) bu bölüme 'y' cevabı vermeniz şart görünüyor.
En fazla 16Mb hafıza (Limit memory to low 16Mb)
Bazı hatalı 386 DMA denetleyicileri hafızanın 16Mb'tan yüksek bölümlerine ulaşamazlar. Çok nadir görülen bu durum makinanızda varsa bu seçeneği 'y' ile geçin.
System V IPC (System V IPC):
IPC (Interprocess Communication) desteği verir. Bazı Perl programları ve oyunlar (DOOM gibi) bu seçenek olmadan çalışamazlar. Bu durumda ne yaptığınızı iyi bilmiyorsanız bu seçeneğe 'y' -evet- cevabı verin.
İşlemci tipi (386, 486, Pentium, PPro):
Burada, çekirdeğinizi hangi tür makina için derliyorsanız, o makinanın tipini giriniz.
SCSI desteği (SCSI Support):
SCSI aygıtlarınız var ise bu seçenek için 'evet' deyin. Daha sonra da karşınıza gelecek SCSI aygıtlar arasından size uygun olanları alın.
Ağ kartı desteği (Network Device Support):
Ağa bağlanmak için bir kart kullanacaksanız veya SLIP, PPP bağlantıları, ya da paralel port üzerinden yapacağınız her türlü işlemler için bu seçeneği işaretleyin. Ardından ekrana gelen kart tiplerinden uygun olanlarını seçin.
Dosya sistemleri (Filesystems):
Burada, aşağıdaki dosya sistemlerinden kullanmak istediklerinizi seçebilirsiniz.
minix: Yeni dağıtımlar , artik tarih olmaya başlayan bu dosya sistemini desteklememekte. Bazı kurtarma disketleri yaratmak için daha yaygın, fakat daha az kararlı olan ext2 dosya sistemine tercih edilirler.
Extended file system (ext): Bu da artık kullanımı olmayan bir dosya sistemi. Desteğini ekleyip eklememek size kalmış.
Second extended file system (ext2): Linux'un kullandığı en önemli dosya sistemi. Alınması şart.
xiafs: Artık kullanılmıyor.
msdos: Sabit diskinizde DOS bölümü varsa, ya da DOS disketi kullanmak istiyorsanız, alın.
umsdos: MS-DOS dosya sistemine bazı yenilikler (uzun dosya isimleri gibi) getirilerek oluşturulan bir teknoloji. MS-DOS desteği almadıysanız buna da gerek yok.
proc: Bu aslında gerçek bir dosya sistemi değil, çekirdek görüntüsüdür. `y' cevabını vermezseniz ileride başınız çok ağrır.
NFS: Linux makinaniz bir ağ üzerinde kurulu iken ağ üzerindeki diğer makinaların dosya sistemlerini kullanabilmenizi sağlar.
ISO9660: CD-ROM sürücünüzü Linux altında kullanabilmek için 'y' cevabı verin.
OS/2 HPFS: OS/2 dosya sistemlerini okuyabilmek için 'y' cevabı verin.
System V: Bir UN*X sürümü olan System V makinalarının dosya sistemleri üzerinde çalışabilmeyi sağlar.
Karakter aygıtlar (Character devices):
Bu bölümde yazıcı, fare ve bazı teyp yedekleme sürücüleri gibi karakter aygıtları (iletişimini karakter karakter sağlayan aygıtlar) için sürücüleri ekleyebilirsiniz.
Ses kartı (Sound Card Support):
Linux'un ses kapasitesini "duyabilmek" için bu desteği ekleyin.
Çekirdek işlemleri (Kernel Hacking):
Çekirdekten doğan hataların bulunmasını kolaylaştıran bu seçenek, programcılara yönelik.
Tüm bu işlemlerin ardından make config komutunun görevi bitmiş olur.
Temizlik
Fazla dosyaları temizlemek, gerekli olan dosyaların da yerinde olup olmadığını kontrol etmek için , sırasıyla
# make dep # make clean
yazın. Ardından tüm nesne dosyaları ve eski sürümden arta kalan dosyalar silinecektir. Bu adımı es geçmemelisiniz.
Temizlik işleminden sonra,
# make zImage , veya # make zdisk
yazın. Eğer bir kişisel bilgisayarda çalışıyorsanız, ilk seçenekte çekirdek derlenip /usr/src/linux/arch/i386/boot dizini altına zImage adıyla yerleştirilecektir. Buraya yerleştirilmeden önce yerden kazanmak için çekirdek sıkıştırılır. Diğer durumda ise yeni çekirdek sabit disk yerine A: disket sürücüsüne yazılır. Disket üzerine yazmanın bir avantajı, kararlı olmayan ve sistemi açmayan çekirdek ile karşılaşılması halinde, sistemi sabit disk üzerindeki eski çekirdekten açabilme imkanı bırakmasıdır.
Çekirdeğin Kurulması
LILO, bilgisayarın açılışı anında çekirdek ile ilgili düzenlemeleri okur, buna göre hangi çekirdekten açması gerektiğini anlar. Konfigürasyon dosyası biraz karmaşık olmasına rağmen kullanım aşamasında büyük yararlar sağlar. /etc/lilo.conf dosyasının içinde gerekli olan kurulum bilgileri vardır. Bu dosyanın bir bölüm aşağıda görülüyor.
image = /vmlinuz label = linux root = /dev/hda1 other = /dev/hda1 label = dos table = /dev/hda
image = ibaresi kurulu olan çekirdeğe işaret eder. Çoğu kullanıcı bu kısma vmlinuz yazar. label = bölümünde hangi işletim sistemi veya çekirdek sürümünun açılışta kullanılacağı yazılır. Hemen altındaki root bölümünde ise label = kısmında seçilen işletim sisteminin hiyerarşik sırada en üst dizin yapısı yazılır. Eski çekirdeğin bir yedeğini alın ve yeni derlediğiniz çekirdeği image = satırında belirtilen yere kopyalayın.
# cp zImage /vmlinuz
Şimdi LILO programını çalıştırın. Komut satırında lilo yazmak yeterlidir. `*' karakteri, çalıştırılacak ilk çekirdeği veya sistemi gösterir.
# lilo Added linux * Added dos
LILO ve konfigürasyonu hakkında , daha fazla bilgi LILO-NASIL çevirisinden alınabilir.
Yeni bir çekirdeği derledikten sonra LILO üzerinden ekleme yapmak ve açılış anında kullanmak için /etc/lilo.conf dosyasındaki
image = /vmlinuz label = Linux root = /dev/hda1
satırlarının kopyasını çıkarın, image , label ve root yerine sırasıyla yeni derlenen çekirdeğin sabit disk üzerindeki yerini, ismini ve Linux işletim sisteminizin kök dizinini yazın. Bunlara ek olarak, açılış anında bekleme sağlamak ve seçim yapabilmek için konfigürasyon dosyasının başına delay = xxx ekleyebilirsiniz. xxx sayısı, gecikme zamanı saniyenin onda biri olarak verilir. Bu sayede açılış anında , örneğin shift tuşuna basılarak istenen çekirdeğin ismi (label = satırında yazılan isim) seçilir ve çalıştırılır.
Çekirdeğin Yamanması (patch)
Çekirdeğin her yeni sürümüyle birlikte bir önceki sürümünun yaması da gelir. Yamayı uygulamak, tüm çekirdeğin tekrar derlenmesinden daha kolaydır. Örnek olarak, elinizde 2.0.10 çekirdeği var ve ftp adresinde 2.0.11 sürümü bekliyor. Halihazırdaki çekirdeği 2.0.11 sürümüne yükseltelim:
Yamayı önce /usr/src dizinine kopyalayın. Bu dizin altında iken
# zcat patch-2.0.11.gz | patch -p0
veya eğer sıkıştırılmış değilse
# patch -p0 < patch-2.0.11
yazın. Bu komutun ardından satırlar ekrandan kaymaya başlayacak ve yama işlemi tamamlanacaktır. Satırlar bazen o kadar hızlı kayar ki neler yazdığını bile göremeyebilirsiniz. Yamanın başarılı bir şekilde tamamlandığından emin olmak amacıyla, /usr/src/linux dizini altında .rej uzantılı dosyalara bakın.
# find . -name '*.rej' -print
Komut, .rej uzantılı dosyalar bulursa yama işlemi tamamlanamamış demektir. Eğer yama işlemi tamamlanırsa, sırasıyla
# make clean # make config # make dep
komutlarını yazın. Bu komutlarla ilgili detaylı bilgi önceki konuda anlatılmıştır.
patch komutunun alabildiği bazı seçenekler vardır. patch -s komutu oluşabilecek tüm hata mesajlarını ekrana yazar. Diğer yama seçenekleri man patch yazarak görülebilir.
Birkaç yamanın ardından, .orig uzantılı dosyalar etrafta dolaşmaya başlar. Bu dosyalar gereksizdir, büyük yer kapladıkları için silinmeleri gerekir. Aşağıdaki komut yardımıyla /usr/src/linux dizini altında .orig uzantılı dosyaları silebilirsiniz.
# find /usr/src/linux -name '*.orig' -exec rm -f {} ';'
Çıkabilecek Sorunlar
Eger rutin bir çekirdek güncellemesinden sonra yeni çekirdeğiniz gerçekten garip şeyler yapıyorsa, büyük ihtimalle yeni çekirdeğinizi derlemeden önce "make clean" komutunu kullanmayı unutmuşsunuzdur.
Eğer çekirdek çok fazla hafıza harcıyorsa, çok büyükse, veya yeni 786DX6/440 makinanızda bile derlenmesi sonsuza kadar sürüyorsa, büyük ihtimalle ayarlanmış bir çok gereksiz parça (aygıt sürücüleri, dosya sistemleri, vb.) vardır. Büyük çekirdeklerin en belirgin özelliği sürekli hafızadan diske ve diskten hafızaya takas yapmalarıdır.
Çekirdeğinizin ne kadar hafıza kullandığını makinanın toplam hafızasından /proc/meminfo dosyasındaki total mem değerini çıkararak veya free komutunun çıktısından öğrenebilirsiniz. Ayrıca dmesg komutunu kullanarak (veya çekirdek kayıt dosyasına bakarak) da bu değere ulaşabilirsiniz.
Memory: 15124k/16384k available (552k kernel code, 384k reserved, 324k data)
LILO'yu çalışıtırmayı unuttunuz, veya sistem hiç açılmıyorsa bu durumda yapacağınız en iyi şey disketten açılış yapmak ve daha sonra açılış yapabilen başka bir disket hazırlamaktır.
Eğer eski çekirdek 1.2.X ve daha düşükse ve bunu 2.0.x sürümüne yükseltmek istiyorsanız, 2.0.x çekirdek kurulumunda getirilen bazı değişiklikler sorun çıkartabilir. /usr/src/linux/Documentation/Changes dosyasında yapmanız gereken değişklik listesi vardır. gcc, libc gibi birkaç paketi yeniden kurmanız gerekebilir.
Aynı anda birkaç çekirdek kaynak kodunu sistemde bulundurmayı düşünüyorsanız, izlenecek en güvenilir yol, her birine /usr/src/linux-x.y.z ismini vermektir (x.y.z halihazırdaki çekirdek sürümünü gösterir). Ardından sembolik bir bağlantı yardımıyla istediğiniz kaynak dizinini seçebilirsiniz, örneğin
# ln -sf linux-2.0.2 /usr/src/linux
komutu, linux-2.0.2 dizinini aktif hale getirir. Artık kaynak dosyalarının bulunduğu yer linux-2.0.2 dizinidir.
5.7 Modüller (Yüklenebilir Çekirdek Parçaları)
Linux işletim sistemi çekirdeğinin boyu genellikle 400-600Kb arasındadır. Hantal çekirdeklerde bu sayı 800Kb'lara kadar çıkabilir. Çekirdeğin boyunun büyümesi, sistemin performansını olumsuz yönde etkiler. Özellikle bilgisiz kullanıcıların gerekli gereksiz tüm desteği çekirdeğe yüklemesi sıkça görülür. Bunun önüne geçmek de deneyim ister.
Linux'a özgü özelliklerden birisi modüllerdir (yüklenebilir çekirdek parçaları). Modüller sayesinde nadiren gerekli duyulan bir çekirdek parçası sadece gerektiği zaman çekirdeğe eklenir. Örneğin Java programlarını her zaman çalıştırmak istemiyorsanız, bu desteği modül olarak derleyip bir kenara koyarsınız. Ne zaman bir Java programı çalıştırılacaksa bu modül hafızaya yüklenecektir.
Bir modül, çekirdeğin derleme aşamasında `M' parametresiyle tanımlanır. Her desteğin modülü henüz geliştirilmemiş olmasına rağmen bu sayı gün geçtikçe artmaktadır. İlginizi çekebilecek modüller arasında disket desteği, yazıcı desteği, minix dosya sistemi desteği veya SCSI aygıt sürücü desteği sayılabilir.
Bir modülü derledikten sonra modüle ait dosya /lib/modules dizini altında yeralır. Burada istenilen bir modül
# insmod modul-ismi
komutuyla çekirdeğe eklenir. Modülü hafızadan çıkarmak için
# rmmod modul-ismi
yazın. Hafızadaki modüllerin bir listesini görebilmek için de lsmod komutu kullanılabilir.
kerneld komutu, arkaplanda çalışarak gerekli olan modülleri anında yükler. Bu sayede çekirdeğe eklemek için insmod komutuna gerek kalmaz. Ayrıca belirli bir süre içinde kullanılmayan modülleri de çekirdekten atar.
5.8 Yeni Yazılımların Yüklenmesi
Linux işletim sistemi, benzerlerine nazaran çok büyük bir hızla genişliyor. Her an yeni bir program, yeni bir yazılım piyasaya çıkıyor ve bunları takip etmek de gittikçe zorlaşıyor. Bir ftp adresini kontrol ettikten iki gün sonra tekrar bakıyorsunuz ki üç-beş yeni yazılım gelivermiş.
Tabi ki her an her programı makinanıza indirip açmak zorunda değilsiniz. Buna ne zamanınız, ne de sabit diskiniz yeter (Linux'un sunsite arşivi 20GB'tan fazla yer kaplıyor!). Öyleyse tespih çeker gibi program indirmek veya varolan yazılımları güncellemek komik olur. Sadece gereken zamanda gereken dosyaları makinanıza kurmalı veya güncellemelisiniz.
Bu işlem çekirdek için de geçerlidir. Bazı çekirdek fanatikleri çekirdeği çıktığı anda makinalarına indirir ve derlerler. Linux'a çok önemli bir fonksiyon kazandırmayacaksa her an çekirdek derlemek hem zaman kaybı olur, hem de derleme esnasında sistemi yavaşlatarak diğer kullanıcıları kızdırır.
Kurmak istediğiniz ve ftp adresinden bulup getirilen dosya çok büyük ihtimalle tar ve gzip ile arşivlenip sıkıştırılmıştır. Bu dosyanın sonu genellikle tar.gz, tgz veya tar.Z ile biter. Dosya kaynak koduyla veya çalıştırılabilir program olarak dağıtılıyor olabilir . Her iki durumda da yapılacak işlemler birbirine benzer.
Öncelikle yazılımın açıldığı zaman hangi dizine kendini yerleştireceğine bakmak gerekir. Bunu tar komutunun -t seçeneği ile kontrol edin. compress ve gzip ile sıkıştırılmış dosyalar için,
# tar -ztvf dosya.tar.gz
komutu kullanılabilir. Çok nadir durumlarda dosya, kendine ait bir dizin yaratmaz, onlarca programı ve konfigürasyon dosyasını bulunduğunuz dizine yazar. Karmaşıklık yaratan bu durumdan ancak arşivi ayrı bir dizin altında açmakla kurtulabilirsiniz.
Linux'çular yeni bir yazılımı denemek istediklerinde arşivi genellikle /usr/src veya /usr/local/src dizini altına kopyalarlar ve burada açarak biraz sonra anlatılacak konfigürasyon işlemini uygularlar. Derleme gerektirmeyen bazı programların ise doğrudan kök dizinde açılmaları gerekebilir. Bu programlar açıldıkları anda çalışmaya hazırdırlar.
/usr/src veya /usr/local/src dizini altına dosyayı açtıktan sonra bol miktarda dosya ve dizinle karşılaşabilirsiniz. Buna en iyi örnek Linux çekirdeğidir. Burada yeralan bazı anahtar dosyalar yazılımın kurulması için hayati önem arzeder.
Öncelikle README, README.linux ve varsa INSTALL dosyalarının gözden geçirilmesi gerekir. Bunlar sırayla bir kullanıcı olarak dosyaları nasıl kuracağınızı ayrıntılarıyla söyler. Kurma aşamasında dikkat edilecek dosyalardan ilki Makefile veya makefile dosyasıdır. Bu dosyanın içinde (nadiren) küçük birkaç değişiklik yapmak gerekebilir. Diğer kontol edilmesi gereken dosya ise varsa config.h dosyasıdır. Bunu da sistem gereksinimize göre değiştirmelisiniz.
Bazen başta derleyici olmak üzere sistemdeki yazılımı baştan aşağı kontrol eden programlar olabilir (configure gibi). Bunların da komut satırından çalıştırılmaları gerekir.
Varsa Makefile dosyasına göre yazılımı kurmak için make komutunu kullanın. make komutu kuruluma make all, make install gibi bazı parametreler alabilir. make all, halihazırda yeralan tüm yazılımları kurarken make install, bu yazılımı konfigürasyon dosyalarının gösterdiği dizinlere yerleştirirler.
Çoğu büyük paketler, man dosyalarıyla birlikte gelirler. Bunları da diğer man dosyalarının yanına (/usr/man) koymak için ayrı bir make install.man türü komut kullanmak gerekebilir.
Her durumda, mutlaka README dosyasını okuyun. Biraz sıkıcı gelse de sizi zaman kaybından kurtaracaktır.
Slackware dağıtımını kullanıyorsanız, yüklenmiş yazılımları silmek için 2 yolunuz var. Birincisi, root olarak sisteme girip, istemediğiniz programları tek tek komut satırından silebilirsiniz. Ama bu size önerebileceğimiz bir yol değil ve çok fazla sakıncası var. Örneğin, programı silip, ona olan bağlantıları unutabilirsiniz. Ya da tam tersi olabilir. İkinci yol ve en geçerlisi, Slackware dağıtımı ile gelen pkgtool programı kullanmanız. pkgtool seçenekleri arasındaki remove package işinize yarayacaktır