Меню Рубрики

Установка из инсталлятора pkg

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

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

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

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

3 ответа

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

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

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

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

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

Если программа установки не «подписана» правильно, вам нужно добавить -allowUntrusted

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

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

Для получения инструкций по редактированию этого файла см. 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, поэтому я не буду повторять их здесь.

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

Если $ 80 — это точка привязки — вы можете посмотреть munki , который

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

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

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

источник

Как установить файл PKG на PlayStation 3

Установка игр PKG на PS3 – это то, чем должен владеть каждый, кто купил данную приставку с уже установленной кастомной прошивкой или наконец-то решился модифицировать свою консоль. Для начала давайте разберемся, что это за формат такой.

Если вы пользуетесь консолью с «Custom Firmware» (CFW), которая также именуется «программной прошивкой», все игры, скачиваемые с торрентов и устанавливаемые на жесткий диск, будут иметь разрешение «.pkg».

PKG-образы создавались исключительно для приставок PlayStation. Система изначально заточена под работу именно с этими файлами. В общем, PKG – это игры для PS.

Как записать большие файлы на PS3

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

Приставка читает только те накопители, которые отформатированы в FAT32. Этот формат не поддерживает копирование файлов, объем которых превышает 4ГБ. В связи с этим придется либо делить образ на несколько файлов, либо поработать над настройками программы multiMAN, являющейся неотъемлемой частью взломанных PS3. Разбить файл не сложно, однако это придется делать каждый раз. Лучше прибегнуть ко второму варианту, который решит вопрос раз и навсегда.

Чтобы закинуть на PS3 игры более 4ГБ, нужно открыть «Диспетчер устройств» на ПК и заглянуть в свойства съёмного носителя USB. Выбрав «Сведения» найдите строку «ИД устройства».

Обратите внимание на эту часть: USBVID_1234&PID_1234. Вместо «1234» вы увидите другие значения, среди которых могут присутствовать и буквы.

Теперь в новый тестовый документ впишите: 0x****:0x****:N, а потом замените звездочки на цифры, которые вы видите рядом с USBVID и PID. Буква N – это количество разделов на диске. Обычно он один.

Теперь нужно переименовать получившийся документ в USB.cfg и скопировать в папку dev_hdd0/game/BLES80608/USRDIR/. Перезагрузите приставку, откройте multiMAN, а потом нажмите Select + «треугольник».

Если после этого консоль не примет флешку в формате NTFS, который поддерживает копирование вообще любых файлов, попробуйте отредактировать cfg-файл так, чтобы все буквы в нем были маленькими.

Этот способ работает не на все приставках. Если ничего не помогло, подключите консоль к ПК по FTP. Так тоже можно установить файл PKG на PS3, без каких-либо флешек.

Как установить PKG на PS3

Игры на PS3 устанавливается через Install Package Files. Он изначально есть на любой консоли, но доступен только разработчикам. Соответственно, право пользоваться этой программой можно получить либо обладая специальными разрешениями от Sony, либо взломом.

Нужно закинуть образы на флешку, вставить ее в консоль, открыть Install Package Files, выбрать игру, начать установку. Далее просто перейдите в пункт «Игра» и найдите новый значок.

Чтобы удалить файлы с PS3, никаких дополнительных программ или действий не требуется. Все делается так же, как и на непрошитом экземпляре.

источник

Мануал “Создание инсталлятора при помощи Inno Setup”

December 21, 2018 Jazz Team Технические статьи , 0

Введение

В этой статье пойдет речь про Inno Setup – удобный инструмент для упаковки приложений для OS Windows.

Почему Inno Setup? “Сегодня Inno Setup конкурирует и даже превосходит многие коммерческие инсталляторы в наборе функций и стабильности”, – говорится на официальном сайте разработчика. И действительно, этот инструмент довольно простой для освоения и мощный по своим возможностям.

На данный момент разработчики Inno Setup в качестве ключевых возможностей заявляют:

  • поддержку всех версий Windows, начиная с 2000;
  • поддержку как 64-битной, так и 32-битной установки;
  • встроенный обработчик скриптов Pascal для более гибкой настройки;
  • возможность взять приложение и все файлы, которые нужны для его работы, и упаковать их в один компактный .exe файл;
  • Inno Setup поддерживает несколько режимов сжатия данных. При необходимости встроенное сжатие можно отключать и использовать сторонние архиваторы;
  • позволяет при установке добавлять ключи реестра, запускать дополнительные приложения во время, до и после установки;
  • возможность удалять ключи реестра и все следы активности программы, гибко настраивать деинсталлятор.
Читайте также:  Установка магнитолы в санкт петербурге

Первое знакомство

Скачать бесплатно стабильную версию Inno Setup Compiler можно с официального сайта. Там же можно найти FAQ и документацию на английском языке и сторонние библиотеки, упрощающие процесс создания Inno Setup Script (.iss).

В классическом приложении Inno Setup Compiler есть раздел Help, в котором можно найти FAQ, примеры скриптов и документацию.

При первом запуске программы пользователя встречает диалог, который предлагает посмотреть примеры, создать свой первый Inno Setup Script (.iss) с помощью мастера создания скриптов или открыть уже существующий .iss скрипт.

Для создания установочного файла можно воспользоваться мастером создания скриптов Inno Setup.

Мастер предложит заполнить:

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

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

Расширенная настройка

Если есть необходимость кастомизировать интерфейс инсталлятора, поработать с реестром или настроить действия в процессе удаления программы, то скрипт инсталлятора придется доработать.

Скрипт Inno Setup разделен на секции, каждая из которых отвечает за свой функционал. При этом бывает так, что для одной и той же цели могут подойти разные секции. Порядок выполнения секций строго определен и от расположения секций в скрипте не зависит.

Все секции скрипта, за исключением [Setup], [Messages], [CustomMessages], [LangOptions] и [Code], содержат строки, разделенные на параметры. Каждый параметр состоит из имени, за которым следует двоеточие, а затем значение. Если не указано иное, параметры являются необязательными, поскольку они принимают значение по умолчанию, если их не указать. Несколько параметров в строке разделяются точкой с запятой и могут быть перечислены в любом порядке.


Пример скрипта Inno Setup

В скрипте поддерживаются комментарии, для это нужно начать строку с точки с запятой ( “;” ).

Описание и примеры секций скрипта

В самом начале скрипта, до всех секций, определяются необходимые константы:

В данном случае MyAppName – это имя приложения, MyAppVersion – версия приложения, MyAppPublisher – разработчик. Эти константы будут доступны в любой части скрипта и при необходимости что-то изменить, достаточно сделать это один раз в одном месте.

[Setup]

В данном разделе содержатся глобальные параметры, используемые установщиком и деинсталлятором.

Описание возможных директив секции Setup:

  • App >
    • clRed (красный);
    • clYellow (желтый);
    • clOlive (оливковый);
    • clLime (ярко зеленый);
    • clGreen (зеленый);
    • clTeal (салатовый);
    • clAqua (зелено-голубой);
    • clBlue (ярко-синий);
    • clNavy (синий);
    • clPurple (фиолетовый);
    • clFuchsia (розовый);
    • clMaroon (коричневый);
    • clBlack (черный);
    • clGray (серый);
    • clSilver (серебряный);
    • clWhite (белый);
  • WizardSmallImageFile – маленькая картинка, во время инсталляции будет находиться в правом верхнем углу;
  • WizardSmallImageBackColor – назначает цвет фона за маленькой картинкой. Возможные значения такие же как у большой;
  • WindowVisible – если установлено “yes”, появится окно градиентного фона, отображаемое за мастером. Обратите внимание, что эта директива считается устаревшей и, вероятно, будет удалена в какой-то момент в будущем;
  • BackColor – начальный цвет градиентной заливки окна, отображаемого за мастером (WindowVisible);
  • BackColor2 – конечный цвет градиентной заливки заливки окна, отображаемого за мастером (WindowVisible);
  • BackColorDirection – направление градиентной заливки (WindowVisible);
  • BackSolid – по умолчанию “no”(градиентная заливка включена). При значении “yes” цвет фона будет сплошным и равным BackColor;
  • WindowShowCaption – если установлено значение “no”, программа установки будет действительно «полноэкранным» – у нее не будет панели заголовка или границы, и она будет поверх панели задач. Эта директива не действует, если WindowVisible не установлен на “yes”.
  • WindowVisible – если установлено “yes”, фоновое окно программы установки будет первоначально отображаться в максимизированном состоянии, не перекрывая панель задач. Эта директива не действует, если WindowVisible не установлен на “yes”;
  • WindowResizable – если установлено значение “no”, пользователь не сможет изменить размер фонового окна программы установки, когда он не будет максимальным. Эта директива не действует, если WindowVisible не установлен на “yes”;
  • FlatComponentsList – если для этой директивы установлено значение “yes”, программа установки будет использовать плоские флажки для списка компонентов. В противном случае программа установки будет использовать флажки “3D”;
  • AppCopyright – указывает сообщение об авторском праве, которое будет отображаться в правом нижнем углу фонового окна программы установки, когда параметр WindowVisible установлен в значение “yes”. Значение этой директивы также используется в качестве значения по умолчанию для директивы VersionInfoCopyright, если оно не указано;
  • SetupIconFile – задает значок инсталлятора. Файл должен быть расположен в исходной папке вашей установки при запуске компилятора установки, если не указано полное имя пути или имя пути префикс «компилятор:», и в этом случае он ищет файл в каталоге компилятора;
  • ShowComponentSizes – если для этой директивы установлено значение “yes”, программа установки покажет размер компонента в списке компонентов. В зависимости от самого большого компонента программа установки будет отображать размеры в килобайтах или в мегабайтах;
  • ShowTasksTreeLines – если для этой директивы установлено yes, программа установки покажет «древовидные линии» между родительскими и подзадачами;
  • UninstallDisplayIcon – значок для деинсталлятора в диалоге “Установка и удаление программ” Панели управления;
  • UninstallDisplayName – название программы в диалоге “Установка и удаление программ” Панели управления;
  • UninstallFilesDir – указывает каталог, в котором хранятся файлы «unins *. *» для деинсталлятора. Не стоит менять это значение при обновлении программы, иначе программа установки не найдет журналы удаления из предыдущих версий и, следовательно, не сможет их добавить;
  • UninstallIconFile – иконка, которая будет отображаться в правом верхнем углу окна удаления;
  • UninstallStyle – стиль деинсталлятора;
  • DisableStartupPrompt – если установлено “yes”, программа установки не покажет сообщение “Эта программа установит… на ваш компьютер…”. Этот параметр не действует, если UseSetupLdr установлен на “no”.

[Types]

Эта секция используется, если разработчик хочет предоставить пользователю на выбор некоторые варианты установки. Следует помнить, что сама по себе секция [Types] только описывает возможные для данной программы типы установки, и должна комбинироваться с другими секциями.

[Components]

Эта секция не является обязательной. Здесь определены все компоненты, которые будут отображаться на странице «Выбор компонентов» мастера, для настройки типа установки. Комбинируется с секцией [Types]. Если в секции [Components] перечислены компоненты, а секции [Types] не существует, типы установки будут созданы инсталлятором автоматически, и могут быть не такими, как вам хотелось бы.

[Tasks]

Опциональная секция. Предоставляет пользователю возможность отметить задачи, которые он хотел бы выполнить во время установки. Эти задачи отображаются как флажки и переключатели на странице «Выбор дополнительных задач».Сами по себе задачи ничего не делают. Необходимо помечать какое-то действие в других секциях кодом Task: taskName; Такие действия будут выполнены, только если пользователь выбрал задачу на соответствующей странице.

В секции [Tasks] описывается задание. В окне инсталлятора оно появится после удачной установки приложения, перед страницей “Установка завершена”, и будет иметь вид строки, значение которой определит параметр Description. Задание выполнится, если пользователь поставит флажок в начале этой строки.

В секции [Icons] описывается, куда следует поместить ярлык, как ярлык будет озаглавлен и (по желанию) как он будет выглядеть, для какого именно файла он создается. Параметр Tasks секции [Icons] вызывает задание, описанное в секции [Tasks].

Для запуска каких-либо файлов секция [Tasks] не подходит – для этого существует секция [Run].

Этот необязательный раздел определяет любые дополнительные каталоги помимо каталога приложений, который создается автоматически.
Обратите внимание, что вам не требуется явно создавать каталоги перед установкой файлов в них с помощью раздела [Files], поэтому этот раздел в первую очередь полезен для создания пустых каталогов. Пример, приведенный ниже, создает пустую папку “data” и “bin” в папке с приложением.

[Files]

В этой секции определены любые файлы, которые необходимо установить в систему пользователя. Иногда достаточно указать исполняемый файл, который запускает инсталлируемое приложение. Но чаще необходимы еще какие-то ресурсы.

Читайте также:  Установка задний редуктор тойота

Если устанавливаемый файл является файлом ReadMe, инсталлятор после удачной установки приложения может предложить пользователю прочесть этот файл. Для этого используется флаг isreadme секции [Files], но файл ReadMe пользователь сможет прочитать, только если после установки компьютер не будет перезагружен.

Также файлы секции [Files] могут иметь атрибуты: «системный» (system), «только для чтения» (readonly) и «скрытый» (hidden). За атрибуты файла отвечает параметр Attribs, и если он не указан, то файл не будет иметь вообще никаких атрибутов.

[Icons]

Секция определяет ярлыки приложения, которые необходимо создать в меню «Пуск» и/или в других местах, например на рабочем столе. Следует помнить, что если ярлыки указаны только в секции [Icons], они будут создаваться всегда. Если для ярлыка, задан еще и параметр Tasks в секции [Tasks] , то ярлык будет создан, только если пользователь выберет соответствующее задание при установке программы).

Необязательная секция, определяющая, какие записи будут добавлены в INI-файл. Если INI-файл с заданным именем не существует в указанной папке, инсталлятор создаст его, а если INI-файл уже существует, он может добавить, удалить или изменить записи в нем, а также удалить существующий INI-файл и создать новый с тем же именем, но другим содержанием.

В этом примере Filename – имя INI-файла (с расширением .ini). Section – имя секции INI-файла (в полученном INI-файле будет заключено в квадратные скобки). Key – ключ INI-файла. String – значение ключа Key (строка).

[UninstallDelete]

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

Для того, чтобы не перечислять все однотипные файлы, которые следует удалить при установке или удалении программы, можно использовать «маску»:

В этом примере удалятся все файлы с расширением .ini. Задание «масок» для инсталлятора то же, что и для Windows: * – префикс (суффикс) любой длины, ? – префикс (суффикс) из одного символа и т.д.

[Languages]

Раздел определяет языки, доступные в программе установки.

[Messages]

Сообщения инсталлятора могут быть переопределены путем создания этой секции в файле сценария.

[CustomMessages]

Раздел используется для определения значений сообщений для констант .

[LangOptions]

Секция используется для определения языковых настроек, таких как шрифты, используемые программой установки и деинсталлятором. Как правило, вам не нужно создавать раздел [LangOptions] в вашем файле сценария, так как по умолчанию настройки, зависящие от языка, извлекаются из файла Default.isl, включенного в Inno Setup.

Если перед параметром секции [LangOptions] не указан идентификатор языка, инсталлятор применит их ко всем языкам, заданным в секции [Languages] (кроме параметров LanguageName и LanguageID). Для того, чтобы изменения затронули только конкретный язык, перед параметром следует указать префикс (идентификатор языка и точку):

[Registry]

Этот необязательный раздел определяет любые ключи/значения реестра, которые необходимо создавать, изменять или удалять в системе пользователя во время установки.
По умолчанию ключи реестра и значения, созданные программой установки, при деинсталляции не удаляются. Чтобы при деинсталляции удалялись ключи или значения, необходимо добавить один из следующих флагов uninsdelete.

ValueType – тип значения. Может быть следующим:

  • none – значение по умолчанию. Инсталлятор создаст пустой ключ без параметра; ValueName и ValueData при этом игнорируются;
  • string – инсталлятор создаст строковый параметр (REG_SZ);
  • expandsz – инсталлятор создаст расширенную строку. Используется, например, чтобы дописать значение к уже существующему. (REG_EXPAND_SZ);
  • multisz – инсталлятор создаст многостроковый параметр (REG_MULTI_SZ);
  • dword – инсталлятор создаст целочисленный параметр (REG_DWORD);
  • binary – инсталлятор создаст двоичный параметр (REG_BINARY).

Если параметр ValueType равен string, expandsz или multisz, это будет строка, которая может содержать константы.
Если тип данных dword, это будет десятичное (“123”), шестнадцатеричное (“$7B”), или константа, представляющая собой целое число.
Если тип данных binary – последовательность шестнадцатеричных – десятичных байтов в форме: “00 ff 12 34”.
Если тип данных none, параметр игнорируется.

Раздел является необязательным. В этой секции можно указать любое количество программ для выполнения после того, как программа была успешно установлена, но до того, как программа установки отобразит окончательный диалог. Раздел [UninstallRun] также является необязательным, и указывает любое количество программ для выполнения в качестве первого этапа удаления. Оба раздела имеют одинаковый синтаксис, если не указано иное.

Программы выполняются в том порядке, в котором они отображаются в скрипте. По умолчанию при обработке записи [Run] / [UninstallRun] программа установки / удаления будет ждать завершения программы до перехода к следующей, если не используются флаги nowait, shellexec или waituntilidle.

Pascal scripting (современный Delphi-подобный Pascal) добавляет множество новых возможностей для настройки вашей установки или удаления. Например:

  • поддержка прерывания установки или деинсталляции запуска в пользовательских условиях;
  • поддержка добавления пользовательских страниц мастера в программу установки во время выполнения;
  • поддержка для извлечения и вызова DLL или других файлов из сценария Pascal до, во время или после установки;
  • поддержка скриптовых констант, которые могут выполнять любые обычные константы, константы read-from-registry, read-from-ini и read-from-commandline, могут делать еще больше;
  • поддержка временного удаления типов, компонентов и / или задач;
  • поддержка условной установки записей [Files], [Registry], [Run] и т.д.

Pascal scripting делает почти все, что делает сама программа Inno и может делать еще больше.

Флаги

Большинство секций поддерживают параметр Flags. Этот параметр представляет собой набор дополнительных опций. Несколько флагов можно использовать в одной строке, разделяя их пробелами. В основном, для каждой секции предусмотрены свои специфические флаги.

[Registry]

  • uninsdeletevalue – удаляет значения ключа при деинсталляции;
  • deletekey – позволяет перед созданием нового ключа удалить уже существующий ключ со всеми его дочерними ключами, параметрами и значениями;
  • deletevalue – позволяет перед созданием нового параметра в ключе удалить уже существующий параметр того же типа и с тем же именем;
  • preservestringtype – если тип существующего параметра реестра не string или expandsz (т.е. не REG_SZ или REG_EXPAND_SZ), то он будет заменен строковым параметром с заданным значением, а если тип существующего параметра string или expandsz, заменится только его значение, а тип останется;
  • uninsclearvalue – при удалении приложения параметр в реестре установится в пустую строку (с типом REG_SZ);
  • uninsdeletekey – при удалении приложения удаляет ключ реестра со всеми его дочерними ключами, параметрами и значениями;
  • uninsdeletekeyifempty – при удалении приложения ключ реестра удалится, только если он пустой;
  • uninsdeletevalue – при удалении приложения удалится параметр реестра и его значение;
  • dontcreatekey – используется в ситуациях, когда при установке уже существующий параметр в ключе реестра следует заменить новым, а если ключ или параметр не существует – не создавать ни ключа, ни параметра;
  • createvalueifdoesntexist – инсталлятор создаст в ключе реестра параметр с заданным значением только в том случае, если он не существует. Не применяется с флагом deletevalue.
  • deleteafterinstall – указывает инсталлятору создать папку, но после успешной установки или, если установка прервана, удалить ее, если она пустая. Если в папке будут содержаться файлы, с помощью этого флага она не удалится;
  • uninsalwaysuninstall – указывает деинсталлятору всегда пытаться удалять папку (если она пустая), даже если она уже существовала до начала установки приложения;
  • uninsneveruninstall – указывает деинсталлятору не удалять папку при удалении программы – обычно при удалении программы деинсталлятор удаляет все папки, которые были созданы инсталлятором при установке (если они пустые).

[Files]

  • ignoreversion – установить файл, который, возможно, уже установлен на компьютере пользователя и имеет более позднюю дату создания, т.е. является более новым (в этом случае инсталлятор по умолчанию оставит существующий файл);
  • promptifolder – по умолчанию, когда установленный файл имеет более старый номер версии, чем существующий файл, программа установки не заменит существующий файл. Когда этот флаг используется, программа установки спросит пользователя, следует ли заменять файл;
  • allowunsafefiles – отключает автоматическую проверку компиляторами для небезопасных файлов. Настоятельно рекомендуется, НЕ использовать этот флаг, если вы не уверены, что знаете, что делаете;
  • comparetimestamp – использование этого флага не рекомендуется, кроме как в крайнем случае, потому что в нем есть неотъемлемая проблема: разделы NTFS хранят отметки времени в UTC (в отличие от разделов FAT). Время будет сдвигаться всякий раз, когда пользователь изменяет часовой пояс своей системы или когда переход на летнее/зимнее время. Это может создать ситуацию, когда файлы заменяются, когда это не нужно или не заменяются, когда это нужно;
  • confirmoverwrite – всегда запрашивать у пользователя подтверждение перед заменой существующего файла;
  • onlyifdestfileexists – файл должен заменить уже установленный на компьютере пользователя файл с тем же именем, а если такого файла в системе пользователя нет, то вообще не устанавливаться. Этот флаг полезен в том случае, когда вы создаете инсталлятор для обновления (апдейта) уже установленной у пользователя программы. Но следует помнить, что пользователь может переименовать некоторые файлы программы, и тогда обновление не установится, даже если пользователь установил программу;
  • onlyifdoesntexist – установить файл, только в случае, если он еще не существует;
  • overwritereadonly – всегда перезаписывать файл, помеченный атрибутом “только для чтения”. Без этого флага программа установки будет запрашивать у пользователя, должен ли быть перезаписан существующий файл “только для чтения”;
  • replacesameversion – если уже установленный и устанавливаемый файлы имеют одну версию, по умолчанию инсталлятор не заменит уже установленный файл. Если установленный файл должен быть заменен (что рекомендуется), используется этот флаг;
  • nocompression – если задать отдельному файлу флаг nocompression, то инсталлятор не будет сжимать только заданный файл.
  • uninsdeleteentry – используется для того, чтобы при удалении программы удалялся определенный ключ в заданной секции;
  • uninsdeletesection – показывает, что при удалении программы должна удалиться заданная секция со всеми ее ключами и их значениями;
  • uninsdeletesectionifempty – используется для того, чтобы при удалении программы удалялась только пустая секция;
  • createkeyifdoesntexist – ключ с заданным именем будет создан только в том случае, если до установки он не существовал.
  • shellexec – применяется для файлов, которые не являются исполняемыми (.exe или .com) или командными (.bat или .cmd). С этим флагом файл запустится с помощью программы, принятой по умолчанию для его типа (например, файл ReadMe.txt будет отображен на странице Блокнота). Флаг shellexec не определяет, выполнилась программа или нет, поэтому его следует комбинировать с флагами nowait (инсталлятор не будет ждать, пока запущенный файл выполнится, и сразу перейдет к следующему параметру секции) или waituntilidle (в этом случае установка будет приостановлена для того, чтобы пользователь смог ввести необходимые данные);
  • postinstall – используется для того, чтобы пользователь мог выбрать, какие файлы он хочет запустить, а какие нет. С помощью параметра Description можно указать комментарий к каждому из представленных на выполнение файлов. Если он не указан, инсталлятор будет использовать стандартный комментарий;
  • unchecked – по умолчанию файл, помеченный таким флагом, будет не выбран;
  • hidewizard – во время выполнения программы окно инсталлятора будет скрыто;
  • unhidden – выполняемая программа (или файл) запустится в свернутом окне. Не следует использовать этот флаг для программы, при выполнении которой потребуется участие пользователя (например, он должен будет ввести какие-либо данные);
  • runmaximized – программа (файл) запустится в развернутом окне;
  • runminimized – программа (файл) запустится в свернутом окне;
  • skipifnotsilent – указывает инсталлятору не запускать файл при обычной (не ускоренной) установке;
  • skipifsilent – указывает инсталлятору не запускать файл при быстрой и очень быстрой установке;
  • skipifdoesntexist – не выдавать сообщение об ошибке, если запускаемый файл не существует.
Читайте также:  Установка головки блока цилиндров на квадроцикл

Константы

Большинство записей в сценарии могут содержать в себе константы. Это предопределенные строки, заключенные в фигурные скобки <>. Программа установки или удаления преобразует константы в их литеральные значения, в зависимости от выбора пользователя и конфигурации системы.

Ниже приведен список используемых в Inno Setup констант:

  • – папка установки, которую пользователь выбирает на странице «Выбор места назначения» мастера;
  • – каталог ОС Windows. «C:\WINDOWS»;
  • – системная папка Windows. В 64-битной Windows по умолчанию путь System32, возвращаемый этой константой, сопоставляется с каталогом, содержащим 32-битные системные файлы, как и на 32-разрядной Windows. (Это может быть отменено путем включения 64-битного режима.);
  • – это фактический каталог, в котором находятся 32-разрядные системные файлы. В 32-битной Windows 32-разрядные системные файлы находятся в «System32» или «System», а не в отдельной директории SysWOW64, поэтому эта константа будет ссылаться на тот же каталог, что и . Не рекомендуется использовать эту константу, если нет конкретной потребности в получении имени фактического каталога, в котором находятся 32-разрядные системные файлы;
  • – указывает на корневую папку диска, где установлена ​​Windows, обычно «C:». Эта константа каталога эквивалентна переменной среды SystemDrive;
  • – путь к каталогу Program Files;
  • – путь к каталогу Common Files;
  • – временная директория, используемая программой установки или удаления. Это не значение переменной среды TEMP пользователя. Это подкаталог временного каталога пользователя, который создается при установке или удалении при запуске (с именем типа «C: \ WINDOWS \ TEMP \ IS-xxxxx.tmp»). Все файлы и подкаталоги в этом каталоге удаляются при завершении установки или удаления;
  • – каталог шрифтов. Обычно называется «FONTS» в каталоге Windows;
  • – DAO. Это эквивалентно \ Microsoft Shared \ DAO;
  • – 32-разрядный корневой каталог .NET Framework версии 1.1.
    Если будет предпринята попытка обратиться к этой константе в системе без .NET Framework версии 1.1. будет брошено исключение;
  • – корневой каталог .NET Framework версии 2.0-3.5. эквивалентен , если установка не выполняется в 64-битном режиме, и в этом случае она эквивалентна ;
  • – 32-разрядная корневая директория .NET Framework версии 2.0-3.5;
  • – только 64-разрядная версия Windows: 64-разрядная корневая директория .NET Framework версии 2.0-3.5;
  • – .NET Framework версии 4.0 и более поздней версии. эквивалентно , если установка не выполняется в 64-битном режиме, и в этом случае она эквивалентна ;
  • – 32-разрядная версия .NET Framework версии 4.0 и более поздней версии;
  • – только 64-разрядная версия Windows: 64-разрядная версия .NET Framework версии 4.0 и более поздняя;
  • – путь к папке «Пуск», выбранный пользователем на странице «Выбор папки« Меню «Пуск» меню «Настройка». Эта папка создается в профиле «Все пользователи», если пользователь, устанавливающий приложение, не имеет административных прав, и в этом случае он создается в профиле пользователя;
  • – путь к локальной папке Application Data;
  • & – путь к папке Application Data;
  • – путь к каталогу общих файлов текущего пользователя. Только Windows 7 и более поздние версии поддерживают ; если он используется в предыдущих версиях Windows, он переводится в тот же каталог, что и \Programs\Common;
  • & – путь к папке рабочего стола;
  • & – путь к папке «Мои документы»;
  • & – путь к папке «Избранное»;
  • – путь к каталогу Program Files текущего пользователя. Только Windows 7 и более поздние версии поддерживают ; если он используется в предыдущих версиях Windows, он будет переводиться в тот же каталог, что и \Programs;
  • – позволяет дополнить уже существующее значение параметра реестра, если его ValueType равен string, expandsz, или multisz.

Заключение

После заполнения необходимых секций скрипт Inno Setup компилируется, и в папке, которую нужно было указать в директиве “OutputDir” в секции Setup генерируется исполняемый файл установщика. Для того чтобы скомпилировать скрипт, нужно в меню редактора выбрать Build -> Compile, как показано на скриншоте ниже:

Можно также выбрать Run -> Run, тогда скрипт скомпилируется и сразу начнется установка приложения.
В меню Help -> Inno Setup Example Scripts можно найти несколько примеров того, как этот инструмент позволяет настроить установщик, чтобы он выполнял ту или иную задачу.
Вообще, документация и FAQ, которые прилагаются к редактору скриптов, составлены очень понятно и подробно, там можно найти решение большинства основных задач. Есть и русскоязычные форумы, где происходит обсуждение скриптов инсталлятора, особенностей их создания. Там можно найти много интересных примеров или попросить совета. А когда все начнет получаться – делиться своими знаниями, а может даже и похвастаться своими успехами.

источник