我问了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软件包实现此类功能?
答案 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