Ненавчальна установка файлу pkg


14

Чи є можливість створити без нагляду встановлення пакету pkg?

Наприклад, створити mpkg та запустити сценарій, який встановив пакунок через консоль та інсталятор.

Передумови: мені довелося розгорнути пакет для багатьох операторів OSX. У нас немає яблучного робочого столу і жодного кореневого доступу до цих машин. це заздалегідь налаштований пакет pkg, але якщо користувач запустить його звичайним чином, попередня конфігурація буде перезаписана. У Windows я розумію це за допомогою архіву, який виконує selfexecutable, який запускає msi з безшумною установкою. На Linux я будую пакети rpm / deb, але на OSX я не знайшов належного способу :(

Відповіді:


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, то інші люди, які перебувають у групі "адміністратора", зможуть запускатись, /usr/sbin/installerне вимагаючи їх пароля.

Крім того, очевидно, якщо хтось потрапить у ваш акаунт адміністратора, він теж теоретично може викликати непорозуміння /usr/sbin/installer. Хоча я втрачаю можливість думати, що саме вони б робили, це компроміс безпеки та зручності.

По-третє, сценарій github

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

І останнє, але не менш важливе: Автоматизувати "як?"

Що стосується того, як ви хочете автоматизувати установку, це залежить від більш конкретики того, що ви намагаєтеся зробити. Наприклад, можна створити папку, наприклад ~ / Action / AutoInstallPKG /, і сказати launchdвстановити будь-які .pkg або .mpkg файли, які додаються до цієї папки, а потім перемістити її в сторону.

Я давно маю на увазі зробити щось подібне, і тому, нарешті, все це склало. Ви можете знайти його за адресою https://github.com/tjluoma/autopkginstall . Інструкції з установки містяться в Github, тому я не повторюю їх тут.


Думаю, це для мене великий крок вперед, але все ж не остаточне рішення. Мені потрібно розгорнути пакет для багатьох маків (тому sudoes - це не варіант), де користувачеві заборонено змінювати конфігурацію. Тож найкращий спосіб (який працює у Windows та Linux), де файл, який користувач може натиснути, а решта буде виконано автоматично. Але я перевірю ваше рішення, можливо в поєднанні з айсбергом або пакетами, я можу знайти відповідне рішення. Тож сподіваюся, що це нормально, якщо я залишу це питання відкритим ще кілька днів, щоб інші могли зробити там відповіді на ...
Мегачіп

3
Також для подальшої довідки такі деталі, як ці, було б корисно включити у ваше первинне запитання. Відповідь кінцевого користувача, який прагне автоматизувати установки на їхній системі, зовсім інший для тих, хто намагається розповсюдити багато Mac та багатьох ОС. Ви, швидше за все, не знайдете способу, який працює однаково в Windows, Linux та Mac OS X. Навіть компанії, такі як Dropbox, мають різні інсталятори для кожної ОС.
TJ Luoma

Ти маєш рацію, вибач за це. Можливо, я повинен додати це питання.
Мегачіп

Ще раз дякую за всю вашу роботу, я конкретизував своє запитання [тут] ( apple.stackexchange.com/questions/120026/… ). Ваш autopkginstall - це приємна річ, але він вимагає від мене цього "встановити" на кожному клієнті, що неможливо. Здається, моє запитання тут не було достатньо конкретним. Вибачте за це
Мегачіп

2

Я думаю, ти можеш танцювати дуже близько до власної відповіді. Ви згадуєте, що у вас немає віддаленого робочого столу Apple. Я рекомендую розглянути це для того, що ви намагаєтесь зробити. Я використовую його так, як ви описуєте весь час - у мене є .pkg файл, який потрібно встановити на декількох комп'ютерах у моїй локальній мережі, я виділяю комп'ютери, на яких я хочу його встановити, і кажу віддаленому робочому столу, щоб він встановив його. Це робить набагато більше, ніж це, але БУДЕ робити ці віддалені установки для вас. Це 80 доларів за ліцензію з необмеженими клієнтами.

Якщо $ 80 - це крапковий момент - ви можете подивитися на munki , який є

"набір інструментів, які разом із сховищем пакетів та метаданих на основі веб-серверів можуть використовуватися адміністраторами OS X для управління встановленнями програмного забезпечення (а також у багатьох випадках видалення) на клієнтських машинах OS X."

Я сам не користувався цим, але дуже поважаю людей, які його кодують та використовують у реальному житті. Він трохи більше налаштований і працює, ніж віддалений робочий стіл, але також має набагато більше варіантів.

Сподіваємось, ви можете скористатися однією з цих двох програм, щоб зробити те, що вам потрібно.


Так, але наскільки я знаю, вам потрібен кореневий доступ для використання віддаленого робочого столу?
Мегачип

Вам знадобиться доступ адміністратора для налаштування віддаленого робочого столу на клієнтських машинах. ARD не дозволить вам просто встановлювати файли на будь-який mac, який ви бачите в мережі, буде нульовим. :)
зловмисник

Ця можливість не дається, вибачте.
Мегачіп

2

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

Користувачеві потрібно запустити додаток, решта буде виконано автоматично.


Користувач може помістити його в елементи запуску, щоб він завжди починався під час завантаження.
AnneTheAgile
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.