FreeBSD’de cvsup ile sistem güncellemek.
Cvsup, ağ üzerinden sistem dosyalarını güncellemek için kullanılan bir yazılımdır. Bu yazılımı kullanarak, freebsd için en güncel kaynak kodlarının bulunduğu bir Cvsup repository servera bağlanmak sureti ile, kendi kaynak kodlarınızı güncelleyebilir, sisteminizi update edebilirsiniz.
Cvsup update işlemi için so-called pull model denilen bir yöntem kullanır; bu modelde, sunucunuz (client), güncel kodların bulunduğu bir Cvsup repository sunucusuna, güncellemelerle ilgili bir istek gönderir ve repository server, client'a güncel dosyaların bir listesi ile güncelleme tarihini bildirir. Client bu listeyi inceleyerek, kendi dosyaları ile karşılaştırır ve güncel olmayan dosyalar için Cvsup sunucusundan istekte bulunur. Böylece Cvsup sunucusu istenen dosyaları client'a iletir.
Bu işlemi yapabilmek için cvsup yazılımını kurmalı ve ilgili konfigürasyon dosyasını ihtiyaçlarınız doğrultusunda düzenlemelisiniz.
Temel olarak, cvsup ile sistem güncellemesi şu şekilde yapılır;
Ben Cvsup yazılımının cvsup-without-gui isimli komut satırından çalışan versiyonunu kullanıyorum.
Öncelikle, cvsup'i kuralım.
Not: Bu dökümanda Cvsup kurulumu ports'tan yapılmaktadır. Eğer sisteminizi yeni kurduysanız ve ports collection'u yüklemediyseniz, aşağıdaki dizin sisteminizde bulunmayacaktır. Eğer dizinin olmadığı yönünde hata alıyorsanız Portsnap ile Ports Collection kurulumu yazısında anlatıldığu şekilde Ports kurulumunu yapın.
# cd /usr/ports/net/cvsup-without-gui/ # make install clean
Herhangi bir hata almadıysanız Cvsup kurulmuş demektir.
#pkg_info |grep cvsup
komutu ile baktığınız zaman aşağıdaki gibi bir çıktı alırsınız.
cvsup-without-gui-16.1h_2 General network file distribution system optimized for CVS
Cvsup kurulduktan sonra yapmamız gereken şey, supfile isimli konfigürasyon dosyasında ihtiyacımız olan düzenlemeleri yapmak.
/usr/share/examples/cvsup/ dizini altında, farklı amaçlara yönelik olarak düzenlenmiş, örnek konfigürasyon dosyaları bulunmaktadır.
Biz aynı dizin altında bulunan stable-supfile isimli dosyayı kullanacağız.
Bu dosyanın içeriği ve editlememiz gereken kısımları şu şekildedir.
*default host=CHANGE_THIS.freebsd.org – Güncel dosyaların alınacağı cvsup server. (örn cvsup.tr.freebsd.org)
*default base=/var/db – Cvsup serverdan alınacak dosyaların bilgilerinin kaydedileceği dizin. (Eğer yoksa oluştrmanız gerekir.)
*default prefix=/usr – Indirilen dosyaların kaydedileceği alan.
*default release=cvs tag=RELENG_6 – Sahip olduğunuz FreeBSD sürümü ile aynı olmalıdır. FreeBSD 5x kullanıyorsanız, RELENG_5 yapmalısınız.
src-all – Bu ön tanımlı olarak açıktır. Bu durumda tüm kaynak kodları güncellenecektir. Eğer belli kaynak kodlarını güncellemek istiyorsanız, bu satırı # ile comment out edebilir ve aşağısında bulunan kategorilendirilmiş kaynak kodlarının comment out'larını kaldırabilirsiniz.
#src-base
#src-bin
#src-cddl
#src-contrib
#src-etc
…
Supfile dosyasını editleyip, gerekli düzenlemeleri yaptıktan sonra, güncel dosyaları Cvsup sunucusundan çekmek için -şart olmasa da-
#cd /usr/src
diyerek src dizinine girin ve aşağıdaki komutu çalıştırın.
cvsup -g -L 2 /usr/share/examples/cvsup/stable-supfile
Bu komutu verdiğimiz zaman, yazının başında bahsettiğim, güncel dosyaların belirlenmesi ve sunucudan istenerek elde edilmesi işlemleri gerçekleşir. Çok fazla kod olduğu için, biraz uzun sürmesi muhtemeldir. Bu işlem bittiği ve güncel kodlar sorunsuzca alındıktan sonra, sisteminizi güncelleme işlemine geçebilirsiniz. Bu işleme Rebuilding world denmekte.
Rebuild işlemini yapmak için aşağıdaki komutları sırası ile çalıştırın.
Not1: Rebuilding işlemine ait her türlü komut /usr/src dizini altındayken çalıştırılmalıdır.
Not2: Not: Eğer sistem güncelleme sırasında, ayını zamanda custom bir kernel dosyası yüklemek istiyorsanız bkz: Custom Kernel Kurulumu
# make buildworld* # make buildkernel # make installkernel # reboot
(* FreeBSD 7.0 kurulumunda make buildworld kisminda make: don't know how to make… diye başlayan bir hata almanız durumunda.
make buildworld DESTDIR=/foo komutunu kullanabilirsiniz. Ben de işe yaradı.)
Şimdiki aşamada, sistemi single user mode'da açmanız gerekiyor. Açılış sırasında, açılış seçeneklerinden loader prompt'u seçip, boot -s komutunu verdiğiniz zaman sistem user single mode'da açılacaktır. Bu mode'da iken aşağıdaki komutları çalıştırarak building world işlemini sonlandırabilirsiniz.
># mergemaster -p # make installworld # mergemaster # reboot
Make world işlemi /etc /usr ve /var dizinindeki bazı yapılandırma dosyalarını değiştirir ve yazılımlar güncellendiği halde yapılandırma dosyaları eski kalacaktır. Mergemaster değişen dosyaları da güncellemeyi sağlar.
Bu işlemi yapmadan önce muhakkak etc dizininizin bir yedeğini alın.
#cp -pR /etc /etc.bck
mergemaster, /var/tmp/temproot altına attığı gerekli dosyaları karşılaştırma işlemini yapacaktır.
d (delete) : Güncel dosyayı siler.
i (install): Güncel dosyayı yükler.
Kaynaklar:
FreeBSD Handbook – Using Cvsup:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/cvsup.html
FreeBSD Handbook Rebuilding World:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
Bu yazılar da ilginizi çekebilir:
- Portsnap ile Süratli Ports Collection Güncellemesi.
- FreeBSD Upgrade Prosedürü (7.x’ten 7.2’ye)
- Portaudit ile Kurulu Paketler için Zafiyet Takibi
- FreeBSD 6.2 Kurulumu – Part V: Ports Collection
- Custom Kernel Kurulumu.
Yorumlar
Trackbacks
- FreeBSD'yi 7.x'ten 7.2'ye Güncellemek | FreeBSD Upgrade 7.x to 7.2 | Syslogs
- FreeBSD Upgrade Prosedürü (7.x’ten 7.2′ye) | Açıkkod.org
Yorumda bulunun.