2017-03-21 31 views
0

我需要安装2个音频插件到根音频/插件/ VST &组件目录。我的安装程序很好。但我也需要在/ Users/$ USER/Library/Application Support/MyCompany文件夹中安装一个预设文件目录。osx:如何将软件包安装到用户的应用程序支持目录中?

我听说安装程序无法安装到/和〜在同一个安装程序,但我真的希望它为用户安装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 

很显然,我不知道要访问用户的目录为根的正确方法。请帮助...谢谢。

+0

您应该使用'productbuild'为这个(例如'.pkg','.mpkg')创建一个安装程序包;它会完成你提到的所有事情 –

+0

post-install.sh文件将在哪里?您可以将该文件添加到用户家中的某个位置,然后用它的位置检索用户主目录路径。或者,您可能只需要从用户的主目录(在启动它时是Terminal默认目录)运行安装后的文件。 – vitormm

回答

0

您是否曾尝试在变量中首先保存用户?

#!/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" 
+0

那有什么不同? $ USER仍然是root用户,而不是真正的用户。 – pizzafilms

相关问题