FreeBSD 10.1’de Port Kurulumu ve Yönetimi
FreeBSD, açık kaynaklı bir işletim sistemidir ve yazılım kurulumunu ve yönetimini kolaylaştıran güçlü bir araç olan “Ports Collection” ile birlikte gelir. Ports Collection, geliştiricilerin ve sistem yöneticilerinin, kaynak kodundan derlenerek veya önceden derlenmiş ikili paketler aracılığıyla geniş bir yazılım yelpazesini kolayca kurmasına ve yönetmesine olanak tanır. Bu makalede, FreeBSD 10.1’de Ports Collection’ı nasıl kuracağınızı, kullanacağınızı ve yöneteceğinizi detaylı bir şekilde ele alacağız.
Ports Collection Nedir?
Ports Collection, FreeBSD’nin yazılım dağıtım mekanizmasının temel taşlarından biridir. Temel olarak, bu sistem, çeşitli açık kaynaklı yazılımların derlenmesi ve kurulması için gerekli olan tüm kaynakları, yapılandırma dosyalarını ve talimatları içeren bir dizin yapısıdır. Her bir yazılım için ayrı bir “port” bulunur. Bir port, yazılımın kaynağını indirme, bağımlılıklarını çözme, derleme ve kurma işlemlerini otomatikleştiren bir dizi betik ve Makefile içerir.
Ports Collection’ın temel avantajları şunlardır:
* Esneklik: Yazılımları kaynak kodundan derlemek, sisteminize özel olarak optimize etmenize ve istediğiniz özellik setini seçmenize olanak tanır.
* Kolaylık: Karmaşık derleme süreçlerini ve bağımlılık yönetimini büyük ölçüde basitleştirir.
* Güncellik: Portlar genellikle en son kararlı sürümleri içerir ve güncellemeler kolayca uygulanabilir.
* Sistem Bütünlüğü: Kurulumlar, FreeBSD’nin dosya sistemi hiyerarşisine uygun şekilde gerçekleştirilir ve sistemin kararlılığını bozmaz.
* Paket Yönetimi Entegrasyonu: Ports Collection, aynı zamanda önceden derlenmiş ikili paketleri (pkg) yönetmek için de kullanılır, bu da kurulumları daha da hızlandırır.
Ports Collection’ın Kurulumu ve Güncellenmesi
FreeBSD 10.1’de Ports Collection genellikle kurulum sırasında otomatik olarak kurulur. Ancak, eğer kurulu değilse veya güncel değilse, manuel olarak kurabilir ve güncelleyebilirsiniz.
1. Ports Collection’ı Güncelleme
Ports Collection’ı güncel tutmak, en son yazılım sürümlerine erişim sağlamak ve güvenlik açıklarını kapatmak için kritik öneme sahiptir. Güncelleme işlemi portsnap komutu ile yapılır.
* Ports Snapshot’larını Alma:
İlk olarak, Ports Collection’ın en son anlık görüntüsünü (snapshot) indirmeniz gerekir. Bu, yerel Ports ağacınızın uzak bir depodaki en son sürümle senkronize edilmesini sağlar.
sudo portsnap fetch
Bu komut, Ports Collection’ın tam bir kopyasını /usr/ports dizinine indirir. Bu işlem, ilk kurulumda biraz zaman alabilir çünkü tüm Ports ağacını indirir.
* Ports Snapshot’larını Güncelleme:
Daha sonraki güncellemeler için, sadece değişiklikleri indirmek yeterlidir.
sudo portsnap fetch update
Bu komut, önceki fetch işleminden bu yana yapılan değişiklikleri indirir ve yerel Ports ağacınızı günceller. Düzenli olarak (örneğin, haftalık olarak) bu komutu çalıştırmanız önerilir.
2. Ports Collection’ı Manuel Olarak Kurma (Gerekirse)
Eğer Ports Collection’ınız hiç kurulu değilse, portsnap komutu çalışmayacaktır. Bu durumda, Ports ağacını manuel olarak indirmeniz gerekebilir.
* Ports Snapshot’ını İndirme:
Bir tarayıcı veya fetch komutu ile FreeBSD web sitesinden en son Ports ağacı snapshot’ını indirmeniz gerekir. Snapshot dosyaları genellikle .tar.gz veya .tar.xz uzantılıdır.
Örneğin:
fetch http://ftp.freebsd.org/pub/FreeBSD/ports/snapshots/ports.tar.gz
(URL’nin güncel ve doğru olduğundan emin olun, FreeBSD’nin resmi FTP sitelerini kontrol edin.)
* Arşiv Dosyasını Çıkarma:
İndirdiğiniz arşiv dosyasını /usr/ports dizinine çıkarın:
sudo tar -C /usr/ports -xzf ports.tar.gz
veya .xz uzantılı ise:
sudo tar -C /usr/ports -xJf ports.tar.xz
Bu işlemden sonra, portsnap fetch update komutunu kullanarak Ports ağacınızı güncel tutmaya devam edebilirsiniz.
Port Kurulumu
Ports Collection ile yazılım kurmanın iki ana yolu vardır: kaynak kodundan derleyerek veya önceden derlenmiş ikili paketleri kullanarak.
1. Kaynak Kodundan Derleyerek Kurulum (make install)
Bu yöntem, yazılımı sisteminize özel olarak optimize etmenize ve yapılandırma seçeneklerini belirlemenize olanak tanır. Ancak, derleme süreci zaman alabilir ve sistem kaynaklarını yoğun kullanabilir.
* Port Dizininin Bulunması:
Kurmak istediğiniz yazılımın port dizinini bulun. Genellikle /usr/ports/category/portname şeklinde bir yapıdadır. Örneğin, Apache web sunucusunu kurmak istiyorsanız, port dizini /usr/ports/www/apache24 olabilir.
* Port Dizinine Gitme:
Terminalde ilgili port dizinine gidin:
cd /usr/ports/www/apache24
* Yapılandırma Seçeneklerini Ayarlama (Opsiyonel):
Birçok port, derleme sırasında etkinleştirilebilecek veya devre dışı bırakılabilecek çeşitli yapılandırma seçenekleri sunar. Bu seçenekleri görmek ve ayarlamak için make config komutunu kullanın:
sudo make config
Bu komut, bir grafiksel (veya metin tabanlı) arayüz açar ve mevcut seçenekleri işaretleyip kaldırmanıza olanak tanır. Ayarlamalarınızı yaptıktan sonra kaydedin.
* Derleme ve Kurulum:
Yapılandırma seçeneklerini ayarladıktan sonra, yazılımı derlemek ve kurmak için make install komutunu kullanın:
sudo make install clean
* make install: Yazılımı derler, kurar ve sisteminize entegre eder.
* clean: Kurulum tamamlandıktan sonra derleme sırasında oluşturulan geçici dosyaları temizler. Bu, disk alanından tasarruf etmenizi sağlar.
Bu komut çalışırken, Ports sistemi bağımlılıkları otomatik olarak kontrol edecek ve gerekirse onları da kuracaktır.
2. Önceden Derlenmiş İkili Paketleri Kullanarak Kurulum (pkg install)
Bu yöntem, yazılımı çok daha hızlı kurmanızı sağlar çünkü derleme işlemi önceden yapılmıştır. Çoğu kullanıcı için bu, tercih edilen yöntemdir. FreeBSD 10.1’de ikili paketleri yönetmek için pkg komut satırı aracı kullanılır.
* Paket Veritabanını Güncelleme:
Kurulum yapmadan önce, yerel paket veritabanınızı uzak depolardaki güncel bilgilerle senkronize etmeniz önerilir:
sudo pkg update
* Paket Kurma:
Belirli bir paketi kurmak için pkg install komutunu kullanın. Örneğin, nano metin düzenleyicisini kurmak için:
sudo pkg install nano
pkg komutu, siz onay verdiğinizde gerekli tüm bağımlılıkları da otomatik olarak kuracaktır.
* Birden Fazla Paket Kurma:
Birden fazla paketi aynı anda kurabilirsiniz:
sudo pkg install nano htop mc
Port Yönetimi
Ports Collection, sadece yazılım kurmakla kalmaz, aynı zamanda mevcut yazılımları yönetmek için de çeşitli araçlar sunar.
1. Paketleri Güncelleme
Sistemdeki tüm yüklü paketleri güncel sürümlerine yükseltmek için:
sudo pkg upgrade
Bu komut, sisteminizde yüklü olan tüm paketleri kontrol eder ve mevcut olanlardan daha yeni sürümleri varsa bunları indirip kurar.
2. Paketleri Kaldırma
Bir paketi sisteminizden kaldırmak için pkg delete komutunu kullanın:
sudo pkg delete nano
Bu komut, belirtilen paketi ve artık ihtiyaç duyulmayan bağımlılıklarını kaldıracaktır.
3. Yüklü Paketleri Listeleme
Sisteminizde yüklü olan tüm paketleri listelemek için:
pkg info
Belirli bir paketin bilgilerini görmek için:
pkg info nano
4. Kaynak Kodundan Kurulmuş Portları Yönetme
Eğer bir portu kaynak kodundan derleyerek kurduysanız, o portun dizininde (/usr/ports/category/portname) çeşitli yönetim komutlarını kullanabilirsiniz.
* Portu Güncelleme (Yeni Sürüme Yükseltme):
Eğer Ports ağacınız güncel ise ve kurduğunuz bir yazılımın yeni sürümü mevcutsa, aynı port dizininde make deinstall ve ardından make install clean komutlarını çalıştırarak yükseltme yapabilirsiniz. Ancak, daha modern bir yaklaşım portmaster veya poudriere gibi araçları kullanmaktır (bunlar daha sonraki bölümlerde ele alınacaktır).
* Portu Kaldırma:
Kaynak kodundan kurduğunuz bir portu kaldırmak için, ilgili port dizinine gidin ve make deinstall komutunu çalıştırın:
cd /usr/ports/www/apache24
sudo make deinstall
Bu komut, yazılımı sisteminizden kaldırır.
* Portu Temizleme:
Derleme sırasında oluşturulan geçici dosyaları temizlemek için:
cd /usr/ports/www/apache24
sudo make clean
5. Bağımlılıkları Yönetme
Ports Collection ve pkg aracı, yazılımların bağımlılıklarını otomatik olarak yönetir. Bir yazılım kurduğunuzda, gerekli olan diğer tüm yazılımlar da otomatik olarak kurulur. Benzer şekilde, bir yazılımı kaldırdığınızda, artık ihtiyaç duyulmayan bağımlılıkları da kaldırılabilir.
* Kullanılmayan Bağımlılıkları Temizleme:
Zamanla, kaldırılan paketlerden geriye kalan ve artık hiçbir yazılım tarafından kullanılmayan bağımlılıklar olabilir. Bunları temizlemek için:
sudo pkg autoremove
Gelişmiş Port Yönetimi Araçları
FreeBSD topluluğu, port yönetimini daha da kolaylaştıran güçlü araçlar geliştirmiştir. Bunlardan en popülerleri portmaster ve poudriere‘dir.
1. Portmaster
portmaster, portları derlemek, güncellemek ve kaldırmak için kullanılan popüler bir komut satırı aracıdır. make komutunu daha akıllı bir şekilde kullanarak, portları bağımlılıkları ile birlikte yönetmenizi sağlar.
* Portmaster’ı Kurma:
portmaster genellikle Ports Collection’da bulunur. Eğer kurulu değilse, pkg ile kurabilirsiniz:
sudo pkg install portmaster
* Portmaster Kullanımı:
* Tüm Sistemdeki Portları Güncelleme:
Bu komut, tüm yüklü portları ve onların bağımlılıklarını günceller.
sudo portmaster -a
-a bayrağı “all” anlamına gelir.
* Belirli Bir Portu Güncelleme:
Sadece belirli bir portu (ve bağımlılıklarını) güncellemek için:
sudo portmaster www/apache24
* Yeni Portları Kurma:
portmaster ile yeni portlar kurmak da mümkündür. Bu, make install clean ile aynı işlevi görür ancak bağımlılıkları daha iyi yönetir.
sudo portmaster -i www/apache24
-i bayrağı, kurulumdan önce sizi bilgilendirme ve onay isteme anlamına gelir.
* Portları Kaldırma:
Bir portu kaldırmak için:
sudo portmaster -d www/apache24
-d bayrağı, portu ve onun artık kullanılmayan bağımlılıklarını kaldırmayı belirtir.
portmaster‘ın birçok seçeneği vardır. Detaylı bilgi için man portmaster komutunu kullanabilirsiniz.
2. Poudriere
poudriere, özel ikili paket depoları oluşturmak için kullanılan daha gelişmiş bir araçtır. Bu, özellikle birden fazla FreeBSD sistemi yöneten ve kendi özel derlenmiş paketlerini dağıtmak isteyen kuruluşlar için çok faydalıdır. poudriere ile şunları yapabilirsiniz:
* Belirli bir FreeBSD sürümü için temiz bir derleme ortamı oluşturabilirsiniz.
* Portları kendi sunucunuzda derleyerek, güncel ve optimize edilmiş ikili paketler oluşturabilirsiniz.
* Bu paketleri kendi yerel pkg deposu olarak kullanabilirsiniz.
poudriere kurulumu ve kullanımı, portmaster‘a göre daha karmaşıktır ve genellikle ayrı bir makalede ele alınması gereken bir konudur. Ancak, büyük ölçekli sistemlerde yazılım yönetimi için güçlü bir çözüm sunduğunu bilmek önemlidir.
Güvenlik ve En İyi Uygulamalar
* Düzenli Güncelleme: Ports Collection’ı ve yüklü paketleri düzenli olarak güncellemek, güvenlik açıklarını kapatmak ve en son özellikleri elde etmek için hayati önem taşır. sudo portsnap fetch update ve sudo pkg upgrade komutlarını düzenli olarak çalıştırın.
* Minimal Kurulum: Sadece ihtiyacınız olan yazılımları kurun. Gereksiz yazılımlar, güvenlik risklerini artırabilir ve sistem kaynaklarını tüketebilir.
* Güvenilir Kaynaklar: Yazılımları her zaman resmi FreeBSD Ports Collection’dan veya güvenilir depolardan indirin.
* Yapılandırma Seçenekleri: Kaynak kodundan derleme yaparken, sadece ihtiyacınız olan özellikleri etkinleştirin. Bu, derleme süresini kısaltır ve daha güvenli bir sistem oluşturmanıza yardımcı olur.
* sudo Kullanımı: Port kurulumu ve yönetimi işlemleri genellikle root yetkisi gerektirir. Bu nedenle, sudo komutunu kullanarak bu işlemleri gerçekleştirin. Ancak, sudo‘yu gereksiz yere kullanmaktan kaçının ve sadece gerekli komutlar için yetki verin.
* Logları Kontrol Etme: Kurulum veya güncelleme sırasında herhangi bir hata ile karşılaşırsanız, sistem loglarını (/var/log/messages gibi) kontrol edin.
Sonuç
FreeBSD 10.1’de Ports Collection, yazılım kurulumunu ve yönetimini son derece esnek ve güçlü hale getirir. Kaynak kodundan derleme yapma yeteneği, sisteminizi özel ihtiyaçlarınıza göre optimize etmenizi sağlarken, pkg aracı ile önceden derlenmiş paketleri kullanarak kurulumları hızlandırabilirsiniz. portsnap ile Ports ağacınızı güncel tutmak, pkg ile paketlerinizi yönetmek ve portmaster gibi gelişmiş araçları kullanarak süreci daha da kolaylaştırmak, FreeBSD sisteminizi verimli ve güvenli bir şekilde çalıştırmanın temel adımlarıdır. Bu makalede sunulan bilgiler, FreeBSD 10.1’de Ports Collection’ı etkili bir şekilde kullanmaya başlamanız için sağlam bir temel oluşturacaktır.