FreeBSD Upgrade Prosedürü (7.x’ten 7.2’ye)
Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYenSdR8' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349
freebsd sistemleri güncellemek için izlenebilecek iki yol var. Bunlardan birisi klasik olarak freebsd kaynak kodlarını sisteme çekip rebuild işlemini yapmak; İkincisi ise 6.3 versiyonundan beri kullanlabilen freebsd-update aracı ile binary güncellemesi yapmaktır. Bu yöntemlerden en paratik olanı süphesiz ki binary güncelleme yöntemidir. İşte bu makalede de, freebsd-update kullanarak FreeBSD 7.0'dan, 7-2'ye nasıl güncelleme yapılabildiği anlatılmaktadır. |
Eğer kaynak koddan, rebuild işlemi yaparak sisteminizi güncellemek isterseniz, daha önce yayınladığım FreeBSD'de cvsup ile sistem güncellemek başlıklı yazıyı inceleyebilirsiniz.
freebsd-update(8)‘in, temel olarak iki kullanım alanı bulunuyor. İlki, güvenlik güncellemelerinin, yeniden derleme ve yükleme işlemine gerek kalmaksızın sisteme geçilebilmesi ve ikincisi ise gene aynı mantıkla sistemin üst sürümlere terfi edilmesi. Bu açıdan oldukça kullanışlı bir araç.
Bu yöntemle sisteminizi 7.x sürümünden, 7.2 sürümüne kolayca upgrade edebilirsiniz. Ben 7.0 olan sistemimi, 7.2'ye upgrade ettim. Aşağıdaki adımları izleyerek sizde upgrade işlemini yapabilirsiniz.
Başlamadan Önce Uyarılar
Upgrade işleminin sorunsuz gitmesi ve sonrasında herşeyin düzgün çalışabilmesi için işe başlamadan önce şu konulara dikkat etmeniz gerekiyor.
-
Hali Hazırda Çalışan Programlar
Upgrade işlemi eski paylaşılmış nesneleri (shared objects) ve kütüphaneleri (libraries) kaldırdığı için sisteminizde çalışan 3. parti yazılımların bozulmasına neden olabilir. Bu nedenle, upgrade işleminden sonra sistmde çalışam eski yazılımların da kaldırılıp yeniden yüklenmesi ya da portupgrade yazılımı ile upgrade edilmesi gerekiyor.
Dolayısı ile zaten çalışmakta olan uygulamalarınızın, upgrade sonrasında da sorunsuz çalışması için bu konuya dikkat etmenizi öneririm. (Tüm 3. parti uygulamaların yeni sürümde de çalışabildiğine emin olun.)
Paketleri kaldırıp yeniden yüklemektense, portupgrade kullanarak upgrade yapmak daha mantıklıdır. portupgrade'e, port ağacının ports-mgmt/portupgrade dizininde bulabilir ve kurabilirsiniz. Sisteminizde port ağacı bulunmuyorsa, Portsnap ile Süratli Ports Collection Güncellemesi sayfasından yararlanarak yükleyebilirsiniz.
İşleme başlamadan önce, port ağacınızı güncellemeniz, portupgrade yazılımını kurmanız yerinde olacaktır.
# cd /usr/ports/ports-mgmt/portupgrade # make install clean
portupgrade ile paket güncelleme işlemi, yazının ilerleyen bölümlerinde, ilgili başlık altında bilahare anltılacaktır.
Kernel'iniz Özelleştirilmişse (Custom Kernel)
Özelleştirilmiş kernel kullanıyorsanız, upgrade öncesi yapmanız gereken bir iki işlem bulunuyor. (Eğer kernel derleme işlemi yapmadıysanız, BU ADIMI ATLAYABİLİRSİNİZ.)
Öncelikli olarak, upgrade işlemi GENERIC diye tabir edilen öntanımlı kernel'in bir kopyasına ihtiyaç duymakta ve bu kernel'in /boot/GENERIC dizininde olması gerekmektedir.
Bu nedenle, sisteminizde ön tanımlı kernelin bulunduğuna emin olun. Eğer yoksa, aşağıdaki yönergelerden hareketle sisteminize yükleyebilirsiniz.
-
Sadece Bir Kez Kernel Derlediyseniz
Bu durumda, orjinal kernel dosyası /boot dizini/kernel.old ismi ile durmaktadır. Bu dizinin ismini aşağıda görüldüğü gibi GENERIC olacak şekilde set ederseniz, upgrade işlemi bu kerneli kullanabilir.
# mv /boot/kernel.old /boot/GENERIC
Bu şekilde freebsd-update GENERIC kerneli kullanabilecektir.
-
GENERIC Kernel'in CD'den Temin Edilmesi
Sistemde, birden fazla sefer kernel derlemesi yaptıysanız, kernel.old dizini bir önceki kernel'in yedeği olacağı için işe yaramaz. Bu durumda, GENERIC kernel'i sisteme CD'den yüklemek icap eder, aşağıdaki adımları izleyerek bu işlemi yapabilirsiniz.
(FreeBSD 7.0 kullandığınınızı varsayarsak) 7.0 cd'sini cdrom'a yerleştirdikten sonra sonra:
# mount /cdrom # cd /cdrom/7.0-RELEASE/kernels/ # sh install.sh GENERIC
Ancak sisteminizde, cdrom olmayabilir ya da elinizde kurulum cd'si yoktur. Bu durumda, aşağıdaki yönegeleri izleyerek GENERIC kernel'i kaynak kodundan kurabilirsiniz.
-
Kaynak Koddan GENERIC Kernel Kurulumu
Ben bu yöntemi kullanmadım ancak FreeBSD Handbook‘unda, işlem adımları şu şekilde belirtiliyor.
# cd /usr/src # env DESTDIR=/boot/GENERIC make kernel # mv /boot/GENERIC/boot/kernel/* /boot/GENERIC # rm -rf /boot/GENERIC/boot
Kernel ile ilgili işlemleri tamamladıktan sonra upgrade işlemine başlayabilirsiniz.
Sistemin Upgrade Edilmesi
Güncelleme için ilk komut şu şekilde:
# freebsd-update upgrade -r 7.2-RELEASE
Sisteme bu komutu verdiğiniz zaman, freebsd-update programı sistemi inceleyerek güncelleme için gerekli olan bilgileri toplar, sonrasında da yüklü olan ve olmayan komponentlerin listelendiği şu çıktıyı veriri.
Looking up update.FreeBSD.org mirrors... 2 mirrors found. Fetching public key from update5.freebsd.org... done. Fetching metadata signature for 7.0-RELEASE from update5.freebsd.org... done. Fetching metadata index... done. Fetching 2 metadata files... done. Inspecting system... done. The following components of FreeBSD seem to be installed: kernel/generic src/base src/bin src/cddl src/compat src/contrib src/crypto src/etc src/games src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin world/base world/dict world/doc world/games world/info world/manpages The following components of FreeBSD do not seem to be installed: world/catpages world/proflibs Does this look reasonable (y/n)? y
“y” diyerek geçtiğimiz bu sorudan sonra, güncelleme için gerekli olan tüm paketler download edilmeye başlanır.
Özel Kernel Kullanıyorsanız
Kernel'iniz özel olarak derlenmişse, ek olarak aşağıdaki çıktıyı da görürsünüz.
WARNING: This system is running a "testkern" kernel, which is not a kernel configuration distributed as part of FreeBSD 7.0-RELEASE. This kernel will not be updated: you MUST update the kernel manually before running "/usr/sbin/freebsd-update install"(Uyarıda belirtilen “testkern” benim kullandığım kernel'in ismidir.)
Bu noktada, update işlemi şimdilik GENERIC kernel üzerinde yapılacağından, uyarıyı dikkate almanıza gerek yoktur. “y” diyerek devam edebilirsiniz.
Download işleminin bitmesinin ardından, indirilen tüm dosyalar sisteme uygulanacaktır, donanımınızın özelliklerine göre bu işlem biraz uzun sürebilir. Ayrıca, bu işlem sırasında yapılandırma dosyaları eski sürüm dosyaları ile birleştirilecektir. (merge)
Ayrıca, bazı dosyalar için da onayınız istenecek ve manuel merge yapmanız gerekecektir.
İkinci adımda, download edilen dosyaları sisteme uyguluyoruz.
# freebsd-update install
Bu komutla ilk olarak kernel ve kernel modülleri patchleniyor. Ardından sistemi reboot etmeniz gerekiyor.
Özel Kernel Kullanıyorsanız
Bu durumda sisteminizi aşağıda görüldüğü şekilde nextboot komutunı vererek GENERIC kernel ile boot edilecek şekilde reboot etmeniz gerekiyor.
# nextboot -k GENERICBöylece sisteme restart komutunu verdiğiniz zaman, açılılşta (upgrade edilen) GENERIC kernel kullanılacaktır.
UYARI: Sisteminizi GENERIC kernel ile boot etmeden önce, GENERIC kernel'in özelleştirilmiş kernel'da kullanılan ve sistemin açılabilmesi için gereken tüm driverlar içerdiğinden emin olun. Ayrıca, özelleştirilmiş kernelde kullanılan tüm kernel modüllerini de GENERIC kernel'e boot/loader.conf dosyasında belirtmek sureti ile yükleyin.
Şimdi sistemi restart edebiliriz.
# shutdown -r now
Sistem açıldıktan sonra, bir kez daha freebsd-update install komutunu vermemiz gerekiyor.
# freebsd-update install
Bu işlem, sistemin upgrade aşamasında nerede olunduğunu kaydetmesinden dolayı, upgrade prosedürünü baştan başlatmayacak, sadece eski paylaşılmış nesneler ve kütüphaneler sistemden kaldırılmasını sağlayacak.
Upgrade işlemi tamamlandı sayılır. Son olarak sistemde daha önceden kurulu olan paketlerin upgrade edilmesi gerekiyor. (Bu yazılımlar upgrade edilmemeleri durumunda, bir önceki işlemle sistemden kaldırılan nesne ve kütüphaneleri kullanıyor olabilecekleri için çalışmayabilirler.)
Upgrade işlemini yazının başında da belirttiğim üzere portupgrade yazılımı ile kolayca yapabiliriz. Sistemde kurulu olan tüm paketleri upgrade etmek için aşağıdaki adımları izleyebilirsiniz.
# portupgrade -f ruby # rm /var/db/pkg/pkgdb.db # portupgrade -f ruby18-bdb # rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db # portupgrade -af
Yukarıdaki işlem adımları, portupgrade'in ruby kullanmasından ötürü önce ruby paketini upgrade edip sonrasında upgrade edilmesi gereken diğer tüm paketleri otomatik olarak upgrade etmektedir. Tüm paketleri bir seferde upgrade etmek istemiyorsanız, portupgrade -af yerine portupgrade <paketadi> komutunu kullanabilirsiniz
Paketlerin upgrade edilmesinin ardından, bir freebsd-update'i bir kez daha çalıştırıyoruz.
# freebsd-update install
Son olarak sistemi yeniden reboot etmek gerekiyor, ancak eğer custom kernel kullanıyorsanız, bu aşamada kernelinizi herzamanki gibi yeniden derleyerek kurmalısınız. Sonrasında reboot edebilirsiniz.
Eğer, kernel'iniz custom değilse direk olarak reboot edin.
# shutdown -r now
Upgrade işlemi tamamlandı. uname -a komutunu verdiğiniz zaman FreeBSD'nin 7.2'ye upgrade edilmiş olduğunu görmeniz gerekir.
# uname -a
Çıktı aşağıdakine benzer olacaktır.
FreeBSD freebsd.ebiuniverse.com 7.2-RELEASE FreeBSD 7.2-RELEASE #0: Fri May 1 08:49:13 UTC 2009 [email protected]:/usr/obj/usr/src/sys/TESTKERN i386
Herşeyin yolunda gittiğinden emin olmak için, sistem üzerindeki tüm uygulamalarınızın düzgün olarak çalışıp çalışmadığını kontrol etmenizi öneririm.
Hepsi bu kadar.
Bu yazılar da ilginizi çekebilir:
- FreeBSD Sistemlerde Kurulu Paketlerin Update Edilmesi
- FreeBSD – pkg_add: File unavailable (file not found, no access)
- Custom Kernel Kurulumu.
- FreeBSD’de cvsup ile sistem güncellemek.
- FreeBSD 6.2 Kurulumu – Part I: Başlangıç
Bende 6.4-RELEASE var ve kerneline dokunulmamış yani generic. Elimde 7.2 CD’ler var yeni indirdim ve bu CD’ler ile sistemi 7.2’ye güncellemek istiyorum, nasıl yaparım acaba? Yukarıdaki prosedürde int. bağlantısı oldugu varsayılıyor fakat FreeBSD makinamın bulunduğu yerde int. yok. dolayısı ile “update.FreeBSD.org” e bağlanma yerine CD’den okutarak devam etmek mümkün müdür, mümkünse, nasıl yapılır, yardımcı olursanız sevinirim.
Teşekkürler.
[Cevapla]
Merhaba,
Yapmak istediğiniz major upgrade’e giriyor. İnternet bağlantınız yoksa kaynak koddan rebuild world yaparak upgrade yapabilirsiniz.
Ben denemedim ama şöyle olabilir;
sysinstall ile 7.2’nin kaynak kodlarını sisteminize aktardıktan sonra rebuilding world işlemi yapabilirsiniz. Bu konuyla ilgili bir yazı yazmıştım: http://www.syslogs.org/2007/12/freebsdde-cvsup-ile-sistem-guncellemek/ (siz kaynak kodları cd’den temin edeceğiniz için cvsup adımlarını geçip buildworld ve sonrasındaki işlemleri yapmalısınız.)
Ayrıca, FreeBSD Handbook’unu takip ederek upgrade yapmanızı öneririm.
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
Son olarak, upgrade yapmadan önce muhakkak backup alın.
Kolay gelsin.
[Cevapla]
Merhaba,
freebsd-update install kodunu girince şöyle bişeyler çıkıyor
No updates arc available to install.
Run /usr/sbin/freebsd-update fetch first.
Yazıyor hiç birşey anlamadım ve
# portupgrade -f ruby
# rm /var/db/pkg/pkgdb.db
# portupgrade -f ruby18-bdb
# rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db
# portupgrade -af
Bu komutlarıda girmiyor 7.2 ‘ye güncelliyemiyorum YARDIM !!!
[Cevapla]
Harika döküman, hatasız ilerledim teşekkür ederim
[Cevapla]