/usr/sbin/installer требует root, а не Admin, для установки пакета

/usr/sbin/installer требует root, а не Admin, для установки пакета

До 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]

Кажется, это сработало в моей ситуации. Может, поможет и вам. Конечно, пути и имена пользователей/групп будут специфичны для вашей ситуации. :)

Связанный контент