1. Главная страница » Компьютеры » Nullsoft scriptable install system

Nullsoft scriptable install system

Автор: | 16.12.2019
Nullsoft Scriptable Install System
Тип Установщик
Разработчик Nullsoft
Написана на C++ [2] , Си [2] , Nullsoft Scriptable Install System [2] и PHP [2]
Операционная система Microsoft Windows, POSIX
Первый выпуск 31 июля 2000 [1]
Последняя версия 3.04(15 декабря 2018)
Читаемые форматы файлов Nullsoft Scriptable Install System [d] и NSIS [d]
Состояние активное
Лицензия лицензия zlib
Сайт nsis.sourceforge.net
Медиафайлы на Викискладе

Nullsoft Scriptable Install System (NSIS) — система создания установочных программ для Microsoft Windows с открытым исходным кодом, разработанная компанией Nullsoft — автором плеера Winamp. NSIS был задуман как альтернатива InstallShield, предназначенного для коммерческих продуктов.

Содержание

История [ править | править код ]

Изначально NSIS был спроектирован для распространения Winamp. Он основан на предыдущем продукте Nullsoft — PiMP (plugin Mini Packager), иначе известном как SuperPiMP. После версии 2.0a0 проект был перемещён на SourceForge.net, где к работе над ним присоединились и сторонние разработчики. Два года спустя появился NSIS 2.0.

NSIS версии 1 очень похож на классический Windows Installer, но он был более управляемым с помощью скриптов и поддерживал другие форматы сжатия. NSIS версии 2 поддерживает новый графический интерфейс пользователя, LZMA-сжатие, многоязычность и имеет развитую систему плагинов.

POSIX [ править | править код ]

Версия 2.01 была первой версией, поддерживающей компиляцию на любой из POSIX-платформ. Это позволило создавать Windows-установщики на GNU/Linux и FreeBSD без использования Wine. На данный момент поддерживается компиляция только для Windows.

Скрипт [ править | править код ]

Компилятор NSIS — программа makensis — компилирует скрипты в исполняемый код. Каждая строчка скрипта содержит одну команду. Пример:

Modern User Interface [ править | править код ]

В версии 2.0 был введён новый графический интерфейс пользователя, названный Modern UI (MUI). MUI очень похож на интерфейс традиционных установочных "мастеров", поддерживает заставку, выбор языка и устанавливаемых компонентов и имеет более широкие возможности настройки, чем его предшественник. Пример:

Плагины [ править | править код ]

NSIS допускает расширение с помощью плагинов, которые могут быть написаны на C++, С и Delphi. Плагины применяются для улучшения функциональности и интерфейса установщика и могут быть вызваны в любой части кода NSIS-скрипта.

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

Особенности [3] [ править | править код ]

  • Очень маленький размер установочного блока (около 34 Кбайт)
  • Сжатие zlib, bzip2 и LZMA
  • Гибкая система скриптов
  • Многоязычность
  • Поддержка плагинов
  • Скрипт-препроцессор
  • Создание веб-установщиков

Программы и игры, использующие NSIS [4] [ править | править код ]

  • Антивирус Касперского
  • ATI Display Driver
  • CDex
  • Dev-C++
  • DivX
  • eMule
  • EVE Online
  • FileZilla
  • FL Studio
  • Google Picasa
  • Google Talk
  • Hedgewars
  • Intel C (компилятор)
  • IrfanView
  • LyX
  • Miranda IM
  • Mozilla Firefox 2.0
  • NASA World Wind
  • Notepad++
  • OpenOffice.org для Windows
  • CherryPlayer
  • Fiction Book Editor
  • OpenVPN
  • PascalABC.NET
  • Pidgin
  • Qt SDK
  • VLC Player
  • Winamp

Редакторы [ править | править код ]

Скрипты NSIS это обычные текстовые файлы, которые можно создать с помощью любого текстового редактора. Тем не менее разработано несколько специальных программ, облегчающих процесс создания скриптов:

Знакомство пользователя с программой чаще всего начинается с запуска инсталлятора. Внешний вид («упаковка») и функциональность продукта определяется разработчиком. Пользователю нужно иметь возможность проконтролировать процесс, выставив нужные параметры установки. Для разработчика же важно, чтобы, как минимум, его программа была установлена корректно, а инсталлятор был совместим с необходимыми платформами.

Решений для создания инсталляторов достаточно много. Чаще всего используется подсистема Windows Installer, которая уже входит в инструментарий операционной системы. Но существуют и альтернативные решения — как платные, так и бесплатные, различной функциональности. Зачастую с их помощью можно создавать пакеты с инсталлятором, не зависящим от Windows Installer.

Путеводитель включает в себя всевозможные системы для создания инсталляторов, основные аспекты их обзора следующие:

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

NSIS (Nullsoft Scriptable Install System)

NSIS — бесплатный и широко известный инструментарий для создания инсталляционных пакетов в среде Windows. Отличительные особенности — компактность, масштабируемость, поддержка плагинов и локализаций. Из других возможностей NSIS: поддержка сценариев, различных вариантов установки (включая несколько проектов внутри одного инсталлятора), создание веб-инсталляторов.

Дистрибутивы NSIS создаются на основе сценариев. Переменные, функции полностью контролируют как инсталляцию, так и деинсталляцию продукта. С помощью скриптов можно добавлять файлы и директории, вносить изменения в реестр, редактировать текстовые и двоичные файлы, создавать патчи, управлять переменными среды и даже обращаться к Windows API (посредством расширений).

Читайте также:  Diagnostics hub standard collector

Синтаксис языка NSIS достаточно прост и удобен для чтения, основная документация к нему доступна здесь. Более того, в комплекте с программой содержится большое количество примеров (файлы формата nsi доступны в папке Examples). Для редактирования nsi-сценариев пригоден любой редактор кода, где без особых усилий можно включить подсветку синтаксиса. Множество задач сразу унифицируется, если использовать специальный плагин для >

Удобно работать с NSIS в связке и с другими программами, например, Excelsior Installer (см. ниже).

Если возникает необходимость расширить возможности инсталлятора, можно добавить определенные функции. Плагины пишутся на C, C++, Delphi или других языках. Готовые примеры расширений доступны здесь. Функции разнообразны: от визуальных эффектов инсталлятора до создания патчей и обращения к Windows API.

Скомпилировать инсталлятор можно с помощью инструмента makensis, предварительно выбрав тип компрессии — ZLib, BZip2 или LZMA. Кроме того, сам по себе инсталлятор занимает немного места — всего 34 КБ.

Графический интерфейс инсталлятора доступен в одном из двух вариантах исполнения — Classic или Modern. Более функциональный Modern (на данный момент используется его версия 2.0) позволяет создавать страницы мастера установки с использованием текста, шрифтов, изображений, диалогами, опциями и др. На данном этапе помощь окажет программа NSIS Dialog Designer. Она позволяет быстро конструировать интерфейс, а полученный результат сохранять в формат nsdinc, который затем несложно интегрировать в .nsi-скрипт.

Резюме. Среда NSIS уже давно зарекомендовала себя, и в доказательство — список разработчиков, которые используют ее возможности. Несложный язык сценариев, наличие всех необходимых функций, возможность расширения, доступность основных и дополнительных инструментов — за счет всего этого NSIS составляет сильную конкуренцию программам в данной категории.

Inno Setup

Inno Setup — бесплатный инструментарий для создания инсталляторов на базе сценариев. Среди главных особенностей продукта — работа со всеми версиями ОС Windows (Windows 2000 и выше), расширенная поддержка 64-битных приложений, настраиваемые типы установки, встроенный препроцессор и мощный язык сценариев на основе Pascal.

Сценарии имеют структуру, характерную конфигурационным файлам ini-формата, поэтому код вполне хорошо читаем и удобен в редактировании. Документ разделен на секции, и каждая из них отвечает за определенную задачу инсталлятора соответственно. Всего имеется два типа секций — с параметрами и «директива—значение».

Разработчикам, знакомым с Pascal, будет на руку тот факт, что Inno использует «родственный» язык — RemObjects Pascal Script. Сценарии отвечают за добавление новых опции, создание интерфейса, вызов файлов или библиотек, настраиваемые действия (custom actions) и т. д. В рабочей папке Inno Setup находятся примеры скриптов (также доступны в меню компилятора). По умолчанию в Inno Setup входит компилятор сценариев Compiler >

Самый простой вариант создания инсталлятора — обратиться к пошаговому мастеру настройки Inno Script Studio. Здесь указывается информация о продукте, координаты программы, файл лицензии и другие данные, языки локализации, опции компилятора. Впоследствии проект доступен для компиляции, отладки либо модификации полученного сценария в окне редактора.

Редактор Inno Script Studio доступен на русском языке. Значительно проще настраивать проект последовательно, переходя по секциям, а не создавая сценарий с нуля. При добавлении нового элемента изменения вносятся в код сценария, синтаксис подсвечивается, код соответствующим образом разбит на секции ([Setup], [Types], [Components]…).

Разделы редактора не сгруппированы, но структура вполне узнаваема. Логически их можно разделить следующим образом:

  • Содержимое дистрибутива: Файлы, Каталоги, Иконки, Файлы INI, Реестр
  • Сообщения и пользовательские сообщения,
  • Пользовательские опции: Типы, Компоненты, Задачи, Языки
  • Действия: Выполнить, Удалить перед установкой, Выполнить перед деинсталляцией, Удалить после деинсталляции
  • Код сценария: Код Паскаля, Этапы предкомпиляции, Этапы посткомпиляции

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

Из других особенностей Inno Setup — тихая инсталляция и деинсталляция. Пользователю доступны различные типы установки и локализации на выбор. Установщик может быть зашифрован, содержать цифровую подпись либо защищен паролем. К дистрибутиву может применяться bzip2- или LZMA/LZMA2-компрессия. Интерфейс — в стиле 2000/XP, иных вариантов не предусмотрено.

Резюме. Inno Setup — ближайшая альтернатива NSIS. Позволяет задействовать как мощный язык сценариев, так и удобный и гибко настраиваемый редактор Inno Script Studio, доступный практически «из коробки».

IzPack

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

Главные особенности IzPack: XML-синтаксис, интеграция с различными инструментами компиляции, простой и гибкий API-интерфейс, возможность локализации.

Среди особенностей инсталляторов, созданных средствами IzPack, — небольшой размер и модульность. В основе дистрибутива лежит XML-документ, где указываются все необходимые спецификации, определяется функциональность продукта. Впоследствии конфигурационный файл обрабатывается любым удобным способом, для этого используется командная строка или Apache Ant. Для наращивания функциональности инсталлятора могут быть задействованы IDE среды, такие как Eclipse, IntelliJ IDEA или Netbeans. Для составления конфигурационного файла подойдет любой редактор кода.

В XML-документе указывается информация о проекте (), интерфейс (), локализации (), файлы (), ресурсы (), панели (), содержимое ( — может быть упаковано в raw, gzip, bzip2) и др. Что касается java, в IzPack есть возможность применения действий (custom acrions) и переменных — встроенных, пользовательских и переменных среды (см. документацию и неофициальное руководство).

Читайте также:  124 Мотор 16 клапанный отзывы

Для создания графического интерфейса инсталлятора предназначены панели. С их помощью определяется внешний вид, экрана приветствия, содержимое, текстовая информация (readme, лицензии), изображения. Поддерживаются различные типы интерактивных элементов (поля, переключатели и т. д.), локализация, включая русскую. Переводу поддается как интерфейс, так и содержание.

Для создания самораспаковывающихся модулей применяется метод 7-Zip SFX, использующий возможности известного архиватора. Для Mac OS также доступна оболочка под названием izpack2app.Кроме того, есть возможность создания веб-инсталлятора, для этих целей присутствует оболочка izpack2jnlp, использующая возможности Java Web Start. IzPack поддерживает опцию тихой установки.

Резюме. IzPack — одна из немногих кроссплатформенных систем для создания инсталляторов. Процесс написания конфигурации, компиляции и отладки удобен за счет интеграции со средами разработки, несложен в освоении. Из недостатков следует отметить значительно устаревший (и не оригинальный — native) вид получаемого инсталлятора.

Excelsior Installer

Excelsior Installer — бесплатная программа, предназначенная для создания инсталляторов и обновлений. Основные особенности — простая интуитивная графическая оболочка, возможность интеграции с Проводником и NSIS.

Создание дистрибутива или обновления производится с помощью упаковщика (Packager). Он содержит пошаговый мастер, содержащий настройки проекта. На основе проекта очень просто скомпилировать восьмишаговый инсталлятор. Согласно описанию, это делается и вовсе двумя кликами мыши, но в обязательном порядке в упаковщике необходимо определить следующие параметры:

  • Файлы и папки приложения, ярлыки
  • Описание: имя компании, название продукта, версия продукта

Упаковщик состоит из разделов Files (Файлы), Settings (Настройки) и Appearance (Внешний вид). В целом, здесь содержится стандартный перечень опций, отвечающих за создание лицензионного соглашения, выбор инсталляционной директории, ярлыков, ключей реестра и другие параметры. Если изучить таблицу сравнения продуктов, легко обнаружить следующий функциональный «пробел»: инсталлятор не поддерживает файловые ассоциации, DLL-расширения, элементы управления.

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

Как уже было упомянуто, возможна интеграция Excelsior с NSIS. Excelsior Installer, по сути, выступает полноценным GUI для NSIS, настройки проекта экспортируются без проблем.

В ряду с этим участником обзора, стоит выделить еще один родственный продукт — Excelsior Delivery. По большей части функции Excelsior Installer дублируются. Но есть также и несколько дополнительных функций: добавление в систему OLE- и ActiveX-элементов, файловых ассоциаций, библиотек, создание опросов пользователей. Лицензионная версия Excelsior Delivery (стоимостью $99) позволяет также применить к установщику фирменное оформление (branding). Если эта опция неважна, можно скачать некоммерческую версию программы.

Резюме. Excelsior Installer — простая и очень понятная система для создания дистрибутивов, может использоваться как надстройка к NSIS. Обратная сторона медали — усредненная функциональность как Excelsior Installer, так и Delivery.

WiX Toolset

WiX (Windows Installer XML) — бесплатный набор инструментов для создания инсталляторов (Windows Installer) с использованием спецификации XML. Из особенностей: интерфейс командной строки, интеграция с IDE, автоматизация процессов, поддержка базовых и расширенная поддержка Windows Installer.

Ядро WiX составляют компилятор (candle), компоновщик (light), библиотекарь (lit), декомпилятор (dark), бутстраппер инсталляции (burn) и другие утилиты. С их помощью можно создавать пакеты инсталляции .msi, модули слияния .msm, патчей .msp.

Создание инсталлятора состоит из нескольких основных этапов: разработка сценария, его проверка, обработка препроцессором, компиляция и компоновка. Для сборки инсталлятора и автоматизации в целом используется платформа MSBuild. Автоматизация — одно из главных преимуществ WiX при работе с достаточно ресурсоемкими проектами.

Исходный код имеет формат XML (расширение файла wxs). Сценарий описывает все этапы установки, начиная с описания проекта заканчивая действиями после установки. Редактировать его можно в любом редакторе с поддержкой данного формата.

WiX радует своими интеграционными возможностями: WiX Toolset предоставляет интерфейс командной строки. Для работы с проектом в Visual Studio (модуль IntelliSense) потребуется расширение Votive.

В затруднительных ситуациях или при отсутствии времени на изучение сценариев, хорошую службу окажет графическая оболочка WiXEdit. Ее основные преимущества — импорт существующих wxs-проектов, структурирование xml-данных с удобным чтением и навигацией. С помощью мастера также несложно создать инсталляционный файл с нуля. Причем это далеко не единственный подобный инструмент (см. здесь).

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

Nullsoft Scriptable Install System

Original author(s) Nullsoft Developer(s) NSIS Team and NSIS Community Initial release 31 July 2001 ; 18 years ago ( 2001-07-31 ) [1] Stable release Written in C, C++ Operating system Windows, Mac OS X Type Software development tools License zlib License Website nsis .sourceforge .io

Nullsoft Scriptable Install System (NSIS) is a script-driven installer authoring tool for Microsoft Windows backed by Nullsoft, the creators of Winamp. NSIS is released under a combination of free software licenses, primarily the zlib license. [2] It has become a w >[3]

Читайте также:  Fujitsu siemens scansnap ix500

Contents

History [ edit ]

NSIS was created to distribute Winamp. [4] It is based on a previous Nullsoft product, PiMP (plugin Mini Packager), and is also known as SuperPiMP. After version 2.0a0, the project was moved to SourceForge where developers outside Nullsoft started working on it on a regular basis. NSIS 2.0 was released approximately two years later.

NSIS version 1 is in many ways similar to the classic Windows Installer, but it supports more compression formats. NSIS version 2 features a new streamlined graphical user interface and supports LZMA compression, multiple languages, and an easy-to-use plugin system.

In January 2006 NSIS was SourceForge’s project of the month. [5] [6]

Script examples [ edit ]

Hello world! [ edit ]

Simple installer [ edit ]

Concepts [ edit ]

Script [ edit ]

The NSIS compiler program makensis compiles scripts like the following example into executable installation programs. Each line in the script contains a single command.

Modern user interface [ edit ]

Version 2.0 introduced a new optional streamlined graphical user interface called Modern UI (MUI). The MUI has a wizard-like interface. It supports a welcome page, finish page, language selection dialog, description area for components, and greater customization options than the old user interface.

Since NSIS version 2.30 (Released on 25 August 2007) there is new version (beta) of this UI accessible: Modern UI 2 (MUI2) which is an enhancement to Modern UI. Unlike the old MUI this version is based on nsDialogs instead of old-fashioned InstallOptions .ini files.

From version 2.34 (Released on 24 December 2007) this MUI2 is ready for mass consumption and it is included in all NSIS packages. Also all examples had been switched to it.

Modern UI 2 documentation.

Graphical interfaces [ edit ]

NSIS projects can be configured by simply editing text files (with .nsi extension). However, several third parties provide editing software:

    EclipseNSIS is a module for the Eclipse platform. It allows NSIS scripts to be edited, compiled and val >Installer interfaces [ edit ]

Several projects that extend or replace the Modern UI have started in the past few years. Interfaces such as the ExperienceUI and UltraModernUI completely change the style of the installer by skinning it to look like the InstallShield interface. Other interfaces like installSpiderUI aim for a more minimalistic approach on the visual side of things while maintaining the same level of functionality as the ASD.

Plugins [ edit ]

NSIS can be extended with plugins that can communicate with the installer. Plugins can be written in any unmanaged programming language capable of building a dynamic-link library (such as C, C++ or Delphi), and they can be used to perform installation tasks or extend the installer interface. A plugin can be called with a single line of NSIS code.

Several plugins come with the NSIS package that permit the installer to display a splash screen, display a custom page, display an image on the background, download files from a website, perform mathematical operations, patch files and more.

Other plugins are available online, including ZipDLL, and a Python plugin.

Features [ edit ]

NSIS supports the following features: [7]

Generated installer [ edit ]

The generated installer is a Portable Executable, with the installation files archived within the installer, a 34 KB overhead for the NSIS installer, [7] and the installation script compiled into executable code. As the installation script is compiled, the script cannot be obtained from the delivered executable without reverse-engineering the binary.

The archive may be unpacked using 7-Zip, the Total Commander plugin InstallExplorer, or the FAR Manager plugin InstallExplorer.

The archive contains several folders:

  • $PLUGINSDIR : installation routine plugins
  • $INSTDIR : files used during the installation
  • $_OUTDIR : files to be installed.

The generated installer includes command line arguments in order to give users more control: [8]

  • /NCRC disables the CRC check, unless the script forces it
  • /S runs the installer/uninstaller silently.
  • /D sets the default installation directory. It must be the last parameter and must not contain any quotes. Only absolute paths are supported.

Unicode support [ edit ]

Versions of NSIS before 3.0 d >[9] However, a variant of NSIS that has full Unicode support is available. [10] Notable projects using this variant are: [11]

With the release of version 3.0 of NSIS, Unicode support can be implemented using the compiler directive "Unicode true". This gives full Unicode support with no further code changes, but the installer will not run under Windows 95/98/Me. [12] As of 2016 before the 3.0 release NSIS was available in the PortableApps format for Unicode 2.46.5 Rev 3 and ANSI 2.51. [13]

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *