Home Wiki > SDB:Создание источников установки YaST
Sign up | Login

SDB:Создание источников установки YaST

tagline: Материал из openSUSE

Icon-obsolete.png Эта статья актуальна для версии '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.