MAC PackageMaker预安装/后安装脚本以获取原始* .pkg文件目录

时间:2012-05-08 12:27:37

标签: macos bash packagemaker

安装时如何获取原始* .pkg文件目录?

我创建了一个pkg文件,并将其与另一个文件(如test.txt)放在同一个文件夹中,如〜/ Desktop / test

安装pkg文件时,我希望它将“test.txt”文件复制到〜/ Library文件夹。 所以我将preinstall / postinstall脚本添加到pkg文件中以复制“test.txt”文件。 我尝试使用目录

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

但它将返回tmp目录

/private/tmp/PKInstallSandbox.G5GFI6/Scripts/com.myApp.testApp.pkg.o5k2nE

不是原始的pkg目录(~/Desktop/test)

安装时有人知道如何获取原始目录吗?

3 个答案:

答案 0 :(得分:8)

你创造了一个扁平的包裹?您是否尝试查看传递给postinstall脚本的参数?

$0 - Script path
$1 - Package path
$2 - Target location
$3 - Target volume`

参数$ 1应该可以为您提供所需的信息。

old bundle style format information复制,但似乎仍适用于较新的扁平套餐。

答案 1 :(得分:2)

Mac Installers Blog有一些关于Packagemaker的有用帖子,包括有关常见问题的使用和解决方案的详细信息。

答案 2 :(得分:2)

此:

pkgpath=\`dirname "$PACKAGE_PATH"\`

将为您提供变量$pkgpath中的包的路径。