Boost karmaşık bir örnektir, önce daha basit olana bakalım.
Kesin olarak, openssl kaynak paketine 5 ikili paketler sunar:
libssl1.0.0
OpenSSL dinamik kitaplığını içerir, sürüm 1.0.0. Bu kütüphaneye bağlı programların çalıştırılması gereken budur. 1.0.0 ile ikili olarak uyumlu olmayan başka bir sürüme bağlı başka programlarınız varsa, paket adı bir sürüm numarası içerir, çünkü aynı anda kütüphanenin başka sürümleri de yüklü olabilir.
openssl
OpenSSL kitaplığını kullanan komut satırı araçları içerir. Kitaplığın birden çok sürümüne sahip olsanız bile, bu araçların birden çok sürümüne ihtiyacınız yoktur: yalnızca bir tane /usr/bin/openssl
ve ilişkili araçlar, veriler ve belgeler vardır.
libssl-dev
OpenSSL'ye bağlanan bir programı derlemek istiyorsanız, ihtiyacınız olan dosyaları içerir. C başlık dosyaları ( *.h
), bağlantı kütüphaneleri ( *.a
, *.so
) ve çeşitli dosyalar vardır.
libssl-doc
OpenSSL kütüphanesi için belgeler içerir. Bu pakete yalnızca kütüphaneyi kullanan programlar yazacaksanız ihtiyacınız olacaktır.
libssl1.0.0-dbg
hata ayıklama simgeleri içerir. Yalnızca OpenSSL kitaplığında veya onu kullanan programlarda hata ayıklayan kişiler için yararlıdır. andrewsomething yanıtı bu -dbg
paketler hakkında daha fazla bilgi var .
Buna ek olarak, hassas, kütüphanenin eski bir sürümünü içerir libssl0.9.8
, çünkü hala eski sürüme bağlı programlar vardır.
Görebileceğiniz diğer paketler C dışındaki diller için ciltlemelerdir. OpenSSL herhangi biriyle birlikte gelmez (diğer diller için OpenSSL'de ciltler vardır, ancak aynı kaynaktan gelmezler). Bir örnek Sqlite3 ile, gemiler TCL ciltleri .
Bunun gibi paketleri bölmenin temel nedeni, farklı paketlerin farklı hedef kitlelere sahip olmasıdır. Hiç kimsenin bir şey derlemediği bir sistem sadece çekirdek lib
pakete ve belki de komut satırı araçlarına ihtiyaç duyar ; gerekirse otomatik olarak bağımlılıklardan yüklenir. Birisi kütüphaneyi kullanan bir programı derlemek istiyorsa, -dev
pakete ihtiyacı vardır . Birisi kütüphaneyi kullanan bir program yazmak istiyorsa, -doc
pakete ihtiyacı vardır .
Peki Boost ne olacak? Aynı yapıyı takip eder, ancak Boost büyük bir kütüphane olduğundan, daha küçük paketlere ayrılır: libboost-*1.46.1
ve libboost-*1.46-dev
. Kesin olarak, orada Boost, yalnızca bir sürümü olan 1.46 ama oneiric de vardı 1,42 ve 1,46 . Ayrıca, sürüm paketini bağımlılık olarak çeken bir meta paket yükseltme-varsayılanları da vardır.
Libhangul'a baktığımızda , dinamik kütüphane paketine libhangul1
ve geliştirme paketine ek olarak libhangul-dev
bir paket var libhangul-data
. Bu paket, kitaplık için gereken ek verileri içerir. Kütüphanenin birden fazla sürümüne sahip olsanız bile, -data
paketi paylaşabilirler . Ayrıca, paket mimariden bağımsızdır. Çok sayıda mimariden bağımsız veri içeren yazılım, dağıtım sitelerinde yer kazanmak için mimariye bağımlı ve mimariden bağımsız paketlere ayrılır. Benzer bir anlama sahip başka bir sonek -common
.
Ubuntu ve Debian paketleme kuralları çok benzerdir, bu nedenle Debian paketlerinin yapılmasıyla ilgili materyaller Ubuntu için de geçerlidir. Aslında, Debian ve Ubuntu için aynı kaynak pakete sahip olabilirsiniz; Debian ve Ubuntu paketlerini farklı kılan tek şey, bunları farklı kütüphane sürümlerine karşı derlemektir ve bu, Ubuntu'nun farklı sürümleri arasındaki farktan başka bir şey değildir. Var Debian geliştirici belgeleri el altında, özellikle Debian Politikası Manuel ve Geliştirici Başvurusu ; giriş için Yeni Bakım Kılavuzu'na bakınız . Debian projesi ile çalışma ile ilgili parçaları görmezden gelin ve bir paket hazırlama ile ilgili bölümleri okuyun.dh_make
bir deb paketini kullanmaya başlamak için iyi bir yoldur (“Kütüphane” yi seçmek istersiniz).