Что является стандартом для именования имени файла deb?
Я хочу узнать стандарт имен файлов deb. Например, у меня есть файл с именем foo_1.0.0-1_all.deb
, Как я выяснил в Debian FAQ, существует такое соглашение:
<foo>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb
Но это не стандарт. Он не отвечает на множество вопросов. Например: как долго это может быть? Какие символы разрешены? Какие значения могут быть в?
Есть ли какой-нибудь стандарт, который подробно описывает имя файла deb?
3 ответа
Ну, как вы сказали, имя foo_VVV-RRR_AAA.deb
для файла deb это просто соглашение по именованию .deb
файлы, где VVV
, RRR
а также AAA
версия, ревизия и архитектура пакета foo
,
Кроме того, это соглашение предлагается (продиктовано) при сборке пакетов с помощью debuild или git-buildpackage.
Если вы согласны с этим соглашением в порядке, если нет, вы можете переименовать .deb
файлы, как вы хотите, но только следуя этим правилам (в этом случае, возможно, вы должны запустить dpkg --info <deb_file>
чтобы найти простую информацию, которую обычно можно получить, используя вышеуказанное соглашение для имени файла deb).
Теперь, как вы можете прочитать в Filename - Wikipedia:
Не существует общего стандарта кодирования для имен файлов.
Поскольку имена файлов должны обмениваться между программными средами (например, передача файлов по сети, хранение файловой системы, программное обеспечение для резервного копирования и синхронизации файлов, управление конфигурацией, сжатие и архивирование данных и т. Д.), Очень важно не потерять информацию об именах файлов между приложениями. Это привело к широкому принятию Unicode в качестве стандарта для кодирования имен файлов, хотя устаревшее программное обеспечение может не поддерживать Unicode.
[...] Максимальная длина имени файла не является стандартной и может зависеть от размера единицы кода. Хотя это серьезная проблема, в большинстве случаев это ограниченная проблема.
Итак, если в общем случае не существует стандарта для имен файлов, я почти уверен, что не существует специального стандарта для .deb
имена файлов. Или, если вы все еще в замешательстве, примите соглашение в качестве стандарта и следуйте этим правилам.
Имена пакетов Debian определены в политике Debian, раздел 3.1.The package name
здесь , что ведет к разделу 5.6.1Source
здесь . Обратите внимание, что прямо указано, что имя пакета используется в качестве имени файла.
Ubuntu добавляетubuntuX
номер версии сверху. Это задокументировано в разделе «Руководство по упаковке Ubuntu».The changelog
здесь . Я скопирую его на всякий случай, если URL-адрес изменится в будущем:
Обратите внимание, что к версии добавлено -0ubuntu1, это версия дистрибутива, используемая для обновления упаковки (например, для исправления ошибок) с новыми загрузками в той же исходной версии выпуска.
Ubuntu и Debian имеют несколько разные схемы управления версиями пакетов, чтобы избежать конфликтов пакетов с одной и той же исходной версией. Если пакет Debian был изменен в Ubuntu, к концу версии Debian добавляется ubuntuX (где X — номер версии Ubuntu). Поэтому, если пакет Debian hello 2.6-1 был изменен Ubuntu, строка версии будет 2.6-1ubuntu1. Если пакет для приложения не существует в Debian, то версия Debian равна 0 (например, 2.6-0ubuntu1).
Вот некоторые мысли о соглашениях об именах:
Если вы использовали Debian какое-то время, вы могли заметить, что все файлы пакета Debian следуют определенным соглашениям об именах. Каждый двоичный пакет Debian должен иметь имя файла в следующем формате: packagename_version_arch.deb, где "packagename" - это имя пакета, "version" - это версия пакета с номерами старшего, младшего номера и редакции, а "arch" - это имя пакета. архитектура для пакета. <..>
С IBM.com
Хотя этот и предназначен для RPM, он также имеет довольно хорошее соглашение об именах: name-version-release.архитектура.rpm
где:
name - это имя, описывающее упакованное программное обеспечение.
версия - версия упакованного программного обеспечения.
выпуск - количество раз, когда эта версия программного обеспечения была упакована.
архитектура - это сокращенное имя, описывающее тип компьютерного оборудования, на котором должно работать упакованное программное обеспечение. Это также может быть строка src или nosrc. Обе эти строки указывают, что файл является исходным пакетом RPM. Строка nosrc означает, что файл содержит только файлы сборки пакета, а строка src означает, что файл содержит необходимые файлы сборки пакета и исходный код программного обеспечения.
С RPM.org