Создайте файл pkginfo, если таковой отсутствует.
Поэтапные указания приведены в разделе Как создать файл pkginfo.
Создайте файл prototype, если таковой отсутствует.
Поэтапные указания приведены в разделе Создание файла prototype с помощью команды pkgproto.
Сделайте каталог, содержащий файл prototype, текущим рабочим каталогом.
Выполните сборку пакета.
$ pkgmk [-o] [-a arch] [-b base-src-dir] [-d device] [-f filename] [-l limit] [-p pstamp] [-r rootpath] [-v version] [PARAM=value] [pkginst] |
Перезаписывает текущую версию пакета.
Отменяет информацию об архитектуре, содержащуюся в файле pkginfo.
Запрашивает добавление параметра base-src-dir к началу перемещаемых имен путей, когда команда pkgmk осуществляет поиск объектов в системе разработчика.
Указывает, что пакет должен быть скопирован на устройство device. В качестве устройства может выступать абсолютное имя пути каталога, дискета или съемный диск.
Называет файл filename, который используется в качестве файла prototype. Имена по умолчанию - prototype или Prototype.
Определяет максимальный размер устройства вывода в 512-байтных блоках.
Отменяет определение производственной маркировки в файле pkginfo.
Требует, чтобы для обнаружения объектов в системе разработчика использовался корневой каталог rootpath.
Отменяет информацию о версии, содержащуюся в файле pkginfo.
Устанавливает глобальные переменные среды. Переменные, начинающиеся со строчной буквы, вычисляются во время сборки пакета. Переменные, начинающиеся с заглавной буквы, помещаются в файл pkginfo и используются во время установки.
Ссылается на пакет по его аббревиатуре или определенному экземпляру (например, SUNWcadap.4).
Для получения дополнительной информации см. справочную страницу pkgmk(1).
Проверьте содержимое пакета.
$ pkgchk -d device-name pkg-abbrev Checking uninstalled directory format package pkg-abbrev from device-name ## Checking control scripts. ## Checking package objects. ## Checking is complete. $ |
Указывает расположение пакета. Обратите внимание, что device-name может быть как полным именем пути каталога, так и идентификатором в случае использования ленточного накопителя или съемного диска.
Указывает имя одного или нескольких пакетов (разделенных пробелами), которые следует проверить. Если этот параметр отсутствует, команда pkgchk проверяет все имеющиеся пакеты.
Команда pkgchk выводит на печать перечень проверяемых параметров пакета и выводит на экран предупреждения или сообщения об ошибках. Для получения дополнительной информации о команде pkgchk см. раздел Проверка целостности пакета.
К ошибкам следует относиться очень серьезно. Ошибка может означать, что необходимо внести изменения в сценарий. Проверьте все ошибки и продолжите работу, если не согласны с результатом выполнения команды pkgchk.
В данном примере используется файл prototype, созданный в разделе Настройка файла prototype, созданного с помощью команды pkgproto.
$ cd /home/jane/InfoFiles $ pkgmk ## Building pkgmap from package prototype file. ## Processing pkginfo file. WARNING: parameter set to "system990708093144" WARNING: parameter set to "none" ## Attempting to volumize 13 entries in pkgmap. part 1 -- 3170 blocks, 17 entries ## Packaging one part. /var/spool/pkg/SUNWcadap/pkgmap /var/spool/pkg/SUNWcadap/pkginfo /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/demo/file1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/lib/file2 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/man1/file3.1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/man1/file4.1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/windex /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/srcfiles/file5 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/srcfiles/file6 ## Validating control scripts. ## Packaging complete. $ |
Если пакет содержит перемещаемые файлы, то можно использовать параметр -b base-src-dir в команде pkgmk для указания имени пути, которое следует добавить к началу перемещаемых имен путей во время создания пакета. Этот параметр может быть полезен, если для перемещаемых файлов не использовался формат path1=path2 или командой !search не был указан путь поиска в файле prototype.
Команда выполняет сборку пакета со следующими характеристиками:
Сборка пакета осуществляется с помощью пробного файла prototype, созданного командой pkgproto. Для получения дополнительной информации см. Пример. Создание файла prototypeс помощью команды pkgproto.
Сборка пакета осуществляется без изменения полей path.
Пакет добавляет запись в файл pkginfo.
$ cd /home/jane/InfoFiles $ pkgmk -o -b /home/jane ## Building pkgmap from package prototype file. ## Processing pkginfo file. WARNING: parameter set to "system960716102636" WARNING: parameter set to "none" ## Attempting to volumize 13 entries in pkgmap. part 1 -- 3170 blocks, 17 entries ## Packaging one part. /var/spool/pkg/SUNWcadap/pkgmap /var/spool/pkg/SUNWcadap/pkginfo /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/demo/file1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/lib/file2 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/man1/file3.1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/man1/file4.1 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/windex /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/srcfiles/file5 /var/spool/pkg/SUNWcadap/reloc/SUNWcadap/srcfiles/file6 ## Validating control scripts. ## Packaging complete. |
В этом примере пакет собирается в каталоге по умолчанию /var/spool/pkg с помощью параметра -o. Этот параметр перезаписывает пакет, созданный в Пример 2–2.
Если разместить информационные файлы пакета (например, pkginfo и prototype) и объекты пакета в двух разных каталогах, то можно создать пакет с помощью параметров -b base-src-dir и - r rootpath команды pkgmk. Если объекты пакета находятся в каталоге /product/pkgbin, а другие информационные файлы пакета в каталоге /product/pkgsrc, то можно использовать следующую команду для помещения пакета в каталог /var/spool/pkg:
$ pkgmk -b /product/pkgbin -r /product/pkgsrc -f /product/pkgsrc/prototype |
При желании можно использовать указанные ниже команды для достижения того же результата:
$ cd /product/pkgsrc $ pkgmk -o -b /product/pkgbin |
В данном примере команда pkgmk использует текущий рабочий каталог для поиска оставшихся частей пакета (таких, как информационные файлы prototype и pkginfo).
Для получения информации о добавлении необязательных информационных файлов и сценариев установки к пакету см. Глава 3Расширение функциональности пакета (задачи). После сборки пакета следует проверить его целостность. В Глава 4Проверка и запись пакета рассказано, как это сделать. В этой главе представлены поэтапные указания по записи проверенного пакета на распространяемый носитель.