Как передать аргументы установщику пакетов из терминала Mac

Я хочу выполнить установку файла pkg как тихую установку с терминала Mac. Поэтому я использовал приведенную ниже команду для автоматической установки.

sudo installer -store -pkg "/User/MyName/Desktop/helloWorld.pkg" -target /

Он отлично установил мое приложение. Но я хочу передать аргументы из этого сценария командной строки установщику пакета, который был создан в создателе пакетов. Чтобы я мог использовать это значение аргумента в сценарии после / предварительной установки внутри установщика пакета.

Есть ли возможность передать мое значение в качестве аргумента в приведенной выше команде?


person santhosh    schedule 04.02.2015    source источник


Ответы (2)


Это невозможно из команды, поскольку команда «installer» не поддерживает никаких таких аргументов. Однако вы можете попробовать использовать файл конфигурации, который вы можете прочитать из сценария до / после установки, и выполнить необходимые действия.

person Vikram Singh    schedule 28.02.2015
comment
Привет! Это может быть старая ветка, но в настоящее время я столкнулся с аналогичной проблемой. проблема с вашим предложением заключается в том, что файл конфигурации должен располагаться по абсолютному пути вне пакета, иначе вы не сможете найти его на этапах «предустановка / постинсталляция». Однако таким образом было бы сложно изменить файл, пока он внутри упаковки ... Может, подскажете, как это лучше сделать? - person Zohar81; 28.09.2017
comment
Необязательно присутствовать в абсолютном пути. Он может находиться внутри пакета вместе со скриптами. Эта ссылка может быть полезной: macinstallers.blogspot.in/2012/ 07 / - person Vikram Singh; 28.09.2017

В installer руководстве вы можете найти что-то вроде этого:

установщик (8) [справочная страница osx]

-applyChoiceChangesXML pathToXMLFile Применяет изменения выбора установки, указанные в pathToXMLFile, к вариантам по умолчанию в пакете перед установкой. Это позволяет программе установки из командной строки выбирать, что будет установлено. См. ВЫБОР ИЗМЕНЕНИЯ ФАЙЛА для получения подробной информации об этом формате XML. О любых проблемах, возникающих при применении изменений выбора, будет сообщаться в средство LOG_INSTALL (то есть в /var/log/install.log), а также в стандартный вывод, если -dumplog используется.

В разделе ВЫБОР ИЗМЕНЕНИЯ ФАЙЛА написано: установщик (8 ) [страница руководства по osx]

ВЫБОР МЕНЯЕТ ФАЙЛ

Файл `` choiceChanges '' позволяет выбрать или отменить выбор отдельных установщиков. Файл шаблона choiceChanges для данного пакета может быть создан с помощью параметра -showChoiceChangesXML и интерпретируется следующим образом.

Файл choiceChanges - это список свойств, содержащий массив словарей. Каждый словарь имеет следующие три ключа:

Описание ключа
choiceIdentifier Идентификатор выбора, который нужно изменить (строка)
choiceAttribute Одно из имен атрибутов, описанных ниже (строка)
attributeSetting Параметр, который зависит от атрибута choiceAttribute, описанного ниже (число или строка)

Значения choiceAttribute и attributeSetting следующие:

choiceAttribute attributeSetting Описание
selected (число) 1 для выбора варианта, 0 для отмены выбора
включен (номер) 1 для включения выбора, 0 для его отключения
visible (номер) 1 для отображения выбора, 0, чтобы скрыть его
customLocation (строка) путь, по которому следует установить выбор (см. Ниже)

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

Атрибут customLocation может быть установлен для выбора, только если этот выбор явно разрешает путь, определенный пользователем. То есть, если для выбора будет отображаться всплывающее окно «Местоположение» при просмотре на панели «Настройка» приложения установщика, его можно настроить с помощью customLocation. (В противном случае пути установки не могут быть произвольно изменены, поскольку автор пакета должен учитывать пользовательские места установки для правильной работы установки.)

Этот xml может быть сгенерирован перед заявлением об установке, и вам не нужен скрипт для его обработки (как предлагает другой ответ).

person Marek R    schedule 05.07.2019