在 Mountain Lion 之前,我能够以/usr/sbin/installer
管理员用户身份安装软件包。但是,在 Mountain Lion 中,当我尝试运行
installer -pkg blah.pkg -target /
我得到了错误
installer: Must be run as root to install this package.
我已经对IFPkgFlagAuthorizationAction
包的 info.plist 中的变量进行了修改,将其设置为AdminAuthorization
甚至UserAuthorization
,但这似乎没有任何效果。
我可以使用 sudo 安装并真正以 身份运行root
,但软件(正确地)期望我以非root
用户身份安装,因此不起作用。
如果我在同一个包上使用 GUI Installer.app(即使没有修改IFPkgFlagAuthorizationAction
),系统会提示我输入管理员root
密码(而不是)并且一切都按预期工作。
如何从命令行获取 GUI 工具的行为?
答案1
我今天遇到了同样的问题。;)
我无法帮助您以 root 身份运行安装程序,同时将安装的文件的所有权授予普通用户,但您应该能够在安装后更改所有权以获得相同的效果并最终绕过这个限制。
例如,如果您的用户帐户是“myusername”,并且您有一个组(例如“_developer”),该组是您正在安装的应用程序的更好的所有者组,那么您可以在安装后通过以下方式重置所有权:
sudo chown -R myusername:_developer ~/Library/[MYAPPNAME]
sudo chown -R myusername:_developer ~/Library/Application\ Support/[MYAPPNAME]
在我的情况中它似乎有效。可能对你也有帮助。当然,路径和用户/组名称将特定于你的情况。:)