如何从mac终端向包安装程序传递参数

时间:2015-02-04 15:34:29

标签: macos terminal sudo packagemaker pkg-file

我想从mac终端安装pkg文件作为静默安装。所以我使用下面的命令进行静默安装。

sudo installer -store -pkg "/User/MyName/Desktop/helloWorld.pkg" -target /

它完美地安装了我的应用程序。但我想将此命令行脚本中的参数传递给在package maker中创建的包安装程序。这样我就可以在包安装程序内的post / pre安装脚本中使用此参数值。

是否有可能在上述命令中将我的值作为参数传递?

2 个答案:

答案 0 :(得分:2)

由于“installer”命令不支持任何此类参数,因此无法从命令执行此操作。但是,您可以尝试使用可从前/后安装脚本中读取的配置文件,并执行所需的操作。

答案 1 :(得分:0)

installer手册中,您可以找到以下内容:

installer(8) [osx man page]

  

-applyChoiceChangesXML pathToXMLFile在安装之前,将pathToXMLFile中指定的安装选择更改应用于包中的默认选项。这使命令行安装程序可以自定义选择要安装的内容。有关此XML格式的详细信息,请参见选择更改文件。应用选择更改时遇到的任何问题将报告给LOG_INSTALL工具(即报告给/var/log/install.log),如果报告 -dumplog ,也会报告给stdout。 >。

选择更改文件部分显示: installer(8) [osx man page]

  

选择更改文件

     

一个``choiceChanges''文件允许选择或取消选择单个安装程序选择。可以使用 -showChoiceChangesXML 选项生成给定包的模板choiceChanges文件,其解释如下。

     

choiceChanges文件是一个包含字典数组的属性列表。每个字典具有以下三个键:

     

键说明
  choiceIdentifier要修改的选择的标识符(字符串)
  choiceAttribute下述属性名称之一(字符串)
  attributeSetting取决于choiceAttribute的设置,如下所述(数字或字符串)

     

choiceAttribute和attributeSetting值如下:

     

choiceAttribute属性设置说明
  selected(数字)1选择选项,0取消选择
  enabled(数字)1启用选择,0禁用选择
  可见(数字)1表示选择,0表示隐藏
  customLocation(字符串)安装选择的路径(见下文)

     

请注意,同一个choiceIdentifier可以有多个字典,因为可以为单个选择设置多个属性。

     

仅当该选择明确允许用户定义的路径时,才能为该选择设置customLocation属性。也就是说,如果在安装程序应用程序的“定制”窗格中查看时,该选项将具有“位置”弹出窗口,则可以通过customLocation进行设置。 (否则,无法随意修改安装路径,因为软件包作者必须考虑自定义安装位置才能使安装正常进行。)

此xml可以在说明安装之前生成,并且您不需要脚本来处理它(就像其他答案一样)。