Как изменить apt-add-repository, чтобы поддерживать другие дистрибутивы на базе Debian?

Вопрос или проблема

Я использую дистрибутив ОС, основанный на Debian (если быть точнее, Devuan). Я пытаюсь использовать программу на Python под названием apt-add-repository, которая является частью пакета software-properties-common.

К сожалению, при запуске программы возникает ошибка, и я получаю следующее сообщение:

Traceback (most recent call last):
  File "/usr/bin/apt-add-repository", line 361, in <module>
    addaptrepo = AddAptRepository()
  File "/usr/bin/apt-add-repository", line 39, in __init__
    self.distro.get_sources(self.sourceslist)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/aptsources/distro.py", line 92, in get_sources
    raise NoDistroTemplateException(
    ...<2 lines>...
    )
aptsources.distro.NoDistroTemplateException: Ошибка: не удалось найти шаблон для дистрибутива devuan/excalibur ceres

Я просмотрел сам скрипт — “шаблонов” там нет; я также изучил несколько возможных файлов, которые он может импортировать, но безуспешно, или, возможно, я что-то упустил.

Мои вопросы:

  • Где на самом деле находятся эти “шаблоны дистрибутивов”?
  • Как я могу добавить шаблон для моего дистрибутива?

Это баг в python-apt-common-devuan — он не описывает excalibur. Шаблоны расположены в /usr/share/python-apt/templates, и производные должны предоставлять свои собственные (что Devuan и делает).

Вы можете исправить это, отредактировав файл /usr/share/python-apt/templates/Devuan.info, чтобы добавить запись для excalibur:

Suite: excalibur
RepositoryType: deb
BaseURI: http://deb.devuan.org/merged/
MatchURI: [a-z]{2}\.deb\.devuan\.org
MirrorsFile: Devuan.mirrors
_Description: Devuan 6 'Excalibur'
Component: main
_CompDescription: Официально поддерживается
Component: contrib
_CompDescription: Программное обеспечение, совместимое с DFSG, с несвободными зависимостями
Component: non-free
_CompDescription: Программное обеспечение, несовместимое с DFSG

Ответ или решение

Для решения проблемы с поддержкой Devuan в скрипте apt-add-repository, связанном с пакетом software-properties-common, необходимо провести определенные изменения в конфигурации системы. Поскольку вы сталкиваетесь с ошибкой NoDistroTemplateException, это указывает на то, что скрипт не может найти нужный шаблон дистрибутива для Devuan. Рассмотрим, как решить эту проблему.

Теория

Во всех Debian-подобных дистрибутивах Linux для управления репозиториями часто используется утилита apt-add-repository. Она позволяет легко добавлять репозитории в список источников пакетов. Однако эта утилита требует наличия конфигураций, которые называются "шаблонами дистрибутивов", для каждого поддерживаемого дистрибутива. Эти шаблоны содержат информацию о способах доступа и организации репозиториев пакетов для конкретной операционной системы.

Если дистрибутив не предоставляет свой шаблон, или если в существующем шаблоне отсутствует информация о текущей версии дистрибутива, утилита может выдать ошибку, как в вашем случае с Devuan и версией "excalibur".

Пример

Шаблоны для разных дистрибутивов обычно располагаются в директории /usr/share/python-apt/templates. В случае вашего Devuan, требуется поправить или создать файл Devuan.info, чтобы добавить информацию о новой версии "excalibur". Пример записи для Devuan может выглядеть следующим образом:

Suite: excalibur
RepositoryType: deb
BaseURI: http://deb.devuan.org/merged/
MatchURI: [a-z]{2}\.deb\.devuan\.org
MirrorsFile: Devuan.mirrors
_Description: Devuan 6 'Excalibur'
Component: main
_CompDescription: Officially supported
Component: contrib
_CompDescription: DFSG-compatible Software with Non-Free Dependencies
Component: non-free
_CompDescription: Non-DFSG-compatible Software

Этот шаблон дает apt-add-repository указания по тому, где искать пакеты и какие компоненты поддерживаются.

Применение

  1. Отредактируйте или создайте файл Devuan.info:

    • Если файла Devuan.info нет в директории /usr/share/python-apt/templates, создайте его.
    • Добавьте содержание, аналогичное выше показанному примеру, в файл. Убедитесь, что все пути указаны правильно и соответствуют вашей версии Devuan.
  2. Обеспечьте правильное форматирование:

    • Внимательно отнеситесь к синтаксису и форматированию. Ошибки в этих аспектах могут привести к дальнейшим проблемам с конфигурацией.
  3. Проверьте и обновите пакеты:

    • После изменения файла, убедитесь, что пакеты обновлены и система видит правильную версию Devuan. Используйте команды sudo apt update и sudo apt upgrade для применения изменений.
  4. Тестируйте apt-add-repository:

    • Попробуйте снова запустить apt-add-repository, чтобы убедиться, что утилита теперь корректно распознает вашу версию Devuan.
  5. Обратитесь к документации:

    • Если проблемы сохраняются, обратитесь к официальной документации Devuan или форума сообщества для получения дополнительной помощи. Возможно, потребуется внести дополнительные изменения в конфигурацию или обновить скрипты.

Следуя данным шагам, вы сможете адаптировать утилиту apt-add-repository для работы с вашей конкретной версией Devuan, что позволит вам более эффективно управлять репозиториями и получать доступ к необходимым пакетам вашего дистрибутива.

Оцените материал
Добавить комментарий

Капча загружается...