quy ước phiên bản gói debian


35

Tôi đang sử dụng debian / Ubuntu và bị lẫn lộn về các phiên bản của các gói. Khi sử dụng dpkg -llệnh, tôi nhận được:

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

Cột thứ ba là version, nhưng tất cả đều "rối tung" theo cách mà tôi không thể hiểu được. Ý tôi là, các gói khác nhau sử dụng thông số kỹ thuật đặt tên hoàn toàn khác nhau.

Dưới đây là những câu hỏi chính:

  1. Tại sao một số số phiên bản có ubuntutrong đó, và một số không?
  2. Tất cả các dấu câu đặc biệt -~+có nghĩa là gì?
  3. Là gì alpha, builddfsg? Tôi chỉ có thể sử dụng chúng tình cờ?
  4. vimvà các gói khác có 2:. Điều đó nghĩa là gì?
  5. Làm thế nào để "so sánh phiên bản" hoạt động, khi các định dạng phiên bản có thể rất khác nhau?

Bất cứ ai có thể vui lòng giải thích điều này cho tôi? Hoặc tôi có thể tìm thấy một tài liệu chính thức ở đâu?

Cảm ơn trước.


Ý bạn là gì tại: "Tại sao lại có ubfox trong đó, còn không có?"
Ciro Santilli 心 心 事件

1
@ CiroSantilli709 抓捕 六四 事件 tức là tại sao một số số phiên bản có hậu tố chứa từ đó ubuntuvà một số thì không.
rakslice

Câu trả lời:


50

Các Sổ Tay Chính Sách Debian có này để nói về lĩnh vực phiên bản, trong đó trả lời một số bộ phận của câu hỏi của bạn:

định dạng

Định dạng là: [epoch:]upstream_version[-debian_revision]

Ba thành phần ở đây là:

kỷ nguyên

Đây là một số nguyên không dấu (thường nhỏ). Nó có thể được bỏ qua, trong trường hợp không được giả sử. Nếu nó bị bỏ qua thì upstream_version có thể không chứa bất kỳ dấu hai chấm nào. Nó được cung cấp để cho phép các lỗi trong số phiên bản của các phiên bản cũ hơn của gói, và cả các sơ đồ đánh số phiên bản trước đó của gói, bị bỏ lại.

ngược dòng

Đây là phần chính của số phiên bản. Nó thường là số phiên bản của gói gốc ("ngược dòng") mà từ đó tệp .deb đã được tạo, nếu điều này được áp dụng. Thông thường, điều này sẽ có cùng định dạng như được chỉ định bởi (các) tác giả ngược dòng; tuy nhiên, nó có thể cần được định dạng lại để phù hợp với định dạng và sơ đồ so sánh của hệ thống quản lý gói.

Hành vi so sánh của hệ thống quản lý gói liên quan đến upstream_version được mô tả bên dưới. Phần upstream_version của số phiên bản là bắt buộc.

Các upstream_version có thể chứa chữ cái và số [36] và các nhân vật "."(full stop), "+"(cộng), "-"(gạch nối), ":"(dấu hai chấm), "~"(dấu ngã) và nên bắt đầu bằng một chữ số. Nếu không có debian numvision thì dấu gạch nối không được phép; nếu không có kỷ nguyên thì dấu hai chấm không được phép.

debian numvision

Phần này của số phiên bản chỉ định phiên bản của gói Debian dựa trên phiên bản ngược dòng. Nó chỉ có thể chứa chữ và số và các ký tự "."(dừng hoàn toàn), "+"(cộng), "~"(dấu ngã) và được so sánh theo cùng một cách với upstream_version .

Nó là tùy chọn; nếu nó không xuất hiện thì upstream_version có thể không chứa dấu gạch nối. Định dạng này đại diện cho trường hợp một phần mềm được viết riêng là gói Debian, trong đó nguồn gói Debian phải luôn giống với nguồn nguyên sơ và do đó không cần phải có chỉ dẫn sửa đổi.

Nó là thông thường để khởi động lại debian numvision tại 1 mỗi khi upstream_version được tăng lên.

Hệ thống quản lý gói sẽ tách số phiên bản ra ở dấu gạch nối cuối cùng trong chuỗi (nếu có) để xác định upstream_versiondebian numvision . Sự vắng mặt của một debian numvision tương đương với một debian numvision bằng 0.

So sánh

Khi so sánh hai số phiên bản, đầu tiên epoch của mỗi số được so sánh, sau đó upstream_version nếu epoch bằng nhau, và sau đó debian numvision nếu upstream_version cũng bằng nhau. kỷ nguyên được so sánh bằng số. Các phần upstream_versiondebian numvision được so sánh bởi hệ thống quản lý gói bằng thuật toán sau:

Các chuỗi được so sánh từ trái sang phải.

Đầu tiên, phần đầu tiên của mỗi chuỗi bao gồm toàn bộ các ký tự không có chữ số được xác định. Hai phần này (một trong số đó có thể trống) được so sánh từ vựng. Nếu một sự khác biệt được tìm thấy nó được trả lại. So sánh từ vựng là so sánh các giá trị ASCII được sửa đổi sao cho tất cả các chữ cái sắp xếp sớm hơn tất cả các chữ cái và sao cho dấu ngã sắp xếp trước mọi thứ, thậm chí là kết thúc một phần. Ví dụ, các bộ phận sau nằm trong thứ tự sắp xếp từ sớm nhất đến mới nhất: ~~, ~~a, ~, phần rỗng, a.

Sau đó, phần ban đầu của phần còn lại của mỗi chuỗi bao gồm toàn bộ các ký tự chữ số được xác định. Các giá trị số của hai phần này được so sánh và bất kỳ sự khác biệt nào được tìm thấy đều được trả về do kết quả so sánh. Đối với những mục đích này, một chuỗi trống (chỉ có thể xảy ra ở cuối một hoặc cả hai chuỗi phiên bản được so sánh) được tính là không.

Hai bước này (so sánh và loại bỏ các chuỗi không có chữ số ban đầu và chuỗi chữ số ban đầu) được lặp lại cho đến khi tìm thấy sự khác biệt hoặc cả hai chuỗi đều cạn kiệt.

Lưu ý rằng mục đích của các kỷ nguyên là cho phép chúng ta bỏ lại những sai lầm trong việc đánh số phiên bản và để đối phó với các tình huống trong đó sơ đồ đánh số phiên bản thay đổi. Nó không có ý định đối phó với các số phiên bản có chứa các chuỗi chữ cái mà hệ thống quản lý gói không thể giải thích (chẳng hạn như ALPHAhoặc pre-) hoặc với các thứ tự ngớ ngẩn.

ubuntusẽ chỉ ra rằng gói đã được xây dựng riêng cho Ubuntu. Các chuỗi alphabuilddường như không có bất kỳ ý nghĩa cụ thể nào, nhưng dfsgđề cập đến một gói đã được sửa đổi để tuân thủ Nguyên tắc phần mềm miễn phí Debian .


1
Cảm ơn, điều này giúp rất nhiều. Nhưng làm thế nào so sánh phiên bản hoạt động? chữ số, chữ cái và ~ +, cái nào đứng trước và cái nào cuối?
cizixs

Tôi đã mở rộng trích dẫn trong câu trả lời của mình để bao gồm phần hướng dẫn mô tả hành vi so sánh.
Flup

2
Có một công cụ trực tuyến nào đó nơi tôi có thể kiểm tra cách các chuỗi phiên bản này được sắp xếp không?
Nick

Bạn có thể vui lòng dán ví dụ tương tự? Ví dụ: phân tích một số phiên bản ở trên thành các phần riêng biệt. Nếu cả phiên bản ngược dòng và phiên bản debian đều có thể chứa - và + làm sao chúng ta biết phân tách ở đâu? Ngoài ra, liên kết đầu tiên dường như bị phá vỡ.
fersarr

@likearr Tôi sẽ để lại ví dụ cho người khác nhưng tôi đã sửa liên kết.
Flup

10

XubuntuY một phần của phiên bản, ví dụ 1ubfox1

  • Xlà phiên bản gói Debian. Hầu hết các gói Ubuntu đều dựa trên các gói Debian, đây là một bản phân phối "ngược dòng".

    Nếu 0, điều này có nghĩa là không có gói Debian: nó chỉ tồn tại trong Ubuntu.

    X Đặt lại khi phiên bản ngược dòng thực sự được cập nhật, ví dụ Binutils 2.25 thành Binutils 2.26.

    Các phiên bản Debian tồn tại vì Debian có thể tạo các bản vá cho các gói để nó hoạt động tốt hơn trong hệ thống Debian hoặc cho các bản phát hành bảo mật.

    Các nhà phát triển Debian tất nhiên quan tâm đến việc hợp nhất các bản vá lại để tránh bị rách.

    Mỗi khi một bản vá thiết lập mới được thực hiện, con số này tăng lên.

  • ubuntuY Là tùy chọn.

    Nếu không có, điều đó có nghĩa là gói Debian đã được sử dụng trực tiếp.

    Mặt khác, điều đó có nghĩa rằng đây là bản vá Yth Ubuntu được áp dụng trên bản vá Debian, giống như Debian áp dụng ở đầu dòng thực.

    YĐặt lại khi Xtăng.

Nếu bạn nhận được nguồn của một gói với:

apt-get source gdb

bạn sẽ thấy các bản vá được áp dụng bởi Ubuntu và Debian tại:

debian/patches/

Thậm chí thú vị hơn, bạn có thể sao chép bzrvà xem danh sách tất cả các phiên bản Ubuntu với những gì đã thay đổi giữa chúng:

bzr branch ubuntu:gdb
cd gdb
bzr log | less

Xem thêm: https://askubfox.com/questions/620533/what-is-the-meaning-of-the-xubuntuy-opes-in-ubfox-package-names

Đại Kỷ Nguyên thực sự đại diện cho cái gì

https://askubfox.com/questions/441879/why-do-some-packages-have-extra-numbers-on-the-front-of-their-version- chuỗi

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.