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

Создание пакетов с возможностью дистанционной установки

Все пакеты должны иметь возможность дистанционной установки. Дистанционная установка означает отсутствие предположений о том, что администратор, устанавливающий пакет, станет устанавливать его в корневую (/) файловую систему компьютера с помощью команды 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

При правильном использовании этих параметров запись всегда монтирует клиентскую файловую систему независимо от того, была ли она создана локально или на сервере.