debian paketleri versiyon sözleşmesi


34

Debian / Ubuntu kullanıyorum ve paketlerin sürümleri konusunda kafam karıştı. dpkg -lKomutu kullanırken , alıyorum:

ii  vim                                 2:7.3.429-2ubuntu2.1                Vi IMproved - enhanced vi editor
ii  vim-common                          2:7.3.429-2ubuntu2.1                Vi IMproved - Common files
ii  vim-runtime                         2:7.3.429-2ubuntu2.1                Vi IMproved - Runtime files
ii  vim-tiny                            2:7.3.429-2ubuntu2.1                Vi IMproved - enhanced vi editor - compact version
ii  virt-what                           1.11-1                              detect if we are running in a virtual machine
ii  w3m                                 0.5.3-5ubuntu1                      WWW browsable pager with excellent tables/frames support
ii  watershed                           6                                   reduce superfluous executions of idempotent command
ii  wget                                1.13.4-2ubuntu1                     retrieves files from the web
ii  whiptail                            0.52.11-2ubuntu10                   Displays user-friendly dialog boxes from shell scripts
ii  whoopsie                            0.1.33                              Ubuntu crash database submission daemon
ii  wimlib9                             1.5.0-1~webupd8~precise             Library to extract, create, modify, and mount WIM files
ii  wimtools                            1.5.0-1~webupd8~precise             Tools to extract, create, modify, and mount WIM files
ii  wireless-tools                      30~pre9-5ubuntu2                    Tools for manipulating Linux Wireless Extensions
ii  wpasupplicant                       0.7.3-6ubuntu2.1                    client support for WPA and WPA2 (IEEE 802.11i)
ii  x11-common                          1:7.6+12ubuntu2                     X Window System (X.Org) infrastructure
ii  x11-utils                           7.6+4ubuntu0.1                      X11 utilities
ii  xauth                               1:1.0.6-1                           X authentication utility
ii  xbitmaps                            1.1.1-1                             Base X bitmaps
ii  xclip                               0.12-1                              command line interface to X selections
ii  xfonts-encodings                    1:1.0.4-1ubuntu1                    Encodings for X.Org fonts
ii  xfonts-utils                        1:7.6+1                             X Window System font utility programs
ii  xkb-data                            2.5-1ubuntu1.3                      X Keyboard Extension (XKB) configuration data
ii  xml-core                            0.13                                XML infrastructure and XML catalog file support
rc  xpdf                                3.02-21build1                       Portable Document Format (PDF) reader
ii  xterm                               271-1ubuntu2.1                      X terminal emulator
ii  xz-lzma                             5.1.1alpha+20110809-3               XZ-format compression utilities - compatibility commands
ii  xz-utils                            5.1.1alpha+20110809-3               XZ-format compression utilities
ii  zabbix-agent                        1:1.8.11-1                          network monitoring solution - agent
ii  zlib1g                              1:1.2.3.4.dfsg-3ubuntu4             compression library - runtime
ii  zlib1g-dev                          1:1.2.3.4.dfsg-3ubuntu4             compression library - development
ii  zsh                                 4.3.17-1ubuntu1                     shell with lots of features

Üçüncü sütun ise version, ama hepsi anlayamadığım bir şekilde "berbat". Demek istediğim, farklı paketler tamamen farklı adlandırma spesifikasyonları kullanır.

İşte ana sorular:

  1. Bazı sürüm numaralarında neden var ubuntuve bazıları yok?
  2. Tüm özel noktalama işaretleri ne anlama -~+geliyor?
  3. Ne alpha, buildve dfsg? Onları rahatça kullanabilir miyim?
  4. vimve diğer paketler var 2:. Bu ne anlama geliyor?
  5. Sürüm biçimleri bu kadar farklı olduğunda, "sürüm karşılaştırması" nasıl çalışır?

Birisi lütfen bunu bana açıklayabilir mi? Ya da resmi bir belgeyi nerede bulabilirim?

Şimdiden teşekkürler.


Ne demek istiyorsun: "Neden onlarda ubuntu var, değil mi?"
Ciro Santilli 新疆 改造

1
Yani bazı versiyon numaralarında neden bazı kelimeleri içeren bir sonek var ubuntu?
rakslice

Yanıtlar:


50

Debian Policy Manual Sorunuzun bazı bölümlerini cevap sürüm alanı ile ilgili şöyle demektedir:

Biçim

Format: [epoch:]upstream_version[-debian_revision]

Buradaki üç bileşen:

çağ

Bu, tek bir (genellikle küçük) işaretsiz tam sayıdır. Bu durumda sıfır olduğu varsayılabilir. Belirtilmezse, upstream_version herhangi bir sütun içermeyebilir. Bir paketin daha eski sürümlerinin sürüm numaralarında ve ayrıca bir paketin önceki sürüm numaralandırma düzenlerinde hataların geride bırakılmasına izin verilmesi sağlanmıştır.

üstdüzey_sürümü

Bu, sürüm numarasının ana kısmıdır. Bu, eğer geçerli ise, .deb dosyasının yapıldığı orijinal ("yukarı akış") paketinin sürüm numarasıdır. Genellikle bu, yukarı yazar (lar) tarafından belirtilenlerle aynı formatta olacaktır; Bununla birlikte, paket yönetim sisteminin formatına ve karşılaştırma planına uyması için yeniden biçimlendirilmesi gerekebilir.

Paket yönetim sisteminin upstream_version ile ilgili karşılaştırma davranışı aşağıda açıklanmıştır. Üstdüzey_sürümü sürüm numarası kısmı zorunludur.

Giriş yönü_versiyonu yalnızca alfanümerikler [36] ve "."(tam durak), "+"(artı), "-"(kısa çizgi), ":"(iki nokta), "~"( iki nokta) karakterlerini içerebilir ve bir rakamla başlamalıdır. Eğer debian_revision yoksa o zaman tireye izin verilmez; eğer bir çağ yoksa kolonlara izin verilmez.

debian_revision

Sürüm numarasının bu kısmı, akış yönündeki sürüme bağlı olarak Debian paketinin sürümünü belirtir. Yalnızca alfanümerikler ve karakterler "."(tam durak), "+"(artı), "~"(tilde) içerebilir ve upstream_version ile aynı şekilde karşılaştırılır .

Bu isteğe bağlıdır; mevcut değilse, upstream_version , kısa çizgi içermeyebilir. Bu format, bir yazılım parçasının özellikle bir Debian paketi olarak yazıldığı, Debian paketi kaynağının her zaman bozulmamış kaynak ile aynı olması gerektiği ve bu nedenle herhangi bir revizyon göstergesinin gerekli olmadığı durumu temsil eder.

Yeniden geleneksel olan debian_revision 1'de her zaman üstdüzey_sürümü artar.

Paket yönetim sistemi, upstream_version ve debian_revision değerlerini belirlemek için dizedeki son numaradaki (varsa) sürüm numarasını parçalayacaktır . Bir debian_revision'ın olmaması , 0 debian_revision'ına eşittir .

karşılaştırma

İki sürüm numaraları karşılaştırırken, her bir ilk dönem karşılaştırıldığında, çağ eşit ve daha sonra ise, o zaman üstdüzey_sürümü debian_revision halinde üstdüzey_sürümü da eşittir. çağ sayısal olarak karşılaştırılır. Üstdüzey_sürümü ve debian_revision parçaları aşağıdaki algoritmayı kullanarak paket yönetim sistemi tarafından karşılaştırılır:

Dizeler soldan sağa karşılaştırılır.

İlk önce, tamamen rakam olmayan karakterlerden oluşan her bir dizinin ilk kısmı belirlenir. Bu iki bölüm (biri boş olabilir) sözcüksel olarak karşılaştırılır. Bir fark bulunursa iade edilir. Sözcüksel karşılaştırma ASCII değerlerinin karşılaştırmasıdır, böylece tüm harfler tüm harflerin dışındakilerden daha önce sıralanır ve bir tilde bir parçanın sonunu bile, her şeyden önce sıralar. Örneğin, aşağıdaki parçalar en erken dan en son sıralanmış sırayla şunlardır: ~~, ~~a, ~, boş kısmı a.

Daha sonra, tamamen rakamlardan oluşan her bir dizginin kalan kısmının başlangıç ​​kısmı belirlenir. Bu iki bölümün sayısal değerleri karşılaştırılır ve karşılaştırma sonucunda bulunan herhangi bir fark döndürülür. Bu amaçlar için, boş bir dize (yalnızca karşılaştırılan bir veya iki sürüm dizesinin sonunda gerçekleşebilecek olan) sıfır olarak sayılır.

Bu iki adım (ilk basamak olmayan dizeleri ve ilk basamak dizelerinin karşılaştırılması ve kaldırılması), bir fark bulunana veya her iki dizenin tükenmesine kadar tekrar edilir.

Çağların amacı, sürüm numaralandırmada hataları geride bırakmamıza ve sürüm numaralandırma düzeninin değiştiği durumlarla başa çıkmamıza izin vermektir. Paket yönetim sisteminin yorumlayamadığı ( ALPHAya da gibi pre-) harf dizeleri içeren sürüm numaralarıyla ya da aptalca sırayla kullanılması amaçlanmamıştır .

ubuntupaketin özellikle Ubuntu için oluşturulduğunu belirtir. alphaVe builddizeleri herhangi bir anlama sahip gibi görünüyor, ama yok dfsgolan bir pakete karşılık gelir modifiye uygunluk için Debian Özgür Yazılım Kılavuzu .


1
Teşekkürler, bu çok yardımcı olur. Fakat versiyon karşılaştırması nasıl çalışır? rakamlar, harfler ve ~ +, hangisi önce gelir ve hangisi hangisidir?
cizixs

Karşılaştırma davranışını tanımlayan kılavuzun bölümünü içerecek şekilde cevabımı alıntıyı genişlettim.
Flup

2
Bu sürüm dizelerinin nasıl sıralandığını test edebileceğim bir yerde çevrimiçi bir araç var mı?
Nick,

Lütfen aynı örnekleri yapıştırabilir misiniz? Örneğin, yukarıdaki sürümlerden bazılarını ayrı parçalara ayrıştırma. Hem yukarı akış sürümü hem de debian sürümü içeriyorsa - ve +, ayrımın nerede olduğunu nasıl bilebiliriz? Ayrıca, ilk bağlantı kopmuş görünüyor.
fersarr

@fersarr Başkalarına örnekler bırakacağım ancak bağlantıyı düzelttim.
Flup

10

XubuntuY sürümün bir parçası, örneğin 1ubuntu1

  • XDebian paket sürümüdür. Ubuntu paketlerinin çoğu, bir "yukarı akış" dağıtım şekli olan Debian paketlerine dayanmaktadır.

    Eğer 0bu, Debian paketi bulunmadığı anlamına gelirse : sadece Ubuntu'da bulunur.

    X gerçek yukarı akış sürümü güncellendiğinde sıfırlanır, örneğin Binutils 2.25 ila Binutils 2.26.

    Debian sürümleri, Debian paketlerinde yamalar yapabileceğinden dolayı Debian sisteminde veya güvenlik sürümlerinde daha iyi çalışabilmesini sağlar.

    Debian geliştiricileri elbette çatallaşmayı önlemek için yamaları birleştirme konusunda isteklidir.

    Yeni bir set yaması yapıldığında, bu sayı artar.

  • ubuntuY İsteğe bağlı.

    Eğer yoksa, Debian paketinin doğrudan kullanıldığı anlamına gelir.

    Aksi halde, bunun Debian yamasının üstüne uygulanan Yth Ubuntu yaması olduğu anlamına gelir.

    YXarttığında sıfırlanır .

Eğer bir paketin kaynağını alırsanız:

apt-get source gdb

Ubuntu ve Debian tarafından uygulanan yamaları göreceksiniz:

debian/patches/

Daha da ilginç bzrolanı, aralarında neyin değiştiği ile tüm Ubuntu sürümlerinin listesini klonlayabilir ve bir listesini görebilirsiniz:

bzr branch ubuntu:gdb
cd gdb
bzr log | less

Ayrıca bakınız: https://askubuntu.com/questions/620533/what-is-the-meaning-of-the-xubuntuy-string-in-ubuntu-package-names

Epoch'un gerçekte neyi temsil ettiği

https://askubuntu.com/questions/441879/why-do-some-packages-have-extra-numbers-on-the-front-of-their-version-string

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.