Software Distributor ( SD ) — название системы управления программными пакетами HP-UX, разработанное компанией Hewlett-Packard .
SD предоставляет набор инструментов для создания пакетов, которые будут устанавливать программное обеспечение в системе, работающей под управлением операционной системы HP-UX. Пакеты могут быть сгруппированы в репозиторий программного обеспечения, называемый депо, а сервер может быть настроен для размещения нескольких депо для установки пакетов программного обеспечения и даже целых систем.
SD впервые был доступен с выпуском 10.0 HP-UX в 1995 году. С тех пор он претерпел несколько усовершенствований и исправлений ошибок и теперь представляет собой надежный инструмент установки программного обеспечения. Он использует клиент-серверное соглашение для распространения программного обеспечения с помощью фонового демона , называемого swagentd . Дистрибьютор программного обеспечения предоставляет своим клиентам возможность приобретать лицензии на программное обеспечение из нескольких источников. Этот агент запускается во время загрузки и взаимодействует с использованием протоколов TCP или UDP через RPC . Пакеты SD обычно хранятся и передаются в сжатом виде с использованием программ gzip или compress.
Инструменты для выполнения операций SD обычно доступны из командной строки. SD включает в себя следующие команды:
Эти команды включают широкий спектр параметров командной строки, которые позволяют относительно точно контролировать выполняемую задачу. В дополнение к программам командной строки, некоторые из этих инструментов также могут запускать версии GUI на дисплее X Window System . Версия GUI swinstall выполняет некоторую фильтрацию списка программного обеспечения для сопоставления пакетов программного обеспечения с системой, в которой он запущен.
Команды регистрируют сообщения в административной области, что может быть полезно для диагностики проблем установки или просто для отслеживания того, какое программное обеспечение загружается или удаляется.
Пакеты программного обеспечения создаются с помощью файла спецификации, набора сценариев установки и фактического содержимого программного обеспечения. Скрипты установки выполняются во время установки, проверки и удаления программного обеспечения и могут использоваться для подготовки системы к программному обеспечению и для выполнения активации или деактивации пакета. Файл спецификации определяет, как будет организован пакет программного обеспечения, перечисляет местоположения различных файлов, которые будут загружены в пакет, ограничивает системы, на которые может быть установлен пакет, и определяет конфигурацию безопасности пакета. Он также предоставляет различную информацию о пакете, такую как имя, версия и описание.
Пакеты программного обеспечения организованы в иерархию контейнеров, где наивысшим уровнем является пакет или продукт, а низшим — наборы файлов, а затем файлы. Иерархия организована следующим образом:
На самом деле для многих пакетов нужны только уровни Product и Fileset. Уровень Subproduct иногда используется для группировки Filesets, в то время как Bundle обеспечивает более высокоуровневую группировку для связанных продуктов. В Product может быть один или несколько Filesets, а в Bundle — один или несколько продуктов. Уровень Fileset используется специально для загрузки файлов. Продукт можно установить без всех связанных с ним Filesets и т. д.
Наборы файлов и продукты могут быть связаны между собой с помощью различных тегов требований, которые позволяют swinstall автоматически выбирать соответствующие зависимости.
Каждый набор файлов может иметь несколько скриптов управления, специфичных для файлов, которые он будет загружать. Эти скрипты выполняются в следующем порядке во время установки:
Существует соответствующий набор скриптов, которые выполняются в обратном порядке во время swremove:
Другие скрипты включают verify для выполнения проверки работоспособности с помощью команды swverify , unpreinstall и unpostinstall. Все, некоторые или ни один из этих скриптов могут быть включены в пакет в зависимости от требований установки. Они полезны для выполнения очистки предыдущих пакетов, создания ссылок, добавления каталога программного обеспечения в различные переменные среды поиска и т. д.