Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Nullsoft Scriptable Install System ( NSIS ) - это инструмент для разработки установщика на основе сценариев для Microsoft Windows, поддерживаемый Nullsoft , создателем Winamp . NSIS выпускается под комбинацией лицензий бесплатного программного обеспечения , в первую очередь лицензии zlib . [2] Он стал широко используемой альтернативой коммерческим проприетарным продуктам, таким как InstallShield , среди пользователей Amazon.com , Dropbox , Google , Ubisoft , FL Studio , BitTorrent и McAfee . [3]

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

NSIS был создан для распространения Winamp. [4] Он основан на предыдущем продукте Nullsoft, PiMP (плагин Mini Packager) и также известен как SuperPiMP. После версии 2.0a0 проект был перемещен в SourceForge, где разработчики вне Nullsoft начали работать над ним на регулярной основе. NSIS 2.0 был выпущен примерно двумя годами позже.

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

В январе 2006 года NSIS стал проектом месяца SourceForge. [5] [6]

Примеры скриптов [ править ]

Привет, мир! [ редактировать ]

! включить  "MUI.nsh "! insertmacro MUI_LANGUAGE "Английский "Имя  "Hello world! "  # Имя установщика. OutFile  "HelloWorld.exe "  # Имя установочного файла.Функция  .onInit  # Функция, которая будет выполняться при запуске установщика.  MessageBox  MB_OK | MB_ICONINFORMATION  «Hello world! »  # Показать сообщение «Hello world!».  Выйти  # Закройте программу установки, потому что это простой "Hello world!" установщик. Функция: конецРаздел  # Бесполезный раздел, потому что это просто "Hello world!" установщик. SectionEnd

Простой установщик [ править ]

! включить  "MUI.nsh "! define MUI_ABORTWARNING # Это предупредит пользователя, если он выйдет из программы установки.! insertmacro MUI_PAGE_WELCOME # Добро пожаловать на страницу установщика. ! insertmacro MUI_PAGE_DIRECTORY # В какую папку установить страницу. ! insertmacro MUI_PAGE_INSTFILES # Страница установки. ! insertmacro MUI_PAGE_FINISH # Страница завершенной установки.! insertmacro MUI_LANGUAGE "Английский "Имя  «MyApp »  # Имя установщика (обычно имя устанавливаемого приложения). OutFile  "MyAppInstaller.exe "  # Имя установочного файла. InstallDir  " $ PROGRAMFILES \ MyApp "  # Папка для установки по умолчанию ($ PROGRAMFILES - это папка Program Files). ShowInstDetails  show  # Это всегда будет показывать детали установки.Раздел  «MyApp »  # В этот раздел добавьте свои файлы или папки.  # Добавьте свои файлы с помощью «Файл (имя файла)», например: «Файл» $ DESKTOP \ MyApp.exe "" ($ DESKTOP - это папка рабочего стола); или всегда добавляйте свои папки с помощью «File (Name of the folder) \ *», всегда добавляйте ваши папки со звездочкой, например: «File / r $ DESKTOP \ MyApp \ *» (это добавит свои файлы и (с / r его вложенные папки)). SectionEnd

Концепции [ править ]

NSIS 1.98

Скрипт [ править ]

Программа-компилятор NSIS makensis компилирует сценарии, подобные приведенному ниже, в исполняемые программы установки. Каждая строка сценария содержит одну команду.

# Пример сценария Имя  " Example1 " OutFile  "jubaowu.exe " InstallDir  " $ PROGRAMFILES \ Example1 " Страница каталога Страница InstFiles Раздел  SetOutPath  $ INSTDIR  File .. \ makensis.exe SectionEnd

Современный пользовательский интерфейс [ править ]

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

# Современный пользовательский интерфейс пример сценария ! Включают MUI.nsh Имя  "Пример 2 " OutFile  "Example2.exe " ! Insertmacro MUI_PAGE_WELCOME ! Insertmacro MUI_PAGE_LICENSE "license.rtf " ! Insertmacro MUI_PAGE_DIRECTORY ! Insertmacro MUI_PAGE_COMPONENTS ! Insertmacro MUI_PAGE_INSTFILES ! Insertmacro MUI_PAGE_FINISH ! Insertmacro MUI_LANGUAGE "Английский язык " ! insertmacro MUI_LANGUAGE "Немецкий " ! insertmacro MUI_LANGUAGE "Французский "Раздел "Экстракт makensis "  SetOutPath  $ INSTDIR  Файл .. \ makensis.exe SectionEnd

Начиная с версии 2.30 NSIS (выпущенной 25 августа 2007 г.) доступна новая (бета) версия этого пользовательского интерфейса: Modern UI 2 (MUI2), который является усовершенствованием современного пользовательского интерфейса. В отличие от старого MUI, эта версия основана на nsDialogs, а не на устаревших файлах InstallOptions .ini.

Начиная с версии 2.34 (выпущенной 24 декабря 2007 г.) этот MUI2 готов к массовому использованию и включен во все пакеты NSIS. Также на него были переведены все примеры.

Документация по современному UI 2.

Графические интерфейсы [ править ]

Проекты NSIS можно настроить, просто отредактировав текстовые файлы (с расширением .nsi). Однако некоторые сторонние компании предоставляют программное обеспечение для редактирования:

  • EclipseNSIS - это модуль для платформы Eclipse . Это позволяет редактировать, компилировать и проверять сценарии NSIS.
  • HM NIS Edit (бесплатный) редактор с поддержкой пользовательских плагинов C ++ или Delphi .
  • Редактор Venis (бесплатное ПО)
  • Visual & Installer - это надстройка, которая интегрирует NSIS с Microsoft Visual Studio IDE и позволяет создавать и строить проекты NSIS прямо в ней.

Интерфейсы установщика [ править ]

За последние несколько лет было начато несколько проектов, расширяющих или заменяющих современный пользовательский интерфейс. Такие интерфейсы, как ExperienceUI и UltraModernUI, полностью меняют стиль установщика, изменяя его внешний вид, чтобы он выглядел как интерфейс InstallShield . Другие интерфейсы, такие как installSpiderUI, нацелены на более минималистичный подход к визуальной стороне вещей, сохраняя при этом тот же уровень функциональности, что и ASD.

Плагины [ править ]

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

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

Другие плагины доступны в Интернете, включая ZipDLL и плагин Python .

Особенности [ править ]

NSIS поддерживает следующие функции: [7]

  • zlib , bzip2 и сжатие LZMA
  • На основе сценария
  • Многоязычный
  • Поддержка плагинов
  • Сценарий препроцессор

Созданный установщик [ править ]

Сгенерированный установщик представляет собой переносимый исполняемый файл с установочными файлами, заархивированными внутри установщика, накладными расходами в 34 КБ для установщика NSIS [7] и сценарием установки, скомпилированным в исполняемый код. Поскольку сценарий установки скомпилирован, сценарий не может быть получен из доставленного исполняемого файла без обратного проектирования двоичного файла.

Архив можно распаковать с помощью 7-Zip , плагина Total Commander InstallExplorer или плагина FAR Manager InstallExplorer.

В архиве несколько папок:

  • $ PLUGINSDIR  : плагины для рутинной установки
  • $ INSTDIR  : файлы, используемые во время установки
  • $ _OUTDIR  : файлы для установки.

Созданный установщик включает аргументы командной строки, чтобы дать пользователям больше контроля: [8]

  • / NCRC отключает проверку CRC, если сценарий не заставляет ее
  • / S запускает программу установки / удаления без вывода сообщений.
  • / D устанавливает каталог установки по умолчанию. Это должен быть последний параметр и не должен содержать кавычек. Поддерживаются только абсолютные пути.

Поддержка Unicode [ править ]

Версии NSIS до 3.0 не поддерживали Unicode, а только средство для преобразования некоторых файлов в различные кодировки через плагин. [9] Однако доступен вариант NSIS с полной поддержкой Unicode. [10] Известные проекты, использующие этот вариант: [11]

  • Google ( Picasa )
  • Apache OpenOffice для Windows
  • Mozilla ( Firefox , Mozilla Thunderbird )
  • FileZilla
  • Winamp
  • Flickr
  • PortableApps.com
  • Вторая жизнь
  • Xampp
  • CherryPlayer
  • AVG
  • TeamViewer

С выпуском NSIS версии 3.0 поддержка Unicode может быть реализована с помощью директивы компилятора «Unicode true». Это обеспечивает полную поддержку Unicode без каких-либо дальнейших изменений кода, но установщик не будет работать под Windows 95/98 / Me. [12] По состоянию на 2016 год до выпуска 3.0 NSIS был доступен в формате PortableApps для Unicode 2.46.5 Rev 3 и ANSI 2.51. [13]

См. Также [ править ]

  • Список установочного ПО

Ссылки [ править ]

  1. ^ История версий NSIS 1.x - NSIS wiki
  2. ^ "Страница лицензии NSIS" . NSIS.
  3. ^ «Пользователи - NSIS» .
  4. ^ Выпущен Winamp 2.60 , From Betanews, 2000-02-14, Tweakers, ... а именно с новой системой установки 'SuperPiMP' ...
  5. ^ SourceForge.net Проект месяца в январе 2006 года
  6. ^ «Сравнение платформ установщика OpenCandy» . Архивировано 27 июня 2011 года . Проверено 27 июня 2011 года .CS1 maint: bot: исходный статус URL неизвестен ( ссылка )
  7. ^ a b «Особенности» . NSIS.
  8. ^ "installerUsage" . NSIS.
  9. ^ "Плагин Unicode" . NSIS.
  10. ^ "Страница проекта Unicode NSIS" .
  11. ^ «Пользователи проекта Unicode NSIS» .
  12. ^ "Руководство пользователя NSIS, глава 1" . NSIS . Дата обращения 26 мая 2015 .
  13. ^ "NSIS Portable" . PortableApps.com . 19 мая 2016 . Дата обращения 4 июля 2016 .

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • NSIS на SourceForge.net
  • NSIS в Open Hub
  • Неофициальные 64-битные сборки