使用Bash回声回答pkgadd提示

时间:2019-03-19 17:21:21

标签: bash unix solaris

我正在尝试使用pkgadd实用程序在Solaris 10上静默安装软件包。参见示例:

pkgadd -G -D pkg123_x64.pkg
"Select package(s) you wish to process (or 'all' to process all packages).

这可以通过用echopkgadd的管道来解决:

echo "all" | pkgadd -G -D pkg123_x64.pkg
"Processing package instance <pkg123>.."
"This package contains scripts which will be executed with super-user permission during the process of installing this package. Do you want to continue with the installation [y,n,?]

一切正常。但是我不确定如何回答第二个问题。我尝试过:

echo "all y" | pkgadd -G -D pkg123_x64.pkg

但这不起作用。这可能吗?

使用:GNU bash版本3.2.51(1) Solaris 10

1 个答案:

答案 0 :(得分:1)

您可以创建一个package response file

  

使用响应文件(pkgadd

     

响应文件包含您对以下特定问题的答案:   由交互式软件包询问。交互式软件包包括   request脚本会在打包之前询问您问题   安装,例如是否应该包装可选件   已安装。

     

如果在安装之前知道该软件包是交互式的   包,并且您想存储答案以防止用户   在以后的安装过程中进行交互,请使用pkgask命令   保存您的回复。有关此命令的更多信息,请参见   pkgask(1M)

     

一旦您保存了对   request脚本,您可以使用pkgadd -r命令来安装   无需用户交互的软件包。

来自the pkgask man page

  

说明

     

pkgask允许管理员存储对交互式程序包(带有请求脚本的程序包,即用户创建的文件,必须将其命名为request)的答案。调用此命令将生成一个响应文件,然后在安装时将其用作输入。使用此响应文件可以防止安装期间发生任何交互,因为该文件已经包含了程序包所需的所有信息。