Bash osx:如何将软件包安装到用户&x27;应用程序支持目录?

Bash osx:如何将软件包安装到用户&x27;应用程序支持目录?,bash,macos,installation,pkgbuild,Bash,Macos,Installation,Pkgbuild,我需要在根audio/plugins/VST&Components目录中安装2个音频插件。我的安装程序做得很好。但我还需要在/Users/$USER/Library/Application Support/MyCompany文件夹中安装一个预设文件目录 我听说一个安装程序不能在同一个安装程序中安装到/和~中,但我真的希望为用户安装1次。因此,首先安装VST和组件似乎是个好主意。然后将预设文件夹安装到临时位置(如/tmp或类似位置),然后运行安装后脚本将文件移动到用户库中…但我无法使其正常工作 这

我需要在根audio/plugins/VST&Components目录中安装2个音频插件。我的安装程序做得很好。但我还需要在/Users/$USER/Library/Application Support/MyCompany文件夹中安装一个预设文件目录

我听说一个安装程序不能在同一个安装程序中安装到/和~中,但我真的希望为用户安装1次。因此,首先安装VST和组件似乎是个好主意。然后将预设文件夹安装到临时位置(如/tmp或类似位置),然后运行安装后脚本将文件移动到用户库中…但我无法使其正常工作

这是我正在尝试运行的脚本:

#!/bin/bash

# movePresets.sh

# I want something like this...but it doesn't work because $USER is root in the installer I believe

/usr/bin/sudo -u $USER mkdir -p "/Users/$USER/Library/Application Support/MyCompany/Presets"
/usr/bin/sudo -u $USER mv -r "/tmp/Presets" "$USER/$USER/Library/Application Support/MyCompany"


exit 0

显然,我不知道以root用户身份访问用户目录的正确方法。请帮助…谢谢。

您是否已尝试先在变量中保存用户

#!/bin/bash
realuser=$USER
# or
#realuser=$(whoami)

/usr/bin/sudo -u $realuser mkdir -p "/Users/$realuser/Library/Application Support/MyCompany/Presets"
/usr/bin/sudo -u $realuser mv -r "/tmp/Presets" "$realuser/$realuser/Library/Application Support/MyCompany"

您是否尝试过先在变量中保存用户

#!/bin/bash
realuser=$USER
# or
#realuser=$(whoami)

/usr/bin/sudo -u $realuser mkdir -p "/Users/$realuser/Library/Application Support/MyCompany/Presets"
/usr/bin/sudo -u $realuser mv -r "/tmp/Presets" "$realuser/$realuser/Library/Application Support/MyCompany"

这有什么不同$用户仍然是root用户,而不是真正的用户。这有什么不同$用户仍然是root用户,而不是真正的用户。您应该使用
productbuild
为此创建安装程序包(例如
.pkg
.mpkg
);它完成了你提到的一切。post-install.sh文件将在哪里?您可以将该文件添加到用户主页内的某个位置,然后使用其位置检索用户主页路径。或者您可以简单地要求安装后文件必须从用户的主目录(启动它时是终端默认目录)运行。您应该使用
productbuild
为此创建安装程序包(例如
.pkg
.mpkg
);它完成了你提到的一切。post-install.sh文件将在哪里?您可以将该文件添加到用户主页内的某个位置,然后使用其位置检索用户主页路径。或者,您可以简单地要求安装后文件必须从用户的home dir(启动它时的终端默认目录)运行。