Итак, вы скомпилировали свою собственную программу для Solaris и хотите создать установочный пакет. Делается это просто: предположим, что ваша программа называется MyApp и все необходимые файлы лежат в директории /opt/MyApp:
# cd /opt; ls -l MyApp/
total 16
drwxr-xr-x 2 root root 69 мая 22 13:42 bin
drwxr-xr-x 2 root root 69 мая 22 13:42 lib
В bin лежат бинарники, в lib - библиотеки. Вы можете создать также man-страницы, можете вообще расположить ваши исполняемые файлы, скажем, в /usr/sbin или /usr/local/sbin, а библиотеки и документацию также положить в соответствующие директории Solaris. Словом, все файлы должны лежать в тех директориях, где вы хотели бы чтобы они находились после установки пакета. В нашем случае для примера весь пакет должен устанавливаться в директорию /opt/MyApp.
Далее идем в /tmp и создаем необходимые файлы:
# cd /tmp
# echo 'i pkginfo' > prototype
# pkgproto /export/home/ivanov/MyApp >>prototype
Файл prototype содержат все пути к вашим файлам.
Далее создаем файл pkginfo со следующим содержимым:
BASEDIR=/opt/MyApp
TZ=PST
PATH=/sbin:/usr/sbin:/usr/bin:/usr/sadm/install/bin
PKG=MyApp
ARCH=здесь указываем - sparc или x86
NAME=myapp
VERSION=1.0
CATEGORY=application
DESC=Краткое описание программы
VENDOR=Ivanov Ivan Ivanovich
EMAIL=ivanov@mail.ru
PKGSAV=/var/sadm/pkg/MyApp/save
Теперь создаем пакет:
Можно конечно дать и полную команду :
# pkgmk -d /tmp -b /opt/MyApp BASEDIR=/opt/MyApp"
Затем:
# pkgtrans -s /tmp MyApp.pkg
Для блеска можно еще и сжать пакет:
# pkgtrans -s /tmp /dev/fd/1 MyApp.pkg | gzip >/tmp/MyApp.pkg.gz
Переносим полученный MyApp.pkg, скажем, в /export/home/ivanov и удаляем /tmp/MyApp и /opt/MyApp:
# mv /tmp/MyApp.pkg /export/home/ivanov
# rm -Rf /tmp/MyApp
# rm -Rf /opt/MyApp
Тестируем:
# pkgadd -d /export/home/ivanov/MyApp.pkg