Введение в пакеты программного обеспечения QNX

Хорошим считается программное обеспечение, удовлетворяющее требованиям пользователей — но чтобы полностью соответствовать высоким требованиям, программное обеспечение должно без проблем устанавливаться и обслуживаться. Для того, чтобы обеспечить разработчикам такие возможности, мы расширили возможности файловой системы пакетов (QNX Package Filesystem) и реализовали поддержку репозиториев-архивов — мест хранения и распространения пакетов. Мы также создали утилиты, позволяющие как устанавливать и обслуживать пакеты, так и создавать их из наборов файлов. Все эти инструментальные средства позволяют легко распространять программное обеспечение, устанавливать его без ошибок, а также деинсталлировать без проблем. Как Вы увидите в дальнейшем, использование этих инструментальных средств, потребует от Вас обладания некоторым количеством знаний…

Инфраструктура информации

Работая с пакетной файловой системой, Вы можете «объединять» каталоги и организовывать перекрывающие друг друга файлы. Стало возможным без труда создавать в системе или удалять из нее одновременно целые наборы каталогов и файлов. Эти возможности дали повод к созданию инструментальных средств, способных автоматически инсталлировать и деинсталлировать программное обеспечение. Одновременно с этими инструментальными средствами возникли требования к структуре и организации пакетов программного обеспечения.

Например, чтобы описать пакет, мы должны знать:
— какие файлы и каталоги будут установлены на машине пользователя;
— где должны быть размещены устанавливаемые файлы.

А для того, чтобы описать программное обеспечение, мы должны знать:
— что это за программное обеспечение — его название, версия, дата выпуска;
— кто автор — разработчик, служба поддержки, их web-страница;
— нуждается ли это программное обеспечение в другом программном обеспечении;
— является ли это программное обеспечение несовместимым с другим программным обеспечением;
— является ли это программное обеспечение частью другого, большого, программного продукта;
— потребуются ли выполнение тех или иных действий, сценариев, во время инсталляции или деинсталляции

Как только мы соберем все эти данные о пакете, мы тут же немедленно столкнемся с двумя задачами: как хранить их и где хранить их.

Конечно, нам хотелось бы, чтобы эти данные о пакете могли бы быть легко и эффективно неоднократно использованы и другими людьми. Именно поэтому мы решили хранить данные в текстовых файлах, кодируя их с помощью несложного описания на языке XML. Использование типового, легко распознаваемого формата XML, наряду с доступностью инструментальных средств, таких как библиотека expat, позволяет разработчикам легко управлять данными, не испытывая потребности в специальных инструментальных средствах.

Чтобы определиться с местом хранения таких данных, мы сначала должны были разобраться, каким образом другие люди пожелают эти данные использовать. После долгого обсуждения, мы решили отталкиваться от предпосылки, что большая часть программного обеспечения в настоящее время свободно распространяется, продается или загружается с web-сайтов или FTP-серверов. Следовательно, наши инструментальные средства управления пакетами не должны были ограничиваться пропускной способностью — ведь никто не захочет загрузить пакет целиком только ради того, чтобы выяснить номер версии или домашнюю страницу автора! Поэтому каждый пакет QNX содержит отдельный, внешний файл описания данных, известный как декларация (manifest).

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