Руководство разработчика по пакетированию приложений

Пример. Традиционный абсолютный пакет

Если бы пакет SUNWstuf являлся абсолютным, то определения параметра BASEDIR в файле pkginfo не потребовалось, а файл pkgmap выглядел бы так:

Файл pkgmap

: 1 1758
1 d none /opt ? ? ?
1 d none /opt/SUNWstuf 0775 root bin
1 d none /opt/SUNWstuf/EZstuf 0775 root bin
1 f none /opt/SUNWstuf/EZstuf/dirdel 0555 bin bin 40 773 751310229
1 f none /opt/SUNWstuf/EZstuf/usrdel 0555 bin bin 40 773 751310229
1 f none /opt/SUNWstuf/EZstuf/filedel 0555 bin bin 40 773 751310229
1 d none /opt/SUNWstuf/HRDstuf 0775 root bin
1 f none /opt/SUNWstuf/HRDstuf/mksmart 0555 bin bin 40 773 751310229
1 f none /opt/SUNWstuf/HRDstuf/mktall 0555 bin bin 40 773 751310229
1 f none /opt/SUNWstuf/HRDstuf/mkcute 0555 bin bin 40 773 751310229
1 f none /opt/SUNWstuf/HRDstuf/mkeasy 0555 bin bin 40 773 751310229
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

В данном примере если администратор в процессе установки указывает альтернативный базовый каталог, он будет проигнорирован командой pkgadd.. Данный пакет всегда будет устанавливаться в каталог /opt/SUNWstuf целевой системы.

Параметр -R команды pkgadd работает как и ожидалось. Например,


pkgadd -d . -R /export/opt/client3 SUNWstuf

устанавливает объекты в каталог /export/opt/client3/opt/SUNWstuf. Здесь пакет наиболее близко подходит к определению "перемещаемый".

Обратите внимание на использование знака вопроса (?) в каталоге /opt файла pkgmap. Он означает, что существующие атрибуты не должны изменяться. Он не означает "создать каталог с атрибутами по умолчанию", хотя при некоторых обстоятельствах это может случиться. Для любого каталога, относящегося к новому пакету, необходимо явно указывать все атрибуты.