SDB:Создание источников установки YaST
Эта статья актуальна для версии '10.x', которая теперь является устаревшей! Пожалуйста, обратитесь к странице обсуждения этой статьи для получения подробной информации. |
Содержание
Создание источников установки YaST
Существуют три типа источников установки YaST: простой кэш, yum, и "real" настоящие YaST источники.
Простые Кэш Источники
Обычный кэш источник это каталог, содержащий файлы RPM. Чтобы YaST распознал каталог, как обычный кэш источник, вы должны создать файл (IS_PLAINcache), который содержит заголовки RPM из имеющихся пакетов RPM. YaST нужны данные о пакете (название, версия, зависимости и т.д.) из .rpm файла, чтобы избежать повторного чтения файла снова и снова. Для больших пакетов, это приведет к чрезвычайно длительной задержке по времени, даже если вы не хотите устанавливать этот пакет. Таким образом, нужные данные о пакете извлекаются из пакетов и хранятся в файле.
Этот файл может быть создан утилитой genIS_PLAINcache , которая включена в пакет yast2-packagemanager.
Преимущества
- Простота создания
Недостатки
- RPM с исходниками (src.rpm) не поддерживаются
- Несколько архитектур (i586, i686, noarch, ppc и т.д.) не поддерживается
- Нет описания источника установки в YaST
- genIS_PLAINcache является бинарной (не сценарием) программой, которая работает только на SUSE систем
Пример
У вас есть каталог с рядом бинарных RPM файлов на сервере и вы хотите сделать его доступным как источник установки YaST через HTTP или FTP.
/srv/www/htdocs/suse/RPMS/ `- software1-1.0-1.i686.rpm `- software2-1.0-1.i686.rpm `- software3-1.0-1.i686.rpm `- test/ `- test1-0.99-1.i686.rpm `- test2-0.99-1.i686.rpm `- test3-0.99-1.i686.rpm
Выполнить следующие команды для создания простого кэш источника:
cd /srv/www/htdocs/suse/RPMS/ genIS_PLAINcache -f -r . gzip genIS_PLAINcache
Впоследствии, можно добавить каталог как источник установки в YaST -> сменить источник установки (Change Source of Installation). Примечание о ограничениях, упоминалось выше.
repomd/rpm md/YUM источники
Repomd источник (также называемый rpm md или yum источник) — это каталог, содержащий RPM файлы или подкаталоги, содержащие файлы RPM. Чтобы YaST мог распознать каталог как repomd источник, вы должны создать каталог repodata, содержащий RPM заголовки имеющихся пакетов RPM (по тем же причинам, что и в обычных кэш источниках).
Этот файл может быть создан утилитой createrepo, которая включена в пакет createrepo.
Преимущества
- Простота создания
- Поддерживает несколько архитектур
Недостатки
- RPM с исходниками (src.rpm) не поддерживаются
Пример
У вас есть каталог с рядом RPM файлов на сервере и вы хотите сделать его доступным как YUM источник установки.
/srv/www/htdocs/suse/RPMS/ `- i686/ `- software1-1.0-1.i686.rpm `- software2-1.0-1.i686.rpm `- software3-1.0-1.i686.rpm `- i586/ `- software1-1.0-1.i586.rpm `- software2-1.0-1.i586.rpm `- software3-1.0-1.i586.rpm `- test/ `- test1-0.99-1.i686.rpm `- test2-0.99-1.i686.rpm `- test3-0.99-1.i686.rpm
Выполните следующую команду для создания YUM источника установки:
# createrepo /srv/www/htdocs/suse/RPMS
Впоследствии, можно добавить каталог как источник установки в YaST -> сменить источник установки.
YaST источники
"Реальный" источник YaST (также называемых susetags источник) состоит из нескольких файлов и каталогов, которые описывают источник установки и его содержание: бинарные RPM файлы для различных архитектур и соответствующие исходники RPM файлов. Некоторые файлы описания могут быть получены скриптом create_package_descr, который есть в пакете autoyast2-utils.
Преимущества
- Поддерживает RPM с исходниками
- Несколько архитектур поддерживается
- Меньше, чем файлы
- Хранилища на нескольких носителях (например, компакт-дисков) поддерживается
- Описание источника установки отображается в YaST
- Многоязычное описание поддерживается
- Точный размер пакета (каталога), поддерживается
- Могут использоваться виртуальный(дополнительные) поставщики
Недостатки
- Не так просто создать
Пример
Описание источника установки разделенного на несколько файлов:
media.1/ `- media content content.asc # optional content.key # optional directory.yast setup/descr/ `- packages `- packages.DU `- packages.en
- media.1/media
Файл media.1/media содержит небольшое описание, состоящее из следующих компонентов:
Содержание:
<Author> <Date of creation (YYYYMMDDhhmmss)> <Number of media>
Пример:
Packman 20040127150052 1
Подсказка: строка даты может быть создана с помощью программы date:
date +%Y%m%d%H%M%S
Поле date может быть любым, оно используется только для идентификации различных media с одинаковыми данными. Использование даты позволяет определить, версию в течении beta/rc этапа разработки продукции.
- content
Файл content содержит описание пакетов с использованием следующих полей:
Key Содержание PRODUCT Название продукта VERSION Версия продукта VENDOR Разработчик продукта LABEL Надпись, которая будет использоваться в YaST ARCH.<base> Поддерживаемые архитектуры для базовой архитектуры DEFAULTBASE Основная архитектура при невозможности определения таковой YaST DESCRDIR Директория содержащая описание пакетов DATADIR Директория содержащая пакеты
Пример:
PRODUCT Packman VERSION 10.0-0 LABEL Packman (SUSE LINUX 10.0) VENDOR Packman Packager Team ARCH.i686 i686 i586 i486 i386 noarch ARCH.i586 i586 i486 i386 noarch DEFAULTBASE i586 DESCRDIR setup/descr DATADIR RPMS
В SUSE Linux 10,1 установка источников проверялась подписью cryptographically файла содержания и с использованием SHA1 checksums контрольной суммы. Используются отдельные подписи (т.е. подпись, которая размещается в отдельном файле). Для установки ваших источников это необязательно, но рекомендуется. См. страницу безопасная установка источников для более подробной информации.
content.asc
содержит подписи и публичный ключ от GPG ключей, который используется для доступа к файлу и может быть помещен рядом с файлами content и content.asc в файл с именем
content.key
, чтобы облегчить пользователю импорт ключа в RPM схему.
В файле описания разрешаются два дополнительных, необязательных тега, META и KEY. Если они присутствуют, они должны соответствовать требованиям:
- Для каждого файла в каталоге DESCRDIR (например, setup/descr) должен быть прописан META.
- Для каждого GPG ключа, который используется для подписи RPM пакетов и должна быть записть KEY в связке RPM ключей. Сами ключи должны быть размещены в том же каталоге, что и файл описания.
Пример:
META SHA1 b5e293f8df00bfe45d3ed4521af2d9befe48656f Basis-Devel-10.1-42.noarch.sel META SHA1 4bbb4a037421bbb5b4d9df7ecaa0e48e7f0edf67 packages KEY SHA1 a108c6aab19fe604fa98ef299cdce6e6ba275f09 gpg-pubkey-0dfb3188-41ed929b.asc
Эти теги имеют три атрибута. Первый показывает тип контрольной суммы, что используется (в настоящее время допускается только SHA1), второй — в контрольную сумму, и третий — имя файла метаданных или ключ.
- directory.yast
YaST использует файл, если источник установки добавляется с помощью протокола, который не поддерживает список каталогов (например, HTTP). Этот файл может легко быть создан командой ls:
ls -A1 > directory.yast
Пример:
RPMS content directory.yast media.1 setup
- setup/descr/*
Эти файлы могут быть получены скриптом create_package_descr. Они содержат зависимости, размер и описание всех пакетов в источнике установки.
Пример:
Ваш каталог на FTP сервере, содержащий RPM пакеты двоичные и в исходниках для SUSE Linux. Большинство бинарных RPM пакетов существуют для двух архитектур (i586/i686). Кроме того, некоторые скрипты упакован в архитектурно-независимые RPM пакеты (noarch). Вы хотите сделать этот каталог источником установки YaST для SUSE Linux 10,0.
/srv/ftp/pub/linux/suse/10.0/RPMS/ `- i586/ | `- software1-1.0-1.i586.rpm | `- software2-1.0-1.i586.rpm `- i686/ | `- software1-1.0-1.i686.rpm | `- software2-1.0-1.i686.rpm `- noarch/ | `- script1-1.0-1.noarch.rpm | `- script2-1.0-1.noarch.rpm `- src/ `- software1-1.0-1.src.rpm `- software2-1.0-1.src.rpm `- script1-1.0-1.src.rpm `- script2-1.0-1.src.rpm
Чтобы создавать "real" источник YaST из этой директории, выполните следующие команды:
cd /srv/ftp/pub/linux/suse/10.0/ mkdir media.1 $EDITOR media.1/media $EDITOR content ls -A1 > directory.yast create_package_descr -d RPMS/
В create_package_descr
скрипт находится в пакете inst-source-utils или может быть загружен из sf.net. Распакуйте пакет, и сохраните его в вашем каталоге и измените ему права chmod 755.
Этот скрипт будет возможно расширен и также сможет генерировать криптографические подписи и контрольные суммы, так что будет легче в создании безопасных хранилищ по своему усмотрению.
Расширенная документация
Дополнительная документация относительно источников установки YaST имеется в пакете yast2-packagemanager-devel.