Linux Dağıtım Güncelleme - NASIL Levent Şantemiz , levent@compclub.itu.edu.tr Cengiz Günay , cengiz@compclub.itu.edu.tr Sürüm1.1 , 9.1.1997 Bir linux dağıtımından diğerine terfi ederken tavsiyeler ve öğütler. 1. Giriş 1.1 Linux makinanızı canlandırın! Bu dokümanın amacı size bir linux sisteminin tekrar kurulması sırasında yardım için tavsiyeler sunmaktır. Bu herhangi bir anlamda beceriksizler için yemek kitabı değildir; ama umuyorum size ne hakkında düşünmeye ihtiyacınız olduğunu ve yapılacakların sırasını göstermek şeklinde hizmet verecektir. Bu dokümandaki dizin isimleri bile sizin kullanmaya ihtiyaç duyduklarınızdan farklı olabilir; bazı makinalarda /home yerine /usr/home vardır. Örnek olarak bazı sistem yöneticileri buna /u de r ve bazıları bütün kullanıcılarını doğrudan /usr’ın altına koyarlar! Sizin sisteminiz hakkında kesin bir şey belirtemeyeceğim için isimleri benimkiler gibi kullandım. Benim Slackware dağıtımlarını kullandığımı ve sizin linux çekirdek kaynağını yüklemek ve kendi çekirdeğinizi derlemek için yeterli RAM ve sabit disk alanınızın olduğunu kabul ettiğimi belirtirim. Eğer sisteminiz farklıysa önerilerin bazılarını uygulayamayabilirsiniz. 1.2 Neden güncellemek istiyorsunuz ? Gerekmedikçe bunu yapmayın. (Bu bütün rehberdeki tek en önemli öneridir!) Ama yapmaya mecbur olabileceğiniz zamanlar vardır. Örnek olarak, 4Gb sabit disk kurdum ve anladım ki Slackware 2.0 2Gb’tan daha fazlasına sahip bir sabit diskin olabileceğini bilmiyordu ve korkunç derecede şaşırmıştı. Böylece ben de makinamı Slackware 2.3’e güncellemek zorunda kaldım. Bu güncelleme işlemi çok yorucu oldu. Herşeyi yanlış yaptım fakat şansım yaver gitti ve yanımda çalışan bir başka linux makinasının oluşu beni faciadan korudu. 1.3 Silip tekrar kurmak”zorunda mısınız ? Bu en güvenlidir. Eğer var olan linux sisteminin üstüne kurarsanız; eski ve yeni ikiliklerin, eski ve yeni ayar dosyalarının bir karışımına, yönetmeyi deneyeceğiniz tam bir karmaşaya sahip olmanız olasıdır. Sistemi silip temizlemek ve sonra ihtiyacınız olanı geri koymak zorlayıcı ama temiz bir sonuç almak için etkili bir yoldur (Elbette biz burada bir veya iki paketi güncellemekten değil, yeni bir bütün linux dağıtımı kurmaktan bahsediyoruz! Tekrar yerleşime zorunlu olmayı atlatmanın en iyi yolu, tam olarak, o anki bağımsız parçaları korumaktır - özellikle gcc ve onun kütüphaneleri ve binutils. Eğer kullandığın program güncelse ve zaman zaman yeni kod eklemeleri yaparak bunu sürdürebiliyorsanız, o zaman tam bir güncelleştirmeye ihtiyaç yoktur.) Patrick Volkerding’in belirttiği gibi çalışan bir a.out sisteminin üstüne ELF kurmak felakete bir davetiyedir; en azından, eğer onu denemek için yeteri kadar bilgi sahibiyseniz, bu rehberi okumanıza gerek yok! Bu karmaşanın olmaması için, en iyisi en başından silip tekrar kurun. 1.4 Ne kadar sürecektir ? Elbette sisteminizin ne kadar kompleks olduğuna bağlı. Ama şunu söyleyebilirim, başarılı bir güncellemede yedekleme için 10 saat, girişleri mümkün kılabileceğim noktaya kadar sistemi tekrar inşası için 6 saat, ve bir yarım gün de az önemli olan dosyaları tekrar yerine koymak için harcadım. Zaman geçtikçe hala tam olarak istediğim gibi olmayan küçük noktaları fark etmeye devam ediyorum -karşılaştıkça onları düzeltiyorum - ama temelde, karmaşık bir sistemi tekrar inşa işi için 20 saat yeterli olacaktır. Eğer sabit diskten tekrar kuruyorsanız (ben CDROM kullandım) belki daha az ya da eğer disketlerden kurmaya ihtiyaç duyuyorsanız daha fazla olacaktır. Eğer hızlı bir Pentiumunuz varsa belki daha az, eğer bir 386 ise fazla olacaktır. 2. Yaptığınız her şeyi yazın. Sistem değişimine hazırlanma ve gerçekleştirme işlemlerinde yapacağınız kayıtlar çok değerlidir. Hazırlık olarak yapacağınız yedeklemelerin listesi özellikle önemlidir. 3. Bulunan sistemin tam bir yedeklemesini yapın. Genelde konuşuyorum, yedekler genelde sıradan okunan ortamlara yazılmaya eğilimlidirler. Durum böyle olunca, önemli miktarda dosyayı tekrar yerine koymak için bu tam yedeklemeyi kullanmak istemeyeceksinizdir; üstünde istemeyeceğiniz çok fazla dosya olacak. En iyisi bütünüyle tekrar yerine koyacağımızı bildiğiniz parçaların küçük yedeklerini yaratmaktır. Daha sonra bir örnek demeti sıralayacağım. O zaman neden tam yedeklemeyle başlamalısınız? İki basit nedenden birincisi, yeni sistemin yerleşiminde felaket seviyesinde bir hata yapılması durumunda, başlama noktasına minimum kayıpla geri dönmek için bir yolunuz olacaktır. İkincisi, yeni yerleşime ne kadar hazırlansanız da hiç farketmez, büyük bir olasılıkla bir veya iki önemli dosya gözden kaçabilecektir. 4. /etc ve onun altdizinlerini bir veya daha fazla diskete yedekleyin. Bunları yerine koymayabilirsiniz ama yerleşim sırasında yaratılacak yenileriyle bunları karşılaştırmak zorundasınız. Neden? Çünkü yeni olanlar eskilerde olmayan verileri içerebilir, ya da eski verileri yeni yollarla ifade edebilirler. Protokollerdeki değişimler, yeni araçların eklenmesi, ya da bulunan araçlara yeni nitelikler eklenmesi /etc’nin içerdiği konfigürasyon dosyalarına etki edebilir. Böylece yeni gelişmelerden yararlanmak için eski verilerinizi bu dosyaların içine yazmak zorunda kalacaksınız. 5. Korumak istediğiniz her dosya grubunu ayrı yedekleyin. Bu işin en önemli tarafıdır, ve size yardımcı olabilmek için bütün yapabileceğim bir rehber olması dileğiyle kendi sistemime ne yaptığımı anlatmaktır. Temelde, * Standart linux kurulumunuzun parçası olmayan dosyaları, ya da * Yeni linux kurulumunu yaparken kuracaklarınızdan daha yeni olan dosyaları içeren bütün dizinlere bakmak ve sadece taşımak istediğiniz bu dosyaları ayırmak isteyebilirsiniz. Benim durumumda, aşağıdakilerin herbiri için yedekleme ortamında bir .tgz dosyası yapmayı 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 (ihtiyacım olmayan diğer /usr/local dosyaları da vardı) * /usr/openwin (eğer gerekiyorsa) * /usr/src/linux-1.2.13 (çünkü daha önceden bazı değişiklikler yapmıştım) * /usr/X11R6/lib/X11/app-defaults * /usr/X11R6/lib/X11/xinit (Xfree86’nın geri kalanı tekrar yerleşti) * /var/named * /var/texfonts Endişelenecek hiç spool dosyam olmadığından makinem nispeten kolayca yedeklendi. Bu makinada hiç news spool çalıştırmadım ve sadece iki kullanıcı olduğundan kapatmadan önce bütün mektupları okumak en kolayıydı. Aksi halde, /var/spool dizinleri son dakikada yedeklenmek zorunda kalacaktı. (Ve tabii ki, news kütüphanesi) 6. Yeni yerleşim için açılış disketleri (rootdisk ve bootdisk) hazırlayın. Bunun nasıl yapılacağıyla ilgili ayrıntılar yeni dağıtım rehberinizde bulunacaktır. Bütün bunlar olduktan sonra Büyük An için hazırsınız. Bir sonraki adım sistemi üretimden kaldırır. 7. Girişleri engelleyin ve /root ve /home dizinlerini yedekleyin. Yeni sisteminizi kurmadan önce eski sistemde yapılacak son işlemdir, böylece en halihazırdaki kullanıcı ve kök bilgisini nakledebilirsiniz. 8. Yeni dağıtımın açılış disketlerinden sistemi açın. 9. Linux bölümlerini fdisk ile silin ve tekrar yaratın. Eski sistemi imha edecek olan bu işlemin nasıl yapılacağını yerleşim rehberi açıklayacaktır. Şu andan itibaren önceki adımlarda yaptığınız yedeklere bağımlısınız. 10. Yeni linux dağıtımını çalıştırın. Bunun nasıl yapılacağı konusunda zaten çok sayıda doküman var, bu yüzden herhangi bir ayrıntıya girmiyorum. Yeni sistem kendi sabit diskinden açılış yapabileceği zaman buradan devam edin. Linux kurulumu sırasında kazalar olabileceğinden yol boyunca açılış yapabileceğiniz bir disket hazırladığınızdan emin olun. Geliştirme paketlerini ve çekirdek kaynağını kurduğunuzdan emin olun. 11. Takas bölümleri Sabit diskten açılmış yeni linux sistemiyle /etc/fstab’ı düzenleyin ve kendi takas bölümünüzü ekleyin. Sonra “swapon -a” komutunu çalıştırın. Neden olduğunu bilmiyorum ama Slackware kurulum eğer takas bölümünüz varsa bunu yapmanızı önermiyor. Sonra, yeni sisteminizi açılış yaptırdığınızda ve rc.S tarifi takaslamayı açmaya çalıştığında, fstab dosyasında bölümü bulamıyor ve takaslama mümkün kılınmıyor. Bu adım onu düzeltiyor. 12. Ayarlama verilerini /etc dizinine ve alt dizinlerine tekrar geri koyun. Yukarıda anlatıldığı gibi, bütün eski dosyalarınızı geri /etc’ye kopyalayıp, sonra da herşeyin düzenli çalışmasını bekleyemezsiniz. Bunu bazı dosyalarla yapabiliriniz; örnek olarak, /etc/XF86Config. Bunlar için en iyisi herhangi bir kopyalama yapmadan önce eski ve yeni dosyaları karşılaştırmak için diff’i kullanmaktır. Özellikle yedeklerinizden eski rc dosyalarını kopyalayıp yerine eski ayarlamalarınızı elle düzenleyerek tekrar kurmanızı gerektirecek /etc/rc.d’deki dosyalardaki değişimler için dikkatli olun. Bir kere oldu mu tekrar açılış yapın. 13. Linux çekirdeğini tekrar derleyin Donanımınızı destekleyen bir çekirdek edinmek için bunu yapmak zorunda olabilirsiniz. Ayrıntılar için Kernel-HOWTO(Çekirdek-NASIL)’'ya bakınız. İlk olarak yeniden inşa edilmiş çekirdeği diskete yerleştirin; açılış yapıldığında sabit diske kurun, eğer kullanıyorsanız lilo' yu çalıştırın, ve tekrar açılış yapın. 14. Önceden yaptığınız yedeklerdeki tekrar yerine koyun. İkiliklerin bazıları kaynak dizinden tekrar yerleştirilmek isteyebilir, ben bunu lilo ile yapmak zorunda kaldım, mesela, benim sürümüm Slackware kurulumunda olandan daha yeni olduğundan, /sbin’deki çalıştırılabilir dosyaları saklamak için uğraşmadım. Tekrar yerine konulmuş programları kontrol etmek ve ayar dosyalarının, kütüphanelerin ve benzerlerinin varlığını ve doğruluğunu onaylamak isteyeceksiniz. Bazı durumlarda tekrar yerine koymayı belirli bir sıraya göre yapmak zorunda kalabilirsiniz; yedeklerken notlar aldınız, değil mi? ;-) 15. Güvenliği gözden geçirin. Dosya ve dizin izinlerini kontrol edin. Slackware’in hoşlandığımdan daha çık bir ortama eğilim gösterdiğini buldum, böylece /bin dizinlerindeki dosyaları 755’ten 711 ’e değiştirdim. Ve hatta /sbin'dekileri 700'e. 16. Girişleri mümkün kılın. Artık ayaktasınız ve herşey çalışıyor. Önünüzdeki takibi ufak anlarda, büyük olasılıkla temizleme için ayrıntılar olacak; ama iş yığını sona erdi. Sevinin!