Подробный гайд по настройке sources.list в ALT Linux для работы apt-get build-dep

Подробный гайд по настройке sources.list в ALT Linux. Узнайте, как подключить репозитории src и использовать build-dep для успешной сборки пакетов.

2026.10.31                  


Подробный гайд по настройке sources.list в ALT Linux для работы apt-get build-depПодробный гайд по настройке sources.list в ALT Linux для работы apt-get build-dep Сборка пакетов в ALT Linux имеет свою специфику, так как дистрибутив использует пакетный менеджер apt-rpm (а не классический Debian apt).


Главное правило для работы команды apt-get build-dep (или apt build-dep) в ALT Linux: чтобы система могла прочитать зависимости для сборки (BuildRequires), в sources.list обязательно должен быть подключен компонент исходных кодов — src.


Шаг 1. Понимание синтаксиса sources.list в ALT Linux



В отличие от Debian/Ubuntu, где исходники подключаются через deb-src, в ALT Linux используется единая строка rpm, в которой перечисляются архитектуры и компоненты. Чтобы подключить репозиторий исходников (SRPM), нужно просто добавить компонент src в конец строки.

Файл для редактирования: /etc/apt/sources.list (или файлы в /etc/apt/sources.list.d/).


Шаг 2. Настройка sources.list

Откройте файл от имени суперпользователя:

su -
nano /etc/apt/sources.list

Ниже приведены готовые примеры строк для разных веток ALT Linux. Обратите внимание на src в самом конце каждой строки.


Для стабильной ветки p10 (рекомендуется для продакшена):

rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/p10/ x86_64 classic i586 noarch src

Для стабильной ветки p11 (если вы используете новый релиз):

rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/p11/ x86_64 classic i586 noarch src

Для нестабильной ветки Sisyphus (rolling release):

rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/ x86_64 classic i586 noarch src

Важные нюансы синтаксиса:

  1. x86_64 — ваша основная архитектура.
  2. classic — основной компонент с пакетами.
  3. i586 и noarch — обязательно оставьте их, даже если у вас 64-битная система. Многие зависимости для сборки (особенно скрипты, документации или 32-битные библиотеки для multilib) лежат именно в этих компонентах. Без них build-dep может выдать ошибку о нехватке пакетов.
  4. src — тот самый компонент, который содержит метаданные SRPM-пакетов, необходимые для build-dep.

Если вы используете утилиту apt-repo для управления репозиториями, она генерирует файлы в /etc/apt/sources.list.d/apt-repo.list. Вы можете отредактировать этот файл, добавив src в нужные строки, либо просто прописать строки напрямую в /etc/apt/sources.list.


Шаг 3. Обновление кэша пакетов

После сохранения файла обновите списки пакетов. apt скачает индексы не только бинарных пакетов, но и индекс исходников (Sources для компонента src):

apt-get update

Если в выводе вы видите, что скачиваются данные для компонента src (обычно это видно по размеру или упоминанию src в логе), значит, всё настроено верно.


Шаг 4. Использование build-dep

Теперь, когда репозитории исходников подключены, вы можете установить все зависимости для сборки любого пакета.

Синтаксис:

apt-get build-dep <имя_пакета>

Пример:

Допустим, вы хотите пересобрать mc (Midnight Commander) или firefox.

apt-get build-dep mc

Команда найдет SRPM-пакет mc, прочитает теги BuildRequires: из его .spec файла и установит все необходимые бинарные пакеты (компиляторы, библиотеки для разработки, утилиты) из репозиториев classic, i586 и noarch.


Шаг 5. Полный цикл пересборки пакета (Бонус)

Поскольку build-dep — это только первый шаг, вот как выглядит стандартный workflow сборки пакета в ALT Linux после настройки репозиториев:

1. Устанавливаем зависимости:

   apt-get build-dep mc

2. Скачиваем исходный код (SRPM) и распаковываем его:

В ALT Linux для работы с исходниками настоятельно рекомендуется использовать утилиту gear (входит в пакет gear).

   apt-get source mc

Эта команда скачает .src.rpm и распакует его в текущую директорию (создастся папка с именем пакета, внутри которой будут .spec файл, патчи и архив с исходниками).


3. Переходим в директорию с исходниками:

   cd mc-*

4. Собираем пакет:

В ALT Linux сборка выполняется через gear или rpmbuild.

   gear build

Альтернатива (классический rpmbuild):

   rpmbuild -bb mc.spec

5. Готовые RPM-пакеты появятся в директории RPMS/ (или x86_64/), а SRPM — в SRPMS/.




Возможные проблемы и их решение (Troubleshooting)

1. Ошибка E: Build-Depends dependency for <pkg> cannot be satisfied because no providers of "<dep>" are available

Причина:

В sources.list не указан компонент src, либо не указаны компоненты i586/noarch.

Решение:

Проверьте строки в sources.list по образцу из Шага 2 и выполните apt-get update.


2. Пакет не найден при apt-get source <pkg>

Причина:

Пакет находится не в компоненте classic, а, например, в extra, kernel или gnome.

Решение:

Добавьте нужный компонент в строку sources.list.

Например, для пакетов GNOME:

... x86_64 classic gnome i586 noarch src

3. Не хватает прав для сборки

  • Убедитесь, что у вашего пользователя есть права на запись в директорию, где вы распаковываете исходники, и что установлены базовые инструменты: rpm-build, gear, apt-repo.

Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта