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

问题描述 投票:0回答:4

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

我创建了一个 pkg 文件,并将其与另一个文件(如

test.txt
)放入同一文件夹中,如 ~/Desktop/test

当安装 pkg 文件时,我希望它将“test.txt”文件复制到 ~/Library 文件夹。 因此,我将安装前/安装后脚本添加到 pkg 文件中以复制“test.txt”文件。 我尝试获取目录使用

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

但是它会返回tmp目录

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

不是原来的pkg目录

(~/Desktop/test)

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

macos bash packagemaker
4个回答
14
投票

您已经创建了扁平包?您是否尝试过查看传递给安装后脚本的参数?

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

参数 $1 应该会给你你正在寻找的东西。

旧的捆绑样式格式信息复制,但似乎仍然适用于较新的扁平包。


3
投票

这个 Mac 安装者博客 有一些关于 Packagemaker 的有用帖子,包括有关使用方法和常见问题解决方案的详细信息。


2
投票

这个:

pkgpath=\`dirname "$PACKAGE_PATH"\`

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

$pkgpath


0
投票

我有一个后续问题。 在我的电子应用程序中,我正在使用电子生成器创建 .pkg。 我正在添加这样的额外资源

"extraFiles": [
      
      
      {
        "from": "./node_modules/audio-library/package/out/Release/AudioDriver.driver",
        "to": "Resources/AudioDriver.driver"
    }
  ],

现在在安装过程中我希望将此驱动程序复制到 /库/音频/插件/HAL/文件夹

我想要一个安装后脚本,我可以在其中找到 AudioDriver.driver 的路径,以便我可以将其复制到 HAL 文件夹中

我尝试了安装后脚本

SCRIPT_DIR=$(dirname $1)
DRIVER_PATH="${SCRIPT_DIR}"

cp -a  "$DRIVER_PATH" /Library/Audio/Plug-Ins/HAL/

但是我没有找到驱动程序文件,它复制了许多文件夹,但没有 AudioDriver.driver 文件,所以我在哪里可以找到我在 postInstall 脚本期间添加到 extraResources 中的 AudioDriver.driver 文件

有人可以帮我在安装后脚本中找到 AudioDriver.driver 的路径

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.