Журнал LinuxFormat - перейти на главную

LXF119:DrBrown2

Материал из Linuxformat
Перейти к: навигация, поиск

Структура репозитория Debian

Debian/Ubuntu Недоумеваете, откуда берутся ваши Deb- пакеты? Давайте разберемся с устройством репозиториев.

Месяц назад мы говорили о Deb-файлах. Мы разобрались, что это единица упаковки ПО в Debian и в системах на базе Debian, вроде Ubuntu. Мы рассмотрели внутреннюю структуру Deb-файла и узнали, как создать свой собственный.

В этом месяце мы займемся репозиториями Debian. Репозиторий – это набор Deb- файлов, хранящихся в каталогах заданной структуры, и сопровождающий его файл индекса пакетов. Обычно к репозиториям открыт общий доступ (например, по HTTP), но они могут находиться и в файловой системе (например, репозитории, смонтированные по NFS с сервера, или репозитории на CD).

Пакеты в карманах

В Ubuntu используется двухуровневое логическое группирование пакетов, которое напрямую отражается в структуре каталогов репозиториев. Каталоги верхнего уровня называются «карманами», хотя иногда о них говорят как о «дистрибутивах». В Ubuntu Hardy Heron карманы таковы:

  • hardy Это основной продукт – фиксированная версия на момент релиза Ubuntu и как раз то, что есть на вашем CD.
  • hardy-updates Обновления и исправления ошибок для релиза Hardy. Здесь вы не найдете новых версий приложений – это строго обновления к версиям, опубликованным на момент релиза.
  • hardy-security Тоже обновления, но связанные с безопасностью.
  • hardy-backports Новые версии уже выпущенных пакетов. Например, в этом репозитории есть Arts версии 1.5.10 (звуковая система Linux), тогда как в Hardy включен Arts версии 1.5.9. Данный карман поддерживается сообществом.

Если у вас другой дистрибутив Ubuntu, например, Intrepid Ibex, карманы будут называться так: intrepid, intrepid-security и т. д.

Под каждым из карманов лежит второй слой структуры. На нем ПО делится на 4 категории (компонента) на основе уровня поддержки пакета и лицензионных соглашений:

  • main Пакеты, полностью поддерживаемые Canonical; ими можно пользоваться свободно по свободным лицензиям. Для этих пакетов Canonical предоставляет обновления безопасности.
  • restricted Пакеты, поддерживаемые Canonical, но не доступные по свободным лицензиям, хотя обычно бесплатные. В эту категорию попадают проприетарные драйверы, выпускаемые производителями видеокарт в двоичном формате.
  • universe Открытые пакеты, поддерживаемые сообществом. Они не поддерживаются Canonical, и их нет на CD Ubuntu. Это самая большая категория.
  • multiverse У этих пакетов обычно ограниченные лицензии, и для их использования может потребоваться регистрация или оплата.

Для работы с этими репозиториями в Debian есть набор утилит, совместно известных как APT (Advanced Packaging Tool). Здесь мы не будем касаться APT – лучше посмотреть man-страницы apt-get и apt-cache. Расположение репозиториев задается в файле конфигурации APT /etc/apt/sources.list. Секции этого файла соответствуют структуре карманов и компонентов.

Структура репозитория

Структуру настоящего репозитория можно увидеть, открыв страницу http://ru.archive.ubuntu.com/ubuntu. Пройдя по ней ниже, вы увидите иерархию каталогов, которую я обрисовал. Левая часть схемы (в каталоге dists) отражает разбиение на карманы, компоненты и архитектуры, которое мы обсудили, но самих Deb-файлов здесь нет. Вместо них вы найдете файлы Packages.bz2. (Как раз они-то и извлекаются и кэшируются локально, когда вы выполняете команду sudo apt-get update.)

Собственно Deb-файлы находятся в каталоге pool, который разделен по компонентам (не по карманом или архитектурам). Чтобы сохранить структуру управляемой, есть еще один уровень каталогов a, b, c и т. д. Файлы Packages.bz2 связывают две ветви этой иерархии – имя пакета с именем файла в пуле. Репозитории с пулом позволяют избежать дублирования Deb-файлов, общих для нескольких архитектур или дистрибутивов. Похожую структуру можно увидеть на CD Ubuntu, правда, лишь для компонентов main и restricted.

Персональные инструменты
купить
подписаться
Яндекс.Метрика