Вопрос или проблема
Я использую дистрибутив ОС, основанный на 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
указания по тому, где искать пакеты и какие компоненты поддерживаются.
Применение
-
Отредактируйте или создайте файл
Devuan.info
:- Если файла
Devuan.info
нет в директории/usr/share/python-apt/templates
, создайте его. - Добавьте содержание, аналогичное выше показанному примеру, в файл. Убедитесь, что все пути указаны правильно и соответствуют вашей версии Devuan.
- Если файла
-
Обеспечьте правильное форматирование:
- Внимательно отнеситесь к синтаксису и форматированию. Ошибки в этих аспектах могут привести к дальнейшим проблемам с конфигурацией.
-
Проверьте и обновите пакеты:
- После изменения файла, убедитесь, что пакеты обновлены и система видит правильную версию Devuan. Используйте команды
sudo apt update
иsudo apt upgrade
для применения изменений.
- После изменения файла, убедитесь, что пакеты обновлены и система видит правильную версию Devuan. Используйте команды
-
Тестируйте
apt-add-repository
:- Попробуйте снова запустить
apt-add-repository
, чтобы убедиться, что утилита теперь корректно распознает вашу версию Devuan.
- Попробуйте снова запустить
-
Обратитесь к документации:
- Если проблемы сохраняются, обратитесь к официальной документации Devuan или форума сообщества для получения дополнительной помощи. Возможно, потребуется внести дополнительные изменения в конфигурацию или обновить скрипты.
Следуя данным шагам, вы сможете адаптировать утилиту apt-add-repository
для работы с вашей конкретной версией Devuan, что позволит вам более эффективно управлять репозиториями и получать доступ к необходимым пакетам вашего дистрибутива.