在Solaris软件包中添加用户许可协议

时间:2010-03-04 05:26:45

标签: licensing solaris packaging

我问了Linux RPM(Adding License Agreement in RPM package)的类似问题。现在我对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 :(得分:0)

我找到了解决问题的方法。

自解压二进制文件就是这样做的。

创建一个shell脚本,该脚本将首先使用最终用户许可证,并在用户同意的情况下接受用户输入。

用户同意后,提取嵌入在shell脚本中的二进制文件(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>   

答案 1 :(得分:0)

我会使用checkinstall脚本实现它。

该脚本中的

“exit 3”正常结束包安装。

由于您需要创建一个请求脚本并在checkinstall脚本中引用它,这并非易事。

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