Добавление пользовательского лицензионного соглашения в пакет Solaris - PullRequest
0 голосов
/ 04 марта 2010

Я задавал аналогичный вопрос для RPM Linux ( Добавление лицензионного соглашения в RPM пакете ). Теперь у меня есть тот же запрос для пакета Solaris. Я не мог получить полезную ссылку / детали, если это возможно. Но я нашел пакет, который делает то же самое, но как он был реализован, не упоминается.

$pkgadd -d . SUNWsamfsr SUNWsamfsu

Processing package instance from 

Sun SAM and Sun SAM-QFS software Solaris 10 (root)(i386) 4.6.5,REV=5.10.2007.03.12

Sun SAMFS - Storage & Archiving Management File System

Copyright (c) 2007 Sun Microsystems, Inc.

All Rights Reserved.


----------------------------------------------------- 

In order to install SUNWsamfsr, you must accept the terms of
the Sun License Agreement.
Enter "y" if you do, "n" if you don't, or "v" to view agreement. y

-The administrator commands will be executable by root only (group bin).

If this is the desired value, enter "y". If you want to change 
the specified value enter "c". y   
...   
...

Есть идеи, как реализовать такую ​​вещь для пакета Solaris?

Ответы [ 2 ]

0 голосов
/ 05 марта 2010

Я бы реализовал это, используя скрипт checkinstall.

"выход 3" в этом скрипте изящно завершает установку пакета.

Это не тривиально, так как вам нужно создать скрипт запроса и сослаться на него в checkinstall one.

http://docs.oracle.com/cd/E18752_01/html/817-0406/ch1designpkg-24309.html#ch1designpkg-4

0 голосов
/ 05 марта 2010

Я нашел способ решить эту проблему.

Самораспаковывающийся двоичный файл - это способ сделать это.

Создайте сценарий оболочки, который сначала озвучит лицензию конечного пользователя и примет ввод пользователя независимо от того, согласен он или нет.

Как только пользователь согласится, извлеките двоичный файл (файл пакета Solaris), встроенный в скрипт оболочки, и установите его.

Чтобы вставить pacakge установщика, сначала добавьте маркер, скажем, PKG_DATA:

shell script contents
exit 0   
PKG_DATA   

Добавьте файл пакета:
cat pkg_file_name >> your_shell_script

Извлеките пакети установите его:

ARCHIVE=awk '/^__PKG_DATA__/ {print NR + 1; exit 0; }' $0   
outname=install.$$   
tail -n+$ARCHIVE $0 > $outname   

echo "Extracting..."   
pkgadd -d $outname   
rm -f $outname #we dont need it anymore   

exit 0   

PKG_DATA   
<pkg file data here>   
...