/usr/sbin/installer ではパッケージをインストールするには管理者ではなくルートが必要です

/usr/sbin/installer ではパッケージをインストールするには管理者ではなくルートが必要です

/usr/sbin/installerMountain Lion以前は、管理者ユーザーとしてパッケージをインストールできました。しかし、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]

私の状況ではうまくいったようです。あなたにも役立つかもしれません。もちろん、パスとユーザー名/グループ名は状況によって異なります。:)

関連情報