Я использую debian / Ubuntu и не понимаю версии пакетов. Когда используешь dpkg -l
команда, я получаю:
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
Третий столбец version
, но все это "перепутано", чего я не могу понять. Я имею в виду, что разные пакеты используют совершенно разные спецификации именования.
Вот основные вопросы:
ubuntu
в них, а некоторые нет?-~+
значит?alpha
, build
, и dfsg
? Могу я просто использовать их случайно?vim
и другие пакеты имеют 2:
. Что это значит?Может ли кто-нибудь объяснить мне это? Или где найти официальный документ?
Заранее спасибо.
В Руководство по политике Debian Вот что говорится о поле версии, которое отвечает на некоторые части вашего вопроса:
Формат
Формат:
[epoch:]upstream_version[-debian_revision]
Вот три компонента:
эпоха
Это одно (обычно маленькое) целое число без знака. Его можно опустить, и в этом случае предполагается ноль. Если он не указан, то upstream_version не может содержать двоеточий. Это предусмотрено для того, чтобы ошибки в номерах версий более старых версий пакета, а также схемы нумерации предыдущих версий пакета оставались позади.
upstream_version
Это основная часть номера версии. Обычно это номер версии исходного («восходящего») пакета, из которого был создан файл .deb, если это применимо. Обычно это будет в том же формате, что и указанный автором (ами) восходящего потока; однако, возможно, потребуется переформатировать его, чтобы он соответствовал формату системы управления пакетами и схеме сравнения.
Сравнение поведения системы управления пакетами по отношению к upstream_version описан ниже. В upstream_version часть номера версии является обязательной.
В upstream_version может содержать только буквенно-цифровые символы [36] и символы
"."
(полная остановка),"+"
(плюс),"-"
(дефис),":"
(двоеточие),"~"
(тильда) и должен начинаться с цифры. Если нет debian_revision тогда дефисы не допускаются; если нет эпоха то двоеточия не допускаются.debian_revision
Эта часть номера версии указывает версию пакета Debian на основе исходной версии. Он может содержать только буквенно-цифровые символы и символы
"."
(полная остановка),"+"
(плюс),"~"
(тильда) и сравнивается так же, как upstream_version является.Это необязательно; если его нет, то upstream_version не может содержать дефис. Этот формат представляет собой случай, когда часть программного обеспечения была написана специально как пакет Debian, где исходный код пакета Debian всегда должен быть идентичен исходному исходному тексту, и поэтому указание версии не требуется.
Обычно перезапускают debian_revision в 1 каждый раз upstream_version увеличена.
Система управления пакетами разделит номер версии на последний дефис в строке (если он есть), чтобы определить upstream_version и debian_revision. Отсутствие debian_revision эквивалентно debian_revision из 0.
Сравнение
При сравнении двух номеров версий сначала сравнивается эпоха каждой, затем upstream_version, если эпоха равна, а затем debian_revision если upstream_version тоже равно. эпоха сравнивается численно. В upstream_version и debian_revision части сравниваются системой управления пакетами по следующему алгоритму:
Строки сравниваются слева направо.
Сначала определяется начальная часть каждой строки, полностью состоящая из нецифровых символов. Эти две части (одна из которых может быть пустой) сравниваются лексически. Если обнаружена разница, она возвращается. Лексическое сравнение - это сравнение значений ASCII, измененных таким образом, что все буквы сортируются раньше, чем все небуквенные, и тильда сортируется перед чем-либо, даже концом части. Например, следующие части отсортированы от самой ранней к последней:
~~
,~~a
,~
, пустая часть,a
.Затем определяется начальная часть остатка каждой строки, которая полностью состоит из цифровых символов. Числовые значения этих двух частей сравниваются, и любая обнаруженная разница возвращается как результат сравнения. Для этих целей пустая строка (которая может встречаться только в конце одной или обеих сравниваемых строк версии) считается нулем.
Эти два шага (сравнение и удаление исходных нецифровых строк и начальных числовых строк) повторяются до тех пор, пока не будет обнаружено различие или не будут исчерпаны обе строки.
Обратите внимание, что цель эпох - позволить нам оставить ошибки в нумерации версий и справиться с ситуациями, когда схема нумерации версий меняется. Он не предназначен для работы с номерами версий, содержащими строки букв, которые система управления пакетами не может интерпретировать (например,
ALPHA
илиpre-
) или с глупыми порядками.
ubuntu
будет указывать на то, что пакет был создан специально для Ubuntu. В alpha
и build
строки не имеют особого значения, но dfsg
относится к пакету, который был модифицированный за соблюдение Рекомендации по бесплатному программному обеспечению Debian.
XubuntuY
часть версии, например 1ubuntu1
X
это версия пакета Debian. Большинство пакетов Ubuntu основаны на пакетах Debian, который является «восходящим» дистрибутивом.
Если 0
, это означает, что пакета Debian нет: он существует только в Ubuntu.
X
сбрасывается при обновлении реальной исходной версии, например От Binutils 2.25 до Binutils 2.26.
Версии Debian существуют потому, что Debian может вносить исправления в пакеты, чтобы они лучше работали в системе Debian или для выпусков безопасности.
Разработчики Debian, конечно, заинтересованы в обратном слиянии патчей, чтобы избежать разветвления.
Каждый раз, когда создается новый набор патчей, это число увеличивается.
ubuntuY
не является обязательным.
Если нет, это означает, что пакет Debian использовался напрямую.
В противном случае это означает, что это Yth Ubuntu патч, применяемый поверх патча Debian, так же, как Debian применяется поверх настоящего апстрима.
Y
сбрасывается, когда X
увеличивается.
Если вы получите исходный код пакета с:
apt-get source gdb
вы увидите патчи, применяемые Ubuntu и Debian по адресу:
debian/patches/
Что еще интереснее, вы можете клонировать с помощью bzr
и посмотрите список всех версий Ubuntu с тем, что изменилось между ними:
bzr branch ubuntu:gdb
cd gdb
bzr log | less
Смотрите также: https://askubuntu.com/questions/620533/what-is-the-meaning-of-the-xubuntuy-string-in-ubuntu-package-names
Что на самом деле представляет эпоха