
До Mountain Lion я мог устанавливать пакеты /usr/sbin/installer
как пользователь Admin. Однако с 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
пароль администратора, и все будет работать так, как и ожидалось.
Как получить поведение инструмента с графическим интерфейсом из командной строки?
решение1
Я сегодня столкнулся с той же проблемой. ;)
Я не могу помочь вам запустить установщик от имени пользователя root, предоставив при этом установленным файлам права собственности обычного пользователя, но вы должны иметь возможность изменить владельца после установки, чтобы получить тот же эффект и в конечном итоге обойти это ограничение.
Если, например, ваша учетная запись пользователя — «myusername» и у вас есть группа, например «_developer», которая является более подходящей группой владельцев для устанавливаемого вами приложения, вы можете сбросить владельца после установки, выполнив следующее:
sudo chown -R myusername:_developer ~/Library/[MYAPPNAME]
sudo chown -R myusername:_developer ~/Library/Application\ Support/[MYAPPNAME]
Кажется, это сработало в моей ситуации. Может, поможет и вам. Конечно, пути и имена пользователей/групп будут специфичны для вашей ситуации. :)