【问题标题】:Adding User License Agreement in Solaris package在 Solaris 包中添加用户许可协议
【发布时间】:2012-08-18 13:42:13
【问题描述】:

我已经针对 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 包实现这样的东西?

【问题讨论】:

    标签: licensing solaris packaging


    【解决方案1】:

    我找到了解决办法。

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

    创建一个 shell 脚本,该脚本将首先显示最终用户许可证并接受用户输入,无论用户是否同意。

    一旦用户同意,提取嵌入在 shell 脚本中的二进制文件(solaris 包文件)并安装它。

    要嵌入安装包,首先添加一个标记,比如说 PKG_DATA:

    shell script contents
    exit 0   
    PKG_DATA   
    

    附加包文件:
    猫 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>   
    
    【解决方案2】:

    我会使用 checkinstall 脚本来实现。

    该脚本中的“exit 3”优雅地结束了包安装。

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

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

    【讨论】:

    • 实际上,checkinstall 应该是非交互式的。 request 是交互式的,它在包安装期间运行——你不需要从checkinstall 运行request
    • 这就是我的意思,虽然不够清楚。您使用请求脚本与用户交互并从 checkinstall 退出 3。通过引用,我的意思是请求脚本设置了一个将在 checkinstall 中使用的变量。这就是请求的设计方式。 docs.sun.com/app/docs/doc/806-7008/6jftmsc2v?a=view
    • 安装包前应显示并接受许可协议。
    • 确实如此。您在请求脚本中显示许可文本并提示用户接受。我认为这很明显。
    猜你喜欢
    • 1970-01-01
    • 2011-05-10
    • 2011-01-10
    • 1970-01-01
    • 2014-03-20
    • 2014-08-04
    • 1970-01-01
    • 2010-11-23
    • 2014-05-12
    相关资源
    最近更新 更多