/usr/sbin/installer 需要 root 而不是 Admin 来安装软件包

Jus*_*eig 5 mac command-line installation macos

在 Mountain Lion 之前,我能够以/usr/sbin/installer管理员用户身份安装软件包。但是,对于 Mountain Lion,当我尝试跑步时

installer -pkg blah.pkg -target /
Run Code Online (Sandbox Code Playgroud)

我收到错误

installer: Must be run as root to install this package.
Run Code Online (Sandbox Code Playgroud)

IFPkgFlagAuthorizationAction在包的 info.plist 中使用了变量,将其设置为AdminAuthorization和 even 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]
Run Code Online (Sandbox Code Playgroud)

这似乎适合我的情况。也可能对你有帮助。当然,路径和用户/组名称将根据您的具体情况而定。:)