Все пакеты должны иметь возможность дистанционной установки. Дистанционная установка означает отсутствие предположений о том, что администратор, устанавливающий пакет, станет устанавливать его в корневую (/) файловую систему компьютера с помощью команды pkgadd. Если в одном из процедурных сценариев требуется добраться до файла /etc/vfstab на целевой системе, необходимо использовать переменную среды PKG_INSTALL_ROOT. Другими словами, имя пути /etc/vfstabприведет к файлу /etc/vfstab системы, в которой выполняется команда pkgadd, но администратор может осуществлять установку на клиентскую систему в /export/root/client3. Путь ${PKG_INSTALL_ROOT}/etc/vfstab гарантированно приведет на целевую файловую систему.
В этом примере пакет SUNWstuf устанавливается на client3, который настроен на /opt в своей корневой (/) файловой системе. Другая версия этого пакета уже установлена на client3, а базовый каталог установлен как basedir=/opt/$PKGINST в файле администрирования thisadmin. (Для получения дополнительной информации о файлах администрирования см. раздел Файл административных значений по умолчанию.) Команда pkgadd, исполняемая на сервере:
# pkgadd -a thisadmin -R /export/root/client3 SUNWstuf |
В таблице ниже перечислены переменные среды и их значения, которые передаются в процедурные сценарии.
Таблица 6–1 Значения, передаваемые в процедурные сценарии
Переменная среды |
Значение |
---|---|
PKGINST |
SUNWstuf.2 |
PKG_INSTALL_ROOT |
/export/root/client3 |
CLIENT_BASEDIR |
/opt/SUNWstuf.2 |
BASEDIR |
/export/root/client3/opt/SUNWstuf.2 |
Для установки на сервер или на автономную систему в тех же условиях, что и в предыдущем примере, команда будет выглядеть так:
# pkgadd -a thisadmin SUNWstuf |
В таблице ниже перечислены переменные среды и их значения, которые передаются в процедурные сценарии.
Таблица 6–2 Значения, передаваемые в процедурные сценарии
Переменная среды |
Значение |
---|---|
PKGINST |
SUNWstuf.2 |
PKG_INSTALL_ROOT |
Не определено. |
CLIENT_BASEDIR |
/opt/SUNWstuf.2 |
BASEDIR |
/opt/SUNWstuf.2 |
Предположим, что пакет SUNWstuf создает и совместно использует файловую систему на сервере в каталоге /export/SUNWstuf/share. Когда пакет устанавливается на клиентские системы, их файлы /etc/vfstab должны быть обновлены для монтирования этой общей файловой системы. В этой ситуации можно использовать переменную CLIENT_BASEDIR.
Запись в клиентской системе должна содержать точку монтирования со ссылкой на клиентскую файловую систему. Эта строка должна быть построена правильно независимо от того, производится ли установка с сервера или с клиента. Предположим, что системное имя сервера - $SERVER. Можно перейти в $PKG_INSTALL_ROOT/etc/vfstab и с помощью команд sed или awk создать следующую строку для файла /etc/vfstab клиентской системы:
$SERVER:/export/SUNWstuf/share - $CLIENT_BASEDIR/usr nfs - yes ro |
Например, для сервера с именем universe и для клиентской системы client9 строка в файле клиентской системы /etc/vfstab будет выглядеть так:
universe:/export/SUNWstuf/share - /opt/SUNWstuf.2/usr nfs - yes ro |
При правильном использовании этих параметров запись всегда монтирует клиентскую файловую систему независимо от того, была ли она создана локально или на сервере.