FreeBSD – pkg_add: File unavailable (file not found, no access)
Herhangi bir nedenle son sürüme upgrade edemediğiniz (etmek istemediğiniz) eski sürüm bir FreeBSD’de pkg_add kullanarak paket yüklemek istediğiniz zaman aşağıdaki gibi bir hata ile karşılaşabilirsiniz:
Error: Unable to get ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.0-release/Latest/xxx.tbz: File unavailable (e.g., file not found, no access) pkg_add: unable to fetch 'ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.0-release/Latest/xxx.tbz' by URL
Bu problemin nedeni eski sürüm FreeBSD’lere ait paketlerin FreeBSD ftp sunucularında sürüm ismi ile bulunmamasıdır.
Yukarıdaki örneğe bakarsanız, FreeBSD 8.0 i386 bir sistem için kurulmak istenen paket ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.0-release/Latest/ adresinde aranmaktadır. Oysa ftp sunucusunda 8-0 sürümü için paketler ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/ dizininde bulunmaktadır.
Böyle bir durumda pkg_add aracı ile paket yüklemek için PACKAGESITE değişkenini doğru ftp dizinine bakacak şekilde set etmek gerekmektedir.
Bu işlem setenv komutu ile yapılabilir:
Portaudit ile Kurulu Paketler için Zafiyet Takibi
Portaudit, FreeBSD sistemlerde kurulu bulunan paketlerde rapor edilmiş bir güvenlik açığı bulunup bulunmadığını kontrol eden ve raporlayan oldukça kullanışlı ve küçük bir uygulamadır. Bu şekilde sisteminizde bulunan paketlerde olası bir açıktan kısa bir sürede haberdar olma şansınız bulunur. |
Sistemde bulunan paketler, genel sistem güvenliğinin önemli bir unsuru olduğundan, kullandığınız paketlerin zafiyet durumlarını sürekli olarak gözlem altında tutmanızı tavsiye ederim. Yazının devamında portaudit kurulumu ve kullanımı ile ilgili bilgileri bulabilirsiniz.
FreeBSD Sistemlerde Kurulu Paketlerin Update Edilmesi
FreeBSD sistemlerde, halihazırda kurulu olan paketlerin yeni versiyonlara kolayca update edilebilmesi için kullanılabilecek portupgrade, portmanager ve portmaster gibi yazılımlar bulunuyor. Malum, FreeBSD port ağacı sürekli güncellendiği için hali hazırda kurulu paketler kısa zaman sonra out-of-date oluyorlar. Dolayısı ile sürekli güncelleme yapılması gerekiyor.
Ben paketlerin update işlemleri için yukarıda bahsettiğim yazılımlardan portupgrade’i kullanıyorum. Aslında blogdaki bazı konularda portupgrade lafı geçiyor ancak detaylı olarak hiç değinmemiştim. Bu nedenle bu yazıda, portupgrade kullanarak halihazırda kurulu olan paketlerin nasıl update edilebileceğine değinmek istiyorum.
Php4’ten Php5’e Upgrade
FreeBSD sunucunuzda yüklü olan php4 ‘ü php5 ‘e terfi etmek için, bir port management aracı olan portmaster yazılımından yararlanabilirsiniz. Böylece, php4 ‘ü sisteminizden kaldırmanıza gerek kalmadan php5 ‘e gerekli tüm paketlerle birlikte kolayca upgrade edebilirsiniz. |
İşte nasıl yapıldığı;
Çok küçük ama bir o kadar kullanışlı olan portmaster FreeBSD ‘nin port collections ‘ında bulunuyor. İşe portmaster kurulumu ile başlayın:
# cd /usr/ports/ports-mgmt/portmaster # make install clean
FreeBSD Ports Reinstall – FORCE_PKG_REGISTER
Üzerinde FreeBSD çalışan sisteminizde, daha önceden ports collection üzerinden kurmuş olduğunuz bir paketin ek bir modülünü, eski kuruluma ait dosyaları silmeden üzerine yazmak sureti ile devreye almak isteyebilirsiniz. Bunun için gerekli düzenlemeleri yapıp ilgili ports dizininde “make install” komutunu çalıştırdığınız zaman aşağıdaki hatayı almanız muhtemeldir. |
An older version of lang/php5-extensions is already installed (php5-extensions) You may wish to ``make deinstall'' and install this port again by ``make reinstall'' to upgrade it properly. If you really wish to overwrite the old port of lang/php5-extensions without deleting it first, set the variable "FORCE_PKG_REGISTER" in your environment or the "make install" command line. *** Error code 1
Portsnap ile Süratli Ports Collection Güncellemesi.
Portsnap, FreeBSD’lerde port kurulumu ve güncellemesi için hızlı bir alternatif sunan güzel bir sistem. Ben genelde alışkanlıklarım nedeni ile bu işler için cvsup kullanan ve portsnap’a pek dokunmayan biriyimdir. Ancak bazı zamanlarda alışkanlıkların dışına çıkmak ve zaman kazanmak gerekebilir. İşte bu noktada portsnap tam da aradığınız bir yöntem olabilir.
Portsnap kısaca, FreeBSD ports collection’unun güvenli bir şekilde yayınlanmasını sağlayan bir sistem. Bu yöntem ile önceden oluşturulmuş güncel bir port ağacına ait snapshot’ı HTTP üzerinden sisteminize indirip kurabiliyorsunuz; ya da daha önceden kurulmuş port ağacını güncelleyebiliyorsunuz.
Kurulum ve kullanım:
Portsnap FreeBSD 6.0 ve daha yeni sürümlerde default olarak gelmektedir. Yani bu sürümleri kullanıyorsanız portsnap kurulumu yapmanıza gerek yok. Ben genelde 6.0 ve üzeri sürümleri kullandığım için portsnap kurulumuna detaylı bir şekilde değinmeyeceğim. Ancak eğer sisteminizde ports yüklü durumdaysa, /usr/ports/sysutils/ dizini altında portsnap ‘ı bulabilirsiniz. Bu dizinde make install clean demeniz kurulum için yeterli olur. Eğer FreeBSD’nin 6.0 öncesi bir sürümünü kullanıyorsanız ve ports sisteminizde yüklü değilse CD’den ports kurulumu için http://www.syslogs.org/2007/12/freebsd-62-kurulumu-part-v-ports-collection/ sayfasından yararlanabilirsiniz.
Portsnap’ın /etc/ dizini altında portsnap.conf isimli küçük bir configuration dosyası var. Aslen bu dosyada herhangi bir düzenleme yapmanıza gerek yok; default değerler ile sorunsuz çalışacaktır.