【问题标题】:How to install multiple packages and post-processing?如何安装多个包和后处理?
【发布时间】:2010-10-29 16:36:18
【问题描述】:

我发现自己处于一个独特的场景中——它必须如此,因为我没有进行任何搜索似乎可以找到任何答案。但也许有一位 MacOS X 专家可以为我解答这个问题?

我正在使用 PackageMaker 为我公司的应用程序创建安装过程。这是一个跨平台的应用程序,我的基地是 Linux 和 Windows,所以请原谅我的 MacOS X 不聪明。

我们有两个软件包——呃,应用程序。一个是 Other.app,它是由我们正在“捆绑”我们的软件的外部公司开发的。我们的应用是 Stats.app。我们的应用程序将作为启动代理运行,因此我有一个 .plist 文件,当我在终端中手动安装时可以使用。

我的安装过程目标是这样的:

  1. 将 Other.app 安装到 /Applications
  2. 将 Stats.app 安装到 /Users//Applications(见注)
  3. 将 Stats.plist 安装到 /Users//Library/LaunchAgents
  4. 后处理 Stats.plist 修改“ProgramArguments”键,使路径正确:


    %{HOME}/Applications/Stats.app/Contents/MacOS/Stats

  5. 后执行一些简单的命令:

    /Application/Other.app/Contents/MacOS/Other --configure=config.txt

  6. 检查退出代码,如果一切正常,告诉用户我们完成了。

我希望——不……祈祷! -- 有人知道如何做到这一点。

为了澄清,Stats.app 不需要位于用户主目录中。 Launch 代理必须位于主目录中,因为 Stats.app 需要运行中的 Carbon 才能运行。

【问题讨论】:

  • 我面临的情况和你差不多,我被PackageMaker搞了一个多月...

标签: macos installation packagemaker


【解决方案1】:

使用每个包的安装后/升级后脚本进行重写。不同版本的 PackageMaker 看起来不同,您所针对的系统也会影响 UI,因此请四处寻找。

我确信 Apple 将 PackageMaker 打造为面向面向其平台的开发人员的一件大衣,因为使用 Interface Builder、Cocoa 和 Xcode 让生活变得轻松而美好。祝你好运!

另外:不要相信它会正确处理权限;让您的安装后/升级后脚本(通常为两者设置相同的脚本)通过并chmod和chown您的文件。不需要 sudo,你已经以 root 身份运行了。

另外:PackageMaker 无法处理安装包含符号链接到创建循环的目录的目录结构。这包括 Apple 分发的一些框架,例如 DotMacKit。

【讨论】:

  • 那么我如何让 PackageMaker 安装 Other.app 到 / 和 Stats.app 到 /Users/user ?脚本是什么语言的? bash 脚本?
  • 您可以使用 PackageMaker UI 为每个包配置安装目标目录。它正在设置所有权、权限、ACL,并重写您真正需要安装/升级后脚本的 plist。这些可以是您想要的任何语言;它们只是作为程序执行,所以使用正确的 hash-bang 行,你就可以开始了。
【解决方案2】:

您可以尝试使用 bash 脚本将应用程序安装到所需的目录,并在脚本中使用 sed 来修改 Stats.plist 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    • 2018-09-13
    • 2019-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多