Linux Dagitim Guncelleme - NASIL Levent Santemiz , levent@compclub.itu.edu.tr Cengiz Gunay , cengiz@compclub.itu.edu.tr Surum1.1 , 9.1.1997 Bir linux dagitimindan digerine terfi ederken tavsiyeler ve ogutler. 1. Giris 1.1 Linux makinanizi canlandirin! Bu dokumanin amaci size bir linux sisteminin tekrar kurulmasi sirasinda yardim icin tavsiyeler sunmaktir. Bu herhangi bir anlamda beceriksizler icin yemek kitabi degildir; ama umuyorum size ne hakkinda dusunmeye ihtiyaciniz oldugunu ve yapilacaklarin sirasini gostermek seklinde hizmet verecektir. Bu dokumandaki dizin isimleri bile sizin kullanmaya ihtiyac duyduklarinizdan farkli olabilir; bazi makinalarda /home yerine /usr/home vardir. Ornek olarak bazi sistem yoneticileri buna /u de r ve bazilari butun kullanicilarini dogrudan /usr’in altina koyarlar! Sizin sisteminiz hakkinda kesin bir sey belirtemeyecegim icin isimleri benimkiler gibi kullandim. Benim Slackware dagitimlarini kullandigimi ve sizin linux cekirdek kaynagini yuklemek ve kendi cekirdeginizi derlemek icin yeterli RAM ve sabit disk alaninizin oldugunu kabul ettigimi belirtirim. Eger sisteminiz farkliysa onerilerin bazilarini uygulayamayabilirsiniz. 1.2 Neden guncellemek istiyorsunuz ? Gerekmedikce bunu yapmayin. (Bu butun rehberdeki tek en onemli oneridir!) Ama yapmaya mecbur olabileceginiz zamanlar vardir. Ornek olarak, 4Gb sabit disk kurdum ve anladim ki Slackware 2.0 2Gb’tan daha fazlasina sahip bir sabit diskin olabilecegini bilmiyordu ve korkunc derecede sasirmisti. Boylece ben de makinami Slackware 2.3’e guncellemek zorunda kaldim. Bu guncelleme islemi cok yorucu oldu. Herseyi yanlis yaptim fakat sansim yaver gitti ve yanimda calisan bir baska linux makinasinin olusu beni faciadan korudu. 1.3 Silip tekrar kurmak”zorunda misiniz ? Bu en guvenlidir. Eger var olan linux sisteminin ustune kurarsaniz; eski ve yeni ikiliklerin, eski ve yeni ayar dosyalarinin bir karisimina, yonetmeyi deneyeceginiz tam bir karmasaya sahip olmaniz olasidir. Sistemi silip temizlemek ve sonra ihtiyaciniz olani geri koymak zorlayici ama temiz bir sonuc almak icin etkili bir yoldur (Elbette biz burada bir veya iki paketi guncellemekten degil, yeni bir butun linux dagitimi kurmaktan bahsediyoruz! Tekrar yerlesime zorunlu olmayi atlatmanin en iyi yolu, tam olarak, o anki bagimsiz parcalari korumaktir - ozellikle gcc ve onun kutuphaneleri ve binutils. Eger kullandigin program guncelse ve zaman zaman yeni kod eklemeleri yaparak bunu surdurebiliyorsaniz, o zaman tam bir guncellestirmeye ihtiyac yoktur.) Patrick Volkerding’in belirttigi gibi calisan bir a.out sisteminin ustune ELF kurmak felakete bir davetiyedir; en azindan, eger onu denemek icin yeteri kadar bilgi sahibiyseniz, bu rehberi okumaniza gerek yok! Bu karmasanin olmamasi icin, en iyisi en basindan silip tekrar kurun. 1.4 Ne kadar surecektir ? Elbette sisteminizin ne kadar kompleks olduguna bagli. Ama sunu soyleyebilirim, basarili bir guncellemede yedekleme icin 10 saat, girisleri mumkun kilabilecegim noktaya kadar sistemi tekrar insasi icin 6 saat, ve bir yarim gun de az onemli olan dosyalari tekrar yerine koymak icin harcadim. Zaman gectikce hala tam olarak istedigim gibi olmayan kucuk noktalari fark etmeye devam ediyorum -karsilastikca onlari duzeltiyorum - ama temelde, karmasik bir sistemi tekrar insa isi icin 20 saat yeterli olacaktir. Eger sabit diskten tekrar kuruyorsaniz (ben CDROM kullandim) belki daha az ya da eger disketlerden kurmaya ihtiyac duyuyorsaniz daha fazla olacaktir. Eger hizli bir Pentiumunuz varsa belki daha az, eger bir 386 ise fazla olacaktir. 2. Yaptiginiz her seyi yazin. Sistem degisimine hazirlanma ve gerceklestirme islemlerinde yapacaginiz kayitlar cok degerlidir. Hazirlik olarak yapacaginiz yedeklemelerin listesi ozellikle onemlidir. 3. Bulunan sistemin tam bir yedeklemesini yapin. Genelde konusuyorum, yedekler genelde siradan okunan ortamlara yazilmaya egilimlidirler. Durum boyle olunca, onemli miktarda dosyayi tekrar yerine koymak icin bu tam yedeklemeyi kullanmak istemeyeceksinizdir; ustunde istemeyeceginiz cok fazla dosya olacak. En iyisi butunuyle tekrar yerine koyacagimizi bildiginiz parcalarin kucuk yedeklerini yaratmaktir. Daha sonra bir ornek demeti siralayacagim. O zaman neden tam yedeklemeyle baslamalisiniz? Iki basit nedenden birincisi, yeni sistemin yerlesiminde felaket seviyesinde bir hata yapilmasi durumunda, baslama noktasina minimum kayipla geri donmek icin bir yolunuz olacaktir. Ikincisi, yeni yerlesime ne kadar hazirlansaniz da hic farketmez, buyuk bir olasilikla bir veya iki onemli dosya gozden kacabilecektir. 4. /etc ve onun altdizinlerini bir veya daha fazla diskete yedekleyin. Bunlari yerine koymayabilirsiniz ama yerlesim sirasinda yaratilacak yenileriyle bunlari karsilastirmak zorundasiniz. Neden? Cunku yeni olanlar eskilerde olmayan verileri icerebilir, ya da eski verileri yeni yollarla ifade edebilirler. Protokollerdeki degisimler, yeni araclarin eklenmesi, ya da bulunan araclara yeni nitelikler eklenmesi /etc’nin icerdigi konfigurasyon dosyalarina etki edebilir. Boylece yeni gelismelerden yararlanmak icin eski verilerinizi bu dosyalarin icine yazmak zorunda kalacaksiniz. 5. Korumak istediginiz her dosya grubunu ayri yedekleyin. Bu isin en onemli tarafidir, ve size yardimci olabilmek icin butun yapabilecegim bir rehber olmasi dilegiyle kendi sistemime ne yaptigimi anlatmaktir. Temelde, * Standart linux kurulumunuzun parcasi olmayan dosyalari, ya da * Yeni linux kurulumunu yaparken kuracaklarinizdan daha yeni olan dosyalari iceren butun dizinlere bakmak ve sadece tasimak istediginiz bu dosyalari ayirmak isteyebilirsiniz. Benim durumumda, asagidakilerin herbiri icin yedekleme ortaminda bir .tgz dosyasi yapmayi uygun buldum. * /usr/lib/smail * /usr/lib/trn * /usr/local/src * /usr/local/bin * /usr/local/lib * /usr/local/man * /usr/local/sbin * /usr/local/thot (ihtiyacim olmayan diger /usr/local dosyalari da vardi) * /usr/openwin (eger gerekiyorsa) * /usr/src/linux-1.2.13 (cunku daha onceden bazi degisiklikler yapmistim) * /usr/X11R6/lib/X11/app-defaults * /usr/X11R6/lib/X11/xinit (Xfree86’nin geri kalani tekrar yerlesti) * /var/named * /var/texfonts Endiselenecek hic spool dosyam olmadigindan makinem nispeten kolayca yedeklendi. Bu makinada hic news spool calistirmadim ve sadece iki kullanici oldugundan kapatmadan once butun mektuplari okumak en kolayiydi. Aksi halde, /var/spool dizinleri son dakikada yedeklenmek zorunda kalacakti. (Ve tabii ki, news kutuphanesi) 6. Yeni yerlesim icin acilis disketleri (rootdisk ve bootdisk) hazirlayin. Bunun nasil yapilacagiyla ilgili ayrintilar yeni dagitim rehberinizde bulunacaktir. Butun bunlar olduktan sonra Buyuk An icin hazirsiniz. Bir sonraki adim sistemi uretimden kaldirir. 7. Girisleri engelleyin ve /root ve /home dizinlerini yedekleyin. Yeni sisteminizi kurmadan once eski sistemde yapilacak son islemdir, boylece en halihazirdaki kullanici ve kok bilgisini nakledebilirsiniz. 8. Yeni dagitimin acilis disketlerinden sistemi acin. 9. Linux bolumlerini fdisk ile silin ve tekrar yaratin. Eski sistemi imha edecek olan bu islemin nasil yapilacagini yerlesim rehberi aciklayacaktir. Su andan itibaren onceki adimlarda yaptiginiz yedeklere bagimlisiniz. 10. Yeni linux dagitimini calistirin. Bunun nasil yapilacagi konusunda zaten cok sayida dokuman var, bu yuzden herhangi bir ayrintiya girmiyorum. Yeni sistem kendi sabit diskinden acilis yapabilecegi zaman buradan devam edin. Linux kurulumu sirasinda kazalar olabileceginden yol boyunca acilis yapabileceginiz bir disket hazirladiginizdan emin olun. Gelistirme paketlerini ve cekirdek kaynagini kurdugunuzdan emin olun. 11. Takas bolumleri Sabit diskten acilmis yeni linux sistemiyle /etc/fstab’i duzenleyin ve kendi takas bolumunuzu ekleyin. Sonra “swapon -a” komutunu calistirin. Neden oldugunu bilmiyorum ama Slackware kurulum eger takas bolumunuz varsa bunu yapmanizi onermiyor. Sonra, yeni sisteminizi acilis yaptirdiginizda ve rc.S tarifi takaslamayi acmaya calistiginda, fstab dosyasinda bolumu bulamiyor ve takaslama mumkun kilinmiyor. Bu adim onu duzeltiyor. 12. Ayarlama verilerini /etc dizinine ve alt dizinlerine tekrar geri koyun. Yukarida anlatildigi gibi, butun eski dosyalarinizi geri /etc’ye kopyalayip, sonra da herseyin duzenli calismasini bekleyemezsiniz. Bunu bazi dosyalarla yapabiliriniz; ornek olarak, /etc/XF86Config. Bunlar icin en iyisi herhangi bir kopyalama yapmadan once eski ve yeni dosyalari karsilastirmak icin diff’i kullanmaktir. Ozellikle yedeklerinizden eski rc dosyalarini kopyalayip yerine eski ayarlamalarinizi elle duzenleyerek tekrar kurmanizi gerektirecek /etc/rc.d’deki dosyalardaki degisimler icin dikkatli olun. Bir kere oldu mu tekrar acilis yapin. 13. Linux cekirdegini tekrar derleyin Donaniminizi destekleyen bir cekirdek edinmek icin bunu yapmak zorunda olabilirsiniz. Ayrintilar icin Kernel-HOWTO(Cekirdek-NASIL)’'ya bakiniz. Ilk olarak yeniden insa edilmis cekirdegi diskete yerlestirin; acilis yapildiginda sabit diske kurun, eger kullaniyorsaniz lilo' yu calistirin, ve tekrar acilis yapin. 14. Onceden yaptiginiz yedeklerdeki tekrar yerine koyun. Ikiliklerin bazilari kaynak dizinden tekrar yerlestirilmek isteyebilir, ben bunu lilo ile yapmak zorunda kaldim, mesela, benim surumum Slackware kurulumunda olandan daha yeni oldugundan, /sbin’deki calistirilabilir dosyalari saklamak icin ugrasmadim. Tekrar yerine konulmus programlari kontrol etmek ve ayar dosyalarinin, kutuphanelerin ve benzerlerinin varligini ve dogrulugunu onaylamak isteyeceksiniz. Bazi durumlarda tekrar yerine koymayi belirli bir siraya gore yapmak zorunda kalabilirsiniz; yedeklerken notlar aldiniz, degil mi? ;-) 15. Guvenligi gozden gecirin. Dosya ve dizin izinlerini kontrol edin. Slackware’in hoslandigimdan daha cik bir ortama egilim gosterdigini buldum, boylece /bin dizinlerindeki dosyalari 755’ten 711 ’e degistirdim. Ve hatta /sbin'dekileri 700'e. 16. Girisleri mumkun kilin. Artik ayaktasiniz ve hersey calisiyor. Onunuzdeki takibi ufak anlarda, buyuk olasilikla temizleme icin ayrintilar olacak; ama is yigini sona erdi. Sevinin!