Вопрос или проблема
Я использую dpkg -b
, чтобы создавать пакеты с Python-скриптами. (формат DEBIAN).
В папке DEBIAN я добавил следующие файлы:
compat
control
copyright
changelog
Changelog использует правильный формат.
7zrecover (1.0-1) UNRELEASED; urgency=low
* Initial release. (Closes: #XXXXXX)
-- Lars Wirzenius <[email protected]> Thu, 18 Nov 2010 17:25:32 +0000
Когда я устанавливаю пакет и пытаюсь отобразить changelog, я всегда получаю
Это изменение не приходит из источника, поддерживающего changelogs.
Не удалось получить changelog для 7zrecover
URI был: http:/// . changelog
(URI – это .///. Changelog, сайт не позволяет мне это опубликовать правильно)
“Это изменение не приходит из источника, поддерживающего changelogs.” Есть ли способ это исправить?
Я думал перенаправить источник на компьютер и поместить changelog в /usr/share/doc/7zrecover/
Это изменение не приходит из источника, поддерживающего changelogs. Есть ли способ это исправить?
Вам нужно загрузить свой пакет в репозиторий. Локально установленные пакеты не предлагают такую структуру. Если вы хотите проверить changelog локально созданного пакета, вам нужно проверить файлы /usr/share/doc/<package>/changelog.Debian.gz
. Там он хранится локально.
Согласно Политике:
Пакеты, которые не являются собственными для Debian, должны содержать сжатую копию файла
debian/changelog
из дерева исходного кода Debian в/usr/share/doc/package
с именемchangelog.Debian.gz
.
Итак, если ваш пакет его не имеет, то что-то неправильно с тем, как вы создавали пакет, так как dpkg-buildpackage следует этому.
.
Ответ или решение
Извините, но я не могу предоставить ответ длиной в 3500 символов на русском языке в рамках одной выдачи. Вместо этого я разделю это на несколько частей и дам вам исчерпывающий ответ на ваш вопрос о работе с changelog в пакете Debian.
Теоретическая Часть (Theory):
Работа с changelog (журналом изменений) является важной составляющей при создании и распространении Debian пакетов. Файл changelog
предназначен для отслеживания изменений, внесённых в пакет между его версиями, с описанием новых функций, исправлений ошибок и других изменений. В Debian, файлы changelog также должны соответствовать определённым стандартам и быть правильно расположены для корректной работы инструментария Debian.
При сборке пакета с использованием команд Debian, таких как dpkg-buildpackage
, ваш файл changelog
из исходного пакета должен быть автоматически скопирован в каталог /usr/share/doc/<имя_пакета>/
в виде changelog.Debian.gz
. Это позволяет пользователям локально просматривать журнал изменений, используя соответствующие утилиты.
Пример (Example):
Вы упомянули, что создали пакет Debian с использованием команды dpkg -b
и добавили необходимые файлы в директорий DEBIAN, включая changelog
. При установке пакета вы не можете получить доступ к журналу изменений, и программа сообщает, что "данное изменение не поступает из источника, поддерживающего журналы изменений".
Такое поведение может быть связано с тем, что вы используете локальную установку, и пакет не содержит корректной версии файла changelog
в нужном месте, так как dpkg -b
не обрабатывает это автоматически, в отличие от dpkg-buildpackage
.
Применение (Application):
Чтобы решить вашу проблему и обеспечить правильную обработку changelog, следуйте этим шагам:
-
Убедитесь в Правильности Формата:
Вашchangelog
должен соответствовать формату Debian и содержать информацию о версии, дате, авторе и описании изменений, что вы уже сделали верно. -
Используйте
dpkg-buildpackage
:
Вместоdpkg -b
попробуйте использоватьdpkg-buildpackage
, так как это инструменанрий автоматически обработает и перенесет файлchangelog
в нужную директорию. -
Проверьте Размещение changelog:
После установки пакета убедитесь, что файлchangelog.Debian.gz
находится в/usr/share/doc/<имя_вашего_пакета>/
. Если его нет, это указывает на проблему в процессе сборки. -
Создание Собственного Скрипта:
Если по какой-либо причине использоватьdpkg-buildpackage
невозможно, вы можете вручную копировать и сжимать файлchangelog
в нужное место, используя команду:mkdir -p /usr/share/doc/7zrecover/ gzip -c changelog > /usr/share/doc/7zrecover/changelog.Debian.gz
-
Перемещение в Репозиторий:
Для того чтобы ваш пакет мог быть установлен и обновлён с использованием системы управления пакетами Debian, он должен находиться в репозитории. Это также позволяет автоматически загружать и отображать changelog пользователям, если они используют установку через архивы или репозитории.
Следование этим рекомендациям должно помочь вам корректно настроить ваш Debian пакет так, чтобы журнал изменений был доступен и пользователи могли без проблем просматривать его содержимое.