Наименование версий пакетов в Ubuntu Linux

Ubuntu LogoНедавно опубликовал статью об установке PostgreSQL из исходных кодов. Решил еще рассказать о том, как устанавливать PostgreSQL из пакетов (логичное желание). Начал разбираться, увидел, что в информации о пакетах есть дополнительные непонятные цифры. Например:

Выполняю команду apt-cache show для пакета potsgresql и получаю вот такой (не полный) вывод:

test@testPC:~$ apt-cache show postgresql
Package: postgresql
Architecture: all
Version: 12+214ubuntu0.1
Priority: optional
Section: database
Source: postgresql-common (214ubuntu0.1)
Origin: Ubuntu

Полный вывод этой команды:

test@testPC:~$ apt-cache show postgresql
Package: postgresql
Architecture: all
Version: 12+214ubuntu0.1
Priority: optional
Section: database
Source: postgresql-common (214ubuntu0.1)
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian PostgreSQL Maintainers <team+postgresql@tracker.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 66
Depends: postgresql-12
Suggests: postgresql-doc
Filename: pool/main/p/postgresql-common/postgresql_12+214ubuntu0.1_all.deb
Size: 3924
MD5sum: 0b8d49f4e27427af323aa323ac2d564c
SHA1: 1458957f9632eed66247eeff6ecd64e9ba08e9ec
SHA256: 31c5fdb805618fadc6cc3deba741b4b69aa7c8addd25d761d06ede64c8d97732
SHA512: 929dfa95121e461135ddee93208d5e3f45ed8fa0ce65b2200157df02eadc40daa6f34279fe0503ea6ddf42de83f5efdd4547f0e9c83f46b3820277c343bd9c9d
Description-en: object-relational SQL database (supported version)
 This metapackage always depends on the currently supported PostgreSQL
 database server version.
 .
 PostgreSQL is a fully featured object-relational database management
 system.  It supports a large part of the SQL standard and is designed
 to be extensible by users in many aspects.  Some of the features are:
 ACID transactions, foreign keys, views, sequences, subqueries,
 triggers, user-defined types and functions, outer joins, multiversion
 concurrency control.  Graphical user interfaces and bindings for many
 programming languages are available as well.
Description-md5: bdff2d6e5b2a1dd00e72b3ed8729d9ac
Task: postgresql-server

Package: postgresql
Architecture: all
Version: 12+214
Priority: optional
Section: database
Source: postgresql-common (214)
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian PostgreSQL Maintainers <team+postgresql@tracker.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 66
Depends: postgresql-12
Suggests: postgresql-doc
Filename: pool/main/p/postgresql-common/postgresql_12+214_all.deb
Size: 4004
MD5sum: 4a7e3f24b175497508026dee4039274f
SHA1: 5bfbc6c7dbe4cba091a4b0901355ad68ca25e69e
SHA256: 7e9419964a22dc062fd4a66d9f5baedd455eb908ddff575085d48daaeb54e586
Description-en: object-relational SQL database (supported version)
 This metapackage always depends on the currently supported PostgreSQL
 database server version.
 .
 PostgreSQL is a fully featured object-relational database management
 system.  It supports a large part of the SQL standard and is designed
 to be extensible by users in many aspects.  Some of the features are:
 ACID transactions, foreign keys, views, sequences, subqueries,
 triggers, user-defined types and functions, outer joins, multiversion
 concurrency control.  Graphical user interfaces and bindings for many
 programming languages are available as well.
Description-md5: bdff2d6e5b2a1dd00e72b3ed8729d9ac
Task: postgresql-server

[свернуть]

Посмотрите на значение в строке Verison: 12+214ubuntu0.1 (в выводе этой команды очень много другой информации, но я пока только версию рассматриваю).

Что это цифры?

Ранее я с этим не сталкивался, поэтому поискал в интернете, нашел вот эту очень хорошую статью, которую и привожу полностью: Наименование версий пакетов в Ubuntu Linux

Если вы пользователь Ubuntu Linux, то наверняка заметили, что многие из пакетов в этом дистрибутиве имеют слово ubuntu в названии версии. С подобным сталкивался и я, но расшифровку значения такого поименования версий мне не нужно было знать… до тех пор, пока не понадобилось опакетить программу под Ubuntu. Тут меня этот вопрос заинтересовал, так как я пакетировал программы под Debian /Linux и там поименовка версий весьма чёткая и предельно простая. Поиск информации на эту тему в интернете дал исчерпывающий ответ, но на английском языке. Для не владеющих им я постараюсь изложить содержание этого объяснения почти в дословном переводе.

Ни для кого не секрет, что многие пакеты в Ubuntu берутся из кодовой базы Debian практически без изменений и именно поэтому пришлось вводить слово ubuntu в название версии пакета.

В общем случае для такого рода пакетов название выглядит как «package-XubuntuY«. Что это означает?

  1. package — это название программы или библиотеки
  2. X — это версия пакеты в репозиториях Debian’а.
    • Если X=0, то это означает, что такого пакета нет в репозиториях Debian’а или команда разработчиков Ubuntu взяла более свежую версию программы и её пока нет в репозиториях Debian’а.
    • Пример: bzip2-1.0.3-0ubuntu2
  3. ubuntuY — это Y-ая версия пакета Ubuntu, полученная из пакета Debian’а.
    • Если эта часть в названии версии пакета опущена, то это означает, что пакет взят из Debian’а без изменений — по сути это пакет Debian’а, а не Ubuntu.
    • Пример: gzip-1.3.5-12
    • Если эта строка присутствует, то это означает, что команда разработчиков Ubuntu взяла debian’овский пакет, добавила в него своих заплат и выпустила под своей версией.
    • Пример: sudo-1.6.8p12-1ubuntu6 — 6-я версия пакета sudo в Ubuntu, которая базируется на Debian’овской версии пакета за номером 1.6.8p12-1.

На правах вывода из этого несложного правила приведу возможные версии пакета в Ubuntu:
2.6.0-1 — означает, что это первая версия Debian’овского пакета версии 2.6.0 не содержащая изменений команды Ubuntu.
2.6.0-1ubuntu1 — означает, что это первая версия пакета в Ubuntu, основанная на Debian’овском пакете версии 2.6.0-1.
2.6.0-0ubuntu1 — означает, что этого пакета еще не было в репозитории Debian’а и это первая версия Ubuntu-пакета версии 2.6.0.

После такого объяснения надеюсь понятно, что пакет celestia-glut в Ubuntu версии 1.6.0+dfsg-1ubuntu1 означает, что это OpenGL версия пакета космического симулятора Celestia версии 1.6.0, над которой поработала команда Debian’а по освобождению этого пакета от несвободных компонентов (+dfsg) и выпустила в качестве первого пакета (-1). После этого команда Ubuntu взяла этот debian’овский пакет, внесла свои изменения и выпустила свой первый пакет (ubuntu1).

Для пакета fsl из Ubuntu за версией 4.1.4-2ubuntu1 я предлагаю самим расшифровать историю его происхождения в Ubuntu.

P.S. Для пакетов из -репозиториев Ubuntu наименование версии будет более сложным и запутанным — вида stellarium-0.10.5~svn6140-0ubuntu1ppa4~lucid1, что означает, что это планетарий Stellarium ревизии 6140 из svn-репозитория (~svn6140) версии 0.10.5, не имеющий пакета в Debian’е (-0) и являющийся первым пакетом в Ubuntu (ubuntu1) и сделанный для Ubuntu 10.04 (~lucid1) в рамках проекта , причем -сборка уже четвертая — ppa4.


Be the first to comment

Leave a Reply

Ваш Mail не будет опубликован.


*