Debian Dışındaki Paketler İçin Özel Notlar

Eğer paketiniz Debian'da değilse ve özellikle kapalı-kaynak kodlu veya lisansı kaynak kodun değiştirilmiş halinin dağıtılmasına izin vermiyorsa paketinizin mümkün olduğunca esnek olabilmesi için dikkat etmeniz gereken bazı ince noktalar vardır.

Üç Farklı Debian Dağıtımı

Debian üç farklı şekilde dağıtılmaktadır: stable, testing ve unstable. Yeni bir paket eklendiğinde veya varolan bir paket güncellendiğinde önce unstable sürüme dahil edilir. Unstable'da ciddi bir hataya neden olmadan on gün geçiren paket otomatik olarak testing sürümüne geçirilir. Sürüm yöneticisi yeni bir sürüm için zamanın geldiğine karar verdiğinde testing sürümününün dondurulduğunu (frozen) ilan eder. Bu testing sürümüne yeni paket eklenmeyeceği ve varolanların da güncellenmeyeceği anlamına gelir. Sadece öne çıkan hatalar giderilmeye çalışılır. Tesing sürümünün yayınlanabilir olduğunu düşündüğünde ise adı stable olarak değiştirilir ve yeni bir testing sürümü eklenir. Bu sürümler branşlar olarak da adlandırılırlar.

Yukarıdan da anlaşılacağı gibi üç Debian sürümü de (ama özellikle unstable ve stable) bazen çok farklı olabilirler ve farklı paket kümeleri ile aynı paketlerin farklı sürümlerine sahip olabilirler. Bu yüzden tek bir paket bütün dağıtımlara kurulamayabilir veya kurulsa da çalışamayabilir. Debian depolarındaki paketler için bu bir sorun değildir çünkü o paketler unstable'dan otomatik olarak testing'e oradan da bağımlı olduğu diğer paetlerle birlikte stable sürüme geçerler. Ama Debian dışındaki paketler için bu kesinlikle bir sorundur.

Unstable ve testing sürümleri çok sık (günlük) değiştiklerinden ve özellikle kullanıların tümü günlük olarak tüm paketlerini güncellemeyip sadece bazı paketleri güncelediğinden bu dağıtımlarla güncel kalmak oldukça zordur, Bu yüzden en iyisi hedef olarak stable sürümü seçmek ama diğer dağıtımlara kurulumu kolaylaştırmak için bir kaç şeyi akılda tutmaktır.

Sürüm Bağımlılıkları

En önemli şeylerden biri de paketlerin sürüm bağımlılıklarını doğru belirlemektir. Eğer, örneğin, paketiniz libfoo'nun 1.01 veya daha yüksek bir sürümüne bağımlı ve son kararlı sürüm 1.07 ise paketiniz 1.07 sürümüne bağımlı olmamalıdır. Doğru bağımlılık 1.01 veya yukarısı şeklinde olmalıdır.

Bu çok önemlidir çünkü her ne kadar libfoo'nun son çıkan sürümü 1.07 olsa da er ya da geç daha yeni bir sürüm çıkacak ve unstable ve testing'de yerini alacaktır. Eğer paketiniz sadece libfoo 1.07 sürümüne bağımlı olursa birden unstable ve testing dağıtımların akurulamaz hale gelecektir. Oluşturacağınız paketin testing ve unstable dağıtımlarına kurulabilir ama düzgün çalışmayabilir olması er ya da geç bu dağıtımlara kurulamaz hale geleceğini bilmekten daha kolay alınabilir bir risk olacaktır.

Yine paketinizin ihtiyaç duyduğu sürümün 1.01 veya yukarısı olduğunu ve güncel sürümünün 1.07 olduğunu düşünelim. Paketinizin bağımlılığının 1.07 veye yukarısı yapılması da hatalı olacaktır. Elbette güncel stable dağıtımda çalışacaktır ama eğer mümkün olan en düşük sürüm bağımlılığını vermiş olsaydınız paketiniz daha eski Debian sürümlerine de kurulabilecek ve çalışabilecekti!

Statik Bağlamak

Eğer paketiniz Debian paketi olmayan (örneğin; şirketinize ait) ve nadiren kullanılan bir kitaplığa veya sıklıkla değişen bir kitaplığa bağımlı ise statik olarak bağlamak iyi bir fikir olabilir. Elbette, bu önümüzdeki yirmi yılda değişebileceğini düşündüğünüz her kitaplığı statik bağlamanız gerektiği anlamına gelmez, sadece dinamik olarak bağlandıklarında problem çıkarabileceklerini düşündüğünüz kitaplıkları statik bağlamalısınız. Bu konuda sağduyulu davranın.

Uyarı

Asla paketinizi libc'ye statik bağlamayın.

Kararlı Dağıtımda Olmayan Paketlere Bağımlılık

Eğer paketiniz unstable ve/veya testing depolarında bulunan bir pakete bağımlı ise bu paketi stable dağıtımda çalışacak şekilde yeniden derleyebilirsiniz (veya baştan yeniden oluşturabilirsiniz). Böyle yaparsanız paketinizin bağımlılığını hem testing/unstable deposundaki paketi hem de sizin yeniden derlediğiniz paketi işaret edecek şekilde or (←|→) ile gösterebilirsiniz. Bu şekilde paketiniz testing/unstable deposundaki orjinal paketi ve sizin stable depo için hazırladığınız paketi kullanabilecektir.