Автоматическая установка файла pkg

14

Есть ли возможность создать автоматическую установку пакета pkg?

Например, создать mpkg и запустить скрипт, который установил пакет через консоль и установщик.

Предыстория: мне пришлось развернуть пакет во многих osx enduser. У нас нет рабочего стола Apple и нет root-доступа к этим машинам. это предварительно сконфигурированный пакет pkg, но если пользователь запустит его обычным способом, предварительная конфигурация будет перезаписана. В Windows я понимаю это с помощью самореализуемого архива, который запускает MSI с автоматической установкой. В Linux я собираю пакеты rpm / deb, но в OSX я не нашел подходящего пути :(

Megachip
источник

Ответы:

17

Краткий ответ: да.

Длинный ответ: Да, но ... полный ответ на этот вопрос включает в себя технический ответ и практическую проблему.

Во-первых, технический ответ

Вы можете установить .pkg или .mpkg, используя этот синтаксис:

sudo installer -verboseR -pkg "/path/to/pkg/foo.mpkg"

Если установщик не подписан должным образом, вам необходимо добавить -allowUntrusted

sudo installer -allowUntrusted -verboseR -pkg "/path/to/pkg/foo.mpkg"

Вам также может понадобиться указать, где вы хотите установить его, используя -target /(я не уверен на 100%, что это необходимо , но это хорошая идея):

sudo installer -allowUntrusted -verboseR -pkg "/path/to/pkg/foo.mpkg" -target /

Теперь проблема в том, что sudoпри попытке запуска у вас спросят пароль администратора installer. Если вы хотите автоматизировать это, вы должны указать компьютеру Mac, чтобы он не запрашивал sudoпароль при запуске программы установки. Для этого вы можете добавить эту строку в ваш /etc/sudoersфайл:

%admin ALL=NOPASSWD: /usr/sbin/installer

Смотрите man visudoинструкции по редактированию этого файла.

Во-вторых, практическая забота

Если вы единственный человек, который использует ваш Mac, добавление вышеуказанной строки /etc/sudoersне имеет большого значения.

Однако, если это Mac с общим доступом, другие пользователи, входящие в группу «admin», смогут работать /usr/sbin/installerбез запроса пароля.

Кроме того, очевидно, что если кто-то попадет в вашу учетную запись «admin», он тоже может теоретически причинить вред /usr/sbin/installer. Хотя я не могу придумать, что именно они будут делать, это компромисс между безопасностью и удобством.

В-третьих, скрипт github

Я написал pkginstall.sh, чтобы сделать несколько полезных вещей, таких как регистрация процесса, а также сказать вам, нужно ли вам перезагружаться после установки пакета.

И последнее, но не менее важное: автоматизировать "как?"

То, насколько вы хотите автоматизировать установку, зависит от того, что вы пытаетесь сделать. Вы можете, например, создать папку, например ~ / Action / AutoInstallPKG /, и указать launchdустановить любые файлы .pkg или .mpkg, добавленные в эту папку, а затем переместить ее в сторону.

Я давно хотел сделать что-то подобное, и вот, наконец, я это собрал. Вы можете найти его по адресу https://github.com/tjluoma/autopkginstall . Инструкции по установке включены в Github, поэтому я не буду повторять их здесь.

Ти Джей Луома
источник
Спасибо, это большой шаг вперед для меня, но все еще не окончательное решение. Мне нужно развернуть пакет на многих разных маках (поэтому sudoes не вариант), где пользователю не разрешено изменять конфигурацию. Таким образом, лучший способ (который работает на Windows и Linux), где файл, который пользователь может щелкнуть, а остальное будет сделано автоматически. Но я проверю ваше решение, возможно, в сочетании с айсбергом или пакетами, я могу найти подходящее решение. Так что надеюсь, что это нормально, если я оставлю этот вопрос открытым еще несколько дней, чтобы другие могли дать ответы на него ...
Megachip
3
Также, для дальнейшего использования, подробности, подобные этим, было бы полезно включить в ваш первоначальный вопрос. Ответ для конечного пользователя, который хочет автоматизировать установку в своей системе, совершенно другой для того, кто пытается распространить его на многие Mac и многие операционные системы. Вы вряд ли найдете способ, который работает одинаково на Windows, Linux и Mac OS X. Даже такие большие компании, как Dropbox, имеют разные установщики для каждой ОС.
TJ Luoma
Вы правы, извините за это. Возможно я должен добавить это к вопросу.
Megachip
Еще раз спасибо за вашу работу, я конкретизировал мой вопрос [здесь] ( apple.stackexchange.com/questions/120026/… ). Ваш autopkginstall - хорошая вещь, но он требует, чтобы я установил это на каждом клиенте, что невозможно. Похоже, мой вопрос здесь был недостаточно конкретным. Извините за это
Megachip
2

Я думаю, вы можете танцевать очень близко к своему собственному ответу. Вы упоминаете, что у вас нет удаленного рабочего стола Apple. Я бы порекомендовал рассмотреть это для того, что вы пытаетесь сделать. Я использую его так, как вы описываете все время - у меня есть файл .pkg, который нужно установить на нескольких компьютерах в моей локальной сети, я выделяю компьютеры, на которых хочу его установить, и говорю удаленному рабочему столу установить его. Он делает гораздо больше, чем это, но он сделает эти удаленные установки для вас. Это 80 долларов за лицензию с неограниченным количеством клиентов.

Если $ 80 является камнем преткновения - вы можете посмотреть на munki , который

«Набор инструментов, которые используются вместе с хранилищем пакетов и метаданными пакетов на веб-сервере, могут использоваться администраторами OS X для управления установкой программного обеспечения (и во многих случаях удалением) на клиентских компьютерах OS X».

Я не использовал его сам, но очень уважаю людей, которые его кодируют и используют в реальной жизни. Он немного более настроен и работает, чем удаленный рабочий стол, но также имеет гораздо больше возможностей.

Надеюсь, вы можете использовать одну из этих двух программ, чтобы делать то, что вы после.

evilblender
источник
Да, но насколько я знаю, вам нужен root-доступ для использования удаленного рабочего стола?
Megachip
Вам потребуется доступ администратора для настройки удаленного рабочего стола на клиентских компьютерах. ARD не позволит вам просто установить файлы на любой Mac, который вы видите в сети. :)
evilblender
Такая возможность не предоставляется, извините.
Megachip
2

Наконец, благодаря решению dr.nixon моего конкретного вопроса , я должен справиться с созданием автоматической установки, как описано в вопросе через Platypus .

Пользователь должен запустить приложение, все остальное будет сделано автоматически.

Megachip
источник
Пользователь может поместить его в элементы автозагрузки, чтобы он всегда запускался при загрузке.
AnneTheAgile