Alt linux add repo

APT в ALT Linux/CreateRepository

Для создания репозитория достаточно создать правильную структуру директорий, разместить в ней rpm-пакеты и создать метаинформацию для APT.

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

APT-RPM репозиторий выглядит достаточно просто:

i586/ base/ # метаинформация release pkglist.reponame.bz2 . RPMS.reponame/ # пакеты архитектуры i586 foobar-1.2-5.i586.rpm x86_64/ base/ # метаинформация release pkglist.reponame.bz2 RPMS.reponame/ # пакеты архитектуры x86_64 foobar-1.2-5.x86_64.rpm noarch/ base/ # метаинформация release pkglist.reponame.bz2 RPMS.reponame/ # архитектурно-независимые пакеты

Такая структура формирует три источника для APT ( — место, где располагается репозиторий):

rpm file: i586 reponame rpm file: x86_64 reponame rpm file: noarch reponame

NB: указываем noarch и один из архитектурно-зависимых репозиториев, всё в кучу не надо!

Более изощрённую структуру директорий, когда в репозитории хранятся пакеты с иходным текстом (.src.rpm), общие для нескольких архитектур, а также когда в репозитории имеется несколько компонентов (в данном репозитории компонент один — reponame), можно посмотреть, к примеру, в репозитории ALT Linux Server. Обратите внимание, что в этом репозитории используется отдельная директория files для хранения всех пакетов, и директории RPMS.*/SRPMS.* являются символическими ссылками на поддиректории из files.

Размещение пакетов

Просто разложите пакеты по директориям /RPMS.reponame в зависимости от архитектуры пакета.

Создание/обновление метаинформации

Для создания/обновления метаинформации (файлов, хранящихся в директории base), используйте утилиту genbasedir из пакета apt-repo-tools (до 5.0/branch включительно — apt-utils):

#!/bin/sh REPO_DIR="$1" REPO_NAME="$2" for arch in i586 i686 x86_64 noarch; do genbasedir --bloat --progress --topdir=$REPO_DIR $arch $REPO_NAME done 

Полезные советы

Создание «скелета» репозитория

#!/bin/sh REPO_DIR="$1" REPO_NAME="$2" for i in i586 i686 x86_64 noarch; do mkdir -p "$REPO_DIR/$i/base" "$REPO_DIR/$i/RPMS.$REPO_NAME" done 

Добавление произвольного набора пакетов в репозиторий

Перед запуском этого скрипта, возможно нужно будет установить недостающие пакеты:

apt-get install /usr/bin/packages

Вот скрипт для добавления пакетов: Файл:Addpackages.sh

Читайте также:  Request irq linux kernel

После этой операции необходимо обновить метаинформацию. Побочным эффектом является приведение имён файлов с пакетами к «каноническому» виду.

Создание репозитория на основе содержимого кэша APT

Добавьте содержимое кэша APT в репозиторий (см. выше) и обновите метаинформацию (см. выше).

Автоматизация добавления пакетов в репозиторий

Воспользуйтесь скриптами из пакета sisyphus.

Запись репозитория на CD/DVD

rpm-dir

Можно создать репозиторий в виде одного каталога без всяких индексов.

1. Создайте два вложенных каталога:

Примечание: Обратите внимание на наименование архитектуры (x86_64) и компонент dir (после RPMS.). Можете выбрать любые слова.

2. Скопируйте все файлы (например, все файлы *.rpm из /var/cache/apt/archives/ , которые устанавливались вручную или через обновления системы). Делать это нужно под root!

3. На машине, где нужны эти обновления, пропишите репозиторий:

apt-repo add 'rpm-dir file:/ x86_64 dir'

rpm-dir используется в случае, когда в репозитории нет каталога base с индексом пакетов. Его удобно использовать, например, для подключения репозитория с несколькими свежесобранными пакетами. Так делает hasher в режиме по умолчанию (—with-stuff). Однако в этом случае apt-get update будет открывать каждый пакет в репозитории, для большого набора (в частности, для зеркала) такой способ не годится.

Источник

Alt linux add repo

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

APT может пользоваться любым количеством репозиториев одновременно, формируя единую информационную базу обо всех содержащихся в них пакетах. При установке пакетов APT обращает внимание только на название пакета, его версию и зависимости. Для APT не имеет значения расположение пакета в том или ином репозитории.

Для одновременного подключения нескольких репозиториев необходимо отслеживать их совместимость друг с другом, т.е. их пакетная база должна отражать один определённый этап разработки. Совместное использование репозиториев, относящихся к разным дистрибутивам, или смешивание стабильного репозитория с нестабильной веткой разработки (Sisyphus) может привести к различным неожиданностям и трудностям при обновлении пакетов.

APT осуществляет взаимодействие с репозиториями при помощи различных протоколов доступа. Наиболее популярные — HTTP и FTP .

Для того чтобы APT мог использовать тот или иной репозиторий, информацию о нём необходимо поместить в файл /etc/apt/sources.list , либо в любой файл .list (например, mysources.list ) в каталоге /etc/apt/sources.list.d/ . Описания репозиториев заносятся в эти файлы в следующем виде:

rpm [подпись] метод:путь база название rpm-src [подпись] метод:путь база название

[подпись] — необязательная строка-указатель на электронную подпись разработчиков. Наличие этого поля подразумевает, что каждый пакет из данного репозитория должен быть подписан соответствующей электронной подписью. Подписи описываются в файле /etc/apt/vendor.list ;

Читайте также:  Сброс пароля oracle linux

Непосредственно после установки дистрибутива Альт Сервер в файлах /etc/apt/sources.list.d/*.list обычно указывается интернет-репозиторий, совместимый с установленным дистрибутивом.

После редактирования списка репозиториев в sources.list , необходимо обновить локальную базу данных APT о доступных пакетах. Это делается командой apt-get update .

Если в sources.list присутствует репозиторий, содержимое которого может изменяться (например, постоянно разрабатываемый репозиторий или репозиторий обновлений по безопасности), то прежде чем работать с APT , необходимо синхронизировать локальную базу данных с удалённым сервером командой apt-get update . Локальная база данных создаётся заново при каждом изменении в репозитории: добавлении, удалении или переименовании пакета.

При установке определённого пакета APT производит поиск самой новой версии этого пакета во всех известных ему репозиториях вне зависимости от способа доступа к ним. Так, если в репозитории, доступном в сети Интернет, обнаружена более новая в сравнении с компакт-диском версия программы, то APT начнёт загружать соответствующий пакет из сети Интернет. Поэтому, если подключение к сети Интернет отсутствует или ограничено низкой пропускной способностью канала или высокой стоимостью, то следует закомментировать строчки (добавить в начало строки символ #) в /etc/apt/sources.list , относящиеся к ресурсам в сети Интернет.

⁠53.1. Редактирование репозиториев

Источник

APT в ALT Linux/CreateRepository

Для создания репозитория достаточно создать правильную структуру директорий, разместить в ней rpm-пакеты и создать метаинформацию для APT.

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

APT-RPM репозиторий выглядит достаточно просто:

i586/ base/ # метаинформация release pkglist.reponame.bz2 . RPMS.reponame/ # пакеты архитектуры i586 foobar-1.2-5.i586.rpm x86_64/ base/ # метаинформация release pkglist.reponame.bz2 RPMS.reponame/ # пакеты архитектуры x86_64 foobar-1.2-5.x86_64.rpm noarch/ base/ # метаинформация release pkglist.reponame.bz2 RPMS.reponame/ # архитектурно-независимые пакеты

Такая структура формирует три источника для APT ( — место, где располагается репозиторий):

rpm file: i586 reponame rpm file: x86_64 reponame rpm file: noarch reponame

NB: указываем noarch и один из архитектурно-зависимых репозиториев, всё в кучу не надо!

Более изощрённую структуру директорий, когда в репозитории хранятся пакеты с иходным текстом (.src.rpm), общие для нескольких архитектур, а также когда в репозитории имеется несколько компонентов (в данном репозитории компонент один — reponame), можно посмотреть, к примеру, в репозитории ALT Linux Server. Обратите внимание, что в этом репозитории используется отдельная директория files для хранения всех пакетов, и директории RPMS.*/SRPMS.* являются символическими ссылками на поддиректории из files.

Читайте также:  Linux медиацентр из компьютера

Размещение пакетов

Просто разложите пакеты по директориям /RPMS.reponame в зависимости от архитектуры пакета.

Создание/обновление метаинформации

Для создания/обновления метаинформации (файлов, хранящихся в директории base), используйте утилиту genbasedir из пакета apt-repo-tools (до 5.0/branch включительно — apt-utils):

#!/bin/sh REPO_DIR="$1" REPO_NAME="$2" for arch in i586 i686 x86_64 noarch; do genbasedir --bloat --progress --topdir=$REPO_DIR $arch $REPO_NAME done 

Полезные советы

Создание «скелета» репозитория

#!/bin/sh REPO_DIR="$1" REPO_NAME="$2" for i in i586 i686 x86_64 noarch; do mkdir -p "$REPO_DIR/$i/base" "$REPO_DIR/$i/RPMS.$REPO_NAME" done 

Добавление произвольного набора пакетов в репозиторий

Перед запуском этого скрипта, возможно нужно будет установить недостающие пакеты:

apt-get install /usr/bin/packages

Вот скрипт для добавления пакетов: Файл:Addpackages.sh

После этой операции необходимо обновить метаинформацию. Побочным эффектом является приведение имён файлов с пакетами к «каноническому» виду.

Создание репозитория на основе содержимого кэша APT

Добавьте содержимое кэша APT в репозиторий (см. выше) и обновите метаинформацию (см. выше).

Автоматизация добавления пакетов в репозиторий

Воспользуйтесь скриптами из пакета sisyphus.

Запись репозитория на CD/DVD

rpm-dir

Можно создать репозиторий в виде одного каталога без всяких индексов.

1. Создайте два вложенных каталога:

Примечание: Обратите внимание на наименование архитектуры (x86_64) и компонент dir (после RPMS.). Можете выбрать любые слова.

2. Скопируйте все файлы (например, все файлы *.rpm из /var/cache/apt/archives/ , которые устанавливались вручную или через обновления системы). Делать это нужно под root!

3. На машине, где нужны эти обновления, пропишите репозиторий:

apt-repo add 'rpm-dir file:/ x86_64 dir'

rpm-dir используется в случае, когда в репозитории нет каталога base с индексом пакетов. Его удобно использовать, например, для подключения репозитория с несколькими свежесобранными пакетами. Так делает hasher в режиме по умолчанию (—with-stuff). Однако в этом случае apt-get update будет открывать каждый пакет в репозитории, для большого набора (в частности, для зеркала) такой способ не годится.

Источник

Оцените статью
Adblock
detector