Если для пакета требуется несколько базовых каталогов, их можно создать с помощью параметрических имен путей. Этот способ стал достаточно популярным, несмотря на то, что он имеет следующие ниже недостатки.
Пакет с параметрическими именами пути обычно ведет себя как абсолютный пакет, однако команда pkgadd расценивает его как перемещаемый пакет. Обязательно должен быть определен параметр BASEDIR, даже если он и не используется.
Администратор не может выяснить расположение базового каталога установки пакета с помощью служебных программ System V (команда pkginfo -r выполняться не будет).
Администратор не может использовать стандартный метод перемещения пакета (он называется перемещаемым, но ведет себя как абсолютный).
Установка на различные архитектуры или установка разных версий требует планирования вариантов действий для каждого целевого базового каталога, что часто означает написание большого количества сложных сценариев действий над классами.
После того, как параметры, устанавливающие базовые каталоги, определены в файле pkginfo, их можно изменять с помощью сценария request. Это одна из главных причин популярности данного подхода. Тем не менее, перечисленные выше недостатки являются неисправимыми, и данная структура должна рассматриваться лишь как последнее средство.
# pkginfo file PKG=SUNWstuf NAME=software stuff ARCH=sparc VERSION=1.0.0,REV=1.0.5 CATEGORY=application DESC=a set of utilities that do stuff BASEDIR=/ EZDIR=/usr/stuf/EZstuf HRDDIR=/opt/SUNWstuf/HRDstuf VENDOR=Sun Microsystems, Inc. HOTLINE=Please contact your local service provider EMAIL= MAXINST=1000 CLASSES=none PSTAMP=hubert980707141632 |
: 1 1758 1 d none $EZDIR 0775 root bin 1 f none $EZDIR/dirdel 0555 bin bin 40 773 751310229 1 f none $EZDIR/usrdel 0555 bin bin 40 773 751310229 1 f none $EZDIR/filedel 0555 bin bin 40 773 751310229 1 d none $HRDDIR 0775 root bin 1 f none $HRDDIR/mksmart 0555 bin bin 40 773 751310229 1 f none $HRDDIR/mktall 0555 bin bin 40 773 751310229 1 f none $HRDDIR/mkcute 0555 bin bin 40 773 751310229 1 f none $HRDDIR/mkeasy 0555 bin bin 40 773 751310229 1 d none /etc ? ? ? 1 d none /etc/rc2.d ? ? ? 1 f none /etc/rc2.d/S70dostuf 0744 root sys 450 223443 1 i pkginfo 348 28411 760740163 1 i postinstall 323 26475 751309908 1 i postremove 402 33179 751309945 1 i preinstall 321 26254 751310019 1 i preremove 320 26114 751309865 |