首页 > 解决方案 > 将变量传递给 OSX 包 Installer 上的安装程序

问题描述

我正在尝试将变量传递给我的安装后脚本,但似乎不可用。我试过这个但不起作用:

sudo MY_VAR=VALUE installer -pkg my_package.pkg -target / 

我需要在安装后脚本中访问没有配置文件的环境变量。

谢谢!

标签: macosshellvariablespackageinstallation

解决方案


在这种情况下使用export var_name=value将不起作用。为此,您必须launchctl通过运行来使用和导出变量launchctl setenv var_name value。之后,您可以使用launchctl getenv var_name. 在这里你可以看到一个例子:

sh-3.2# launchctl setenv var1 hello      
sh-3.2# launchctl setenv var2 world
sh-3.2# launchctl getenv var1
hello
sh-3.2# launchctl getenv var2
world

您还可以一次设置多个变量:

sh-3.2# launchctl setenv var3 one var4 line
sh-3.2# launchctl getenv var3
one
sh-3.2# launchctl getenv var4
line

要将其与您的包一起使用,您可以运行如下内容:

sh-3.2# launchctl setenv var_name value && installer -pkg your_package.pkg -target /

推荐阅读