FreeBSD Paketleri Nasıl Oluşturur
FreeBSD projesi, yalnızca sürümler ve zaman zaman STABLE dalları için paketler oluşturmak için kullanılır. Eski paket üreticileri Portbuild adında dağıtılmış bir sistem kullandılar. Paketleri oluşturmak için büyük 2GB-4GB'lık küçük makineler kümesini kullanır. Bu, hataya eğilimli ve yavaştı, çoğunlukla eski makinelerden dolayı. Tam bir yapım hala bir hafta sürebilir. Günümüzde paketler Poudriere kullanan tek büyük makineler kullanılarak üretilmektedir. ( Brian Drewery web sayfasından ).
Ayrıca bkz: FreeBSD'de bir paket ve bağlantı noktası karışımını güncelleme
FreeBSD, Solaris ve Windows gibi gelişmekte olan bir ABI'ye (ve API) sahipken, Linux'un kararlı (durgun?) Bir ABI (ve API) var, bu yüzden Linux eski ikili dosyaları ile daha yeni bir işletim sistemi sürümünde çalışmaya devam ederken, Linux olmayan işletim sistemleri ile bu t Daima durumdur (bazen öyledir).
Kullanmaya pkg lock
devam etmek baş ağrısına yol açabilir , ancak yükseltmeye çalıştığınızda kilitlenir (bir uyarı sunar) pkg upgrade
, daha yüksek numaralı sürümlerin daha iyi (arzu edilir) olduğunu ve yapmak istediğiniz bir şey olduğunu varsayar - bu yüzden izin ister, ve izin verebilirsiniz, ancak başka bir şeyin kırılmayacağını garanti etmez. Yukarıdaki URL'ye veya şu tartışmaya bakın: " Bir OS sürümü için pkg aracılığıyla dağıtılan ikili paketlerin sürümlerini kilitlemek için FreeBSD'yi tercih eder misiniz? ".
Bir paket bazen kilitliyse , kilidini açmak ve yükseltmeyi yapmak için izin vermeniz gerekir, ancak bu bir paket (ve tüm bağımlılıkları) için işe yarayacaktır , başka bir şeyin yeni kütüphanelerle uyumlu olmayacağına dair bir güvence yoktur ( ve dolayısıyla da, yükseltme gerekir eğer biri şu anda mevcuttur).
Brian Drewery'nin Blogu: " FreeBSD Dergisi: Poudriere " opines:
"Sunucularınızda portmaster, portupgrade ve portları kullanmayı bırakın ve paketlere geçin.
Poudriere ile kendi paket yapılarınızı kurmak sadece birkaç dakikanızı alır ve gelecekte size çok zaman kazandıracaktır.
...
Birden fazla FreeBSD sistemi kullanıyorsanız ve zaten paketleri kullanmıyorsanız, kullanmalısınız. Yalnızca 20 sunucum var, ancak her sistemde port oluşturmak çok zamanımı aldı ve üretim makinelerinde kaynakları boşa harcadı. Birden çok sunucuda bağlantı noktaları oluştururken, seçeneklerini veya sürümlerini senkronize etmek çok kolaydır. Bir sistem üzerinde bir kez paketler oluşturarak, sistemlerimdeki yükü azalttım, yapmak zorunda olduğum iş miktarını azalttım ve tüm sistemlerimi tutarlı hale getirdim. Her sistemde aynı hatayla uğraşmak yerine, sadece derleme sisteminde işlemem gerekiyor.
Ama otostop ...
Neden resmi paketlerden sapmanız gerekiyor? Bağlantı noktaları çerçevesi, bağlantı noktalarının oluşturma zamanı yapılandırmasını değiştirmesi için seçenekler desteği sağlar. Tüm uygulamalar çalışma zamanı yapılandırmasını desteklemez. Hangi uygulamaların etkinleştirildiğine bağlı olarak bazı uygulamalar farklı şekilde derlenmelidir. Diğerlerinin, varsayılan bağlantı noktasındaki özellik ve bağımlılık miktarını azaltmak için seçenekleri vardır. Sunucu yöneticileri için bu, varsayılan paketlerin bazılarının gereksinimlerini karşılamadığını hızlı bir şekilde ortaya çıkarabilir.
Yani ...
Özel paketler almanın birkaç yolu vardır. Pkg birden fazla depo kullanmayı destekler. Resmi FreeBSD deposunu birincil ve özel olanı ikincil olarak kullanmak üzere ayarlanabilir. Pkg, izleyebileceği depo sayısı ile sınırlı değildir ve öncelik için yeniden sıralanabilir. Birden çok depodaki sorun şu anda bakımı zor olabilmesidir. Pkg, kurulu bir paketin izlediği bir havuzdan farklı seçeneklere veya bağımlılıklara sahip olduğunu tespit ettiğinde, paket herhangi bir uzak sürümden yeniden yüklenir. Paketi pkg lock PKGNAME ile yükseltmeler sırasında kilitleyebilir ve pkg PKGNAME kilidini açabilir veya pkg notu -A PKGNAME deposu REPONAME ile belirli bir depoya bağlayabilirsiniz. Ayrıca, özel deponuz için bağlantı noktaları ağacını FreeBSD paketleriyle senkronize halde tutma konusunda küçük bir sorun vardır. Paketler haftada bir kez alınan bir port ağacının anlık görüntüsünden oluşturulduğundan, özel havuzunuz uyuşmuyorsa çakışmalara neden olabilir. İstediğiniz seçeneklerle tam olarak ihtiyacınız olan şeyden oluşan bir paket setini oluşturmak çok daha basittir.
Çözüm:
Poudriere (kabaca telaffuz edilen poo-dree-yıl, “toz fıçı” için Fransızca) Tinderbox için daha hızlı ve daha basit bir yedek olarak yazılmıştır. Pkg yazarı Baptiste Daroussin tarafından yazılmıştır ve şimdi Baptiste ve diğer bazı katkıda bulunanlar ile birlikte çoğunlukla benim tarafımdan korunmaktadır. Hızla fiili FreeBSD liman testi ve paket oluşturma aracı haline geldi. Resmi derleme küme aracıdır ve FreeBSD Ports projesi tarafından “exp-run” olarak adlandırılan şeylerde kapsamlı yamaları test etmek için de kullanılır . POSIX kabuğuna yazılır ve yavaşça C bileşenlerine taşınır. Tinderbox'ın aksine, bağımlılığı yoktur ve veritabanı gerektirmez. Tüm operasyonlarda oldukça paralel olacak şekilde büyük ölçüde optimize edilmiştir. Çok katı koşullarda korumalı ortamlarda bağlantı noktaları oluşturmak için hapishaneler kullanır. Hapishane oluşturma işlemi basit bir komutla bir kez yapılır. Yapılar sırasında, bağlantı noktalarına inşa edilecek temiz bir yer vermek için kullanılan her CPU için hapishane otomatik olarak klonlanır. "
Poudriere ile kendi havuzunuzu oluşturmak , bağlantı noktalarının esnekliğine ve paketlerin yönetim kolaylığına sahip olmanızı sağlar.
pkg lock
onu yükleyebilir ve daha sonra istediğiniz her şeyi yükleyebilirsiniz.