Paket adları neden sürüm numaraları içeriyor?


15

Ubuntu ve diğer Debian tabanlı dağıtımlarla çalışırken, yazılım depolarındaki paketlerin genellikle ana sürüm numarasını içerdiğini fark ettim.

Örneğin,

  • Apache: apache2
  • Tomcat: tomcat7
  • PHP: php5
  • Şarap: wine1.4
  • MySQL: mysql-server-5.5

Ancak, hiçbir apache1paketin mevcut olmadığını fark ediyorum ve geri kalanı için benzer. Paketin adı yazılım güncellemeleriyle değişiyorsa, bu, paket yönetiminin temel hedeflerinden (kolay yükseltmeler) birini engellemez mi?

Apache 3 yarın apache3çıkarsa, yükseltmek istersem paketi manuel olarak yüklemem gerekecek mi? ``

Yanıtlar:


26

Paketler, bir paketin iki ana sürümü arasındaki geçişi kolaylaştırmaya (veya gerekliyse) benzer şekilde adlandırılır ve bunun için gereken sürenin uzun olması beklenir. Geçiş dönemi boyunca, hem yeni hem de eski versiyonlar mevcut tutulur, gelecekteki bir zamanda daha eski olanların durdurulacağı anlayışı ile.

Bazen geçiş süresi, şu anda kullandığınız sistem sürümü sırasında gerçekleşir. Bazı paketler için, her yeni sistem sürümünde geçiş paketi sürümlerini görmeyi beklemeniz yeterli olur . Yazılım geliştirme araçları genellikle bu kategoriye girer, çünkü sistem sürümleriyle aynı programda yeni araçlara yükseltmek pratik olmayabilir. Şirketimin GCC, Autoconf ve Perl'in belirli sürümlerine bağımlılığı 5 yıllık, işletim sistemim 3 yıllık bir yükseltme döngüsünde olabilir. Bu nedenle, yeni işletim sisteminin geliştirildiği sırada mevcut olanlara ek olarak bazı paketlerin eski sürümlerini de içeriyorsa yeni işletim sistemlerini benimsememi kolaylaştırıyor.

Diğer zamanlarda, bu büyük sürüm değişiklikleri uzun zaman önce, geçmişte gerçekleşti ve şimdi herkes mevcut sürümde. Örneğin Apache için durum böyledir. 1.3 - 2.0 değişikliği, uyumluluk açısından herhangi bir 2.x sürüm değişikliğinden çok daha büyük bir anlaşma idi, bu nedenle herkes 1.3 kapatıldıktan sonra, belirli bir işletim sistemi sürümünde birden fazla Apache sürümü sunmaya devam etmeye gerek yoktu. Ancak, apache2paketi kullanan herkesi aldıktan sonra, yeniden adlandırmak için çok iyi bir argüman yoktur apache. Bu gereksiz bir yükseltme güçlüğüne neden olur. Ayrıca, geçmişte geçici olarak iki paralel versiyonun sağlanması için algılanan bir ihtiyaç olduğu zaman, gelecekte ihtiyaç tekrarlanacaktır.

Bu paket adlandırma uygulaması genellikle yalnızca kitaplıklarda veya önemli çekirdek paketlerinde olur. Daha fazla çevre birimi paketi için, şu anda mevcut olan her şeye yükseltmeniz bekleniyor.

Kütüphaneler, uygulamalardan daha yaygın olarak bu şekilde ele alınır, çünkü doğası gereği diğer paketler bunlara bağlıdır. Bir kütüphane ne kadar popüler olursa, ona bağlı olan diğer tüm paketlerin tamamen yeniden oluşturulmasını ve ona karşı yeniden bağlanmasını talep etmek daha pratiktir, böylece kütüphane bu geçiş süresi olmadan yeni bir büyük sürüme adım adım yükseltilebilir.

Genellikle bir uygulama bu şekilde işlendiğinde, bunun nedeni bir kütüphane öğesi içermesidir. Örneğin, Apache sadece bir web sunucusu değil, eklentiler için bir geliştirme API'sı da sağlar. ( mod_fooVe bu tür.) Birisi eski varsa mod_somethingOS tüm eklenti yaratıcıları şansı kadar eski Apache 1.3 sunmaya devam ederse ABI eklentisi Apache 1.3 karşı bağlanmış ve daha yeni 2.0 API kullanmak için geçiş yapmamış, buna ortam eklentilerini güncellemek için.


3

Gördüğüm kadarıyla, bunun nedenleri:

  • Paketlerin büyük sürümlerinde geçişe yardımcı olun: PHP 5 piyasaya sürüldüğünde, PHP 4 yüklemesine sahip olmak gerekebilir. Bu, sürümler arasında bir seçim yapılmasına izin verir (en azından eski sürüm eski olana kadar).

  • Bir yazılımın eski bir sürümüne (örneğin Apache 3 yayınlandıktan sonra, Apache 2'yi düzeltmek için gerekli olabilir) güncellemeleri daha yeni bir büyük sürüme yükseltmeden sağlamaya devam edin.

Linux çekirdeği (bugün itibariyle) 3.5, 3.4.7, 3.2.24, 2.6.35.13 vb . Kararlı sürümlere sahiptir .... Bir sistemde 2.6.35 çalıştırıyorsanız ve devam ettirmek istiyorsanız güncel, ama değil bu çekirdek yükseltmek, yeterli paketini yükleyebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.