Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Nullsoft Scriptable Install System | NSIS

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

Открыть новую тему     Написать ответ в эту тему

Nep



Moderator
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

 
NSIS (Nullsoft Scriptable Install System)
Скриптовая система создания инсталляционных пакетов от авторов Winamp

Основные характеристики:
 
  • Размер дистрибутива около 1,5 МБ
  • Наличие в базовом пакете файлов с примерами и подробной справки
  • Чрезвычайная гибкость при создании инсталляций для своих программ
  • Открытый исходный код
  • Использование различных алгоритмов сжатия (ZLIB, BZIP2, LZMA)
  • Наличие различных плагинов
     
    Новейшая версия ветки 2.х: NSIS 2.51 (от 1 апреля 2016 г., статус ветки - Old Releases)
    Новейшая версия ветки 3.х: NSIS 3.10 (от 30 марта 2024 г.)  
     
     
    Ссылки:
    NSIS: страница загрузкирусификатор ветки 2.xx (без гарантии, что подходит!)2.513.10NSIS 3 Pre-releaseNSIS 2 Pre-releaseисходники (SVN)
     
    Дополнительно: [ плагины, примеры и полезности ] • [ форум разрабочиков ] • [ Wiki ]
     
    Редактор для скриптового языка NSIS: [ скачать ] • [ домашняя страница ]
     
    NSIS Unpacker
    7-zip начиная с версии 4.40 beta поддерживает распаковку из некоторых типов инсталляций.  
    Обратите внимание, что 7za не поддерживает распаковку.
     
    Полноценного русификатора пока нет, но кто хочет, может перевести сообщения в исходных текстах NSIS и скомпилировать всё заново – это единственный корректный вариант. Из файлов поддаётся корректному переводу только меню интегратора NSIS, поскольку там HTML, а остальные переводы – это в основном "русификаторы" с непредсказуемыми последствиями применения.
     
    64-х битное развитие идей NSIS. В разработке, аннотация разработчика nsisbi.
     
    Просьба к тем, кто будет править шапку, сначала сверяться с http://nsis.sourceforge.net/Main_Page и не выдавать желаемое за действительное.

  • Всего записей: 41940 | Зарегистр. 24-06-2001 | Отправлено: 14:21 06-10-2001 | Исправлено: DimmY, 11:10 31-03-2024
    david141



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Может, кто знает, что за ошибка?
    Invalid command: ${LocateNoDetails}
    Error in macro CopyFilesFromDir on macroline 34
     
    Вот исходник: http://ifolder.ru/22925369  firefox-installer
    Может, кто разберётся и выложит рабочий?
     

    Всего записей: 87 | Зарегистр. 08-11-2010 | Отправлено: 07:30 13-04-2011
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    david141
     
    Тут и смотреть не надо - макрос не определён - в одном из внешних инклюдов стоит его вызов, а тела нет. И вообще, то что Вы выложили никакого смысла сегодня не имеет - берётся банальная связка NSIS + HM NIS, мастер генерирует скелет скрипта с применением MUI, на него навешивается любая нужная логика и не надо городить весь тот огород с бору по сосенке что вы выложили. В том варианте, что в архиве инсталлятор никогда не соберётся - там 3/4 нужных внешних определений отсутствуют. И таким способом Вы будете его годы собирать. Проще как я Вам сказал всё заново написать и не изобретать велосипед как Вы сейчас пытаетесь.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 09:37 13-04-2011
    david141



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Легко сказать всё заново написать. Но очень мало опыта в NSIS.
    У автора исходника из этой статьи: http://mike.kaply.com/2007/07/19/rebranding-the-firefox-installer/  вроде как получается.

    Всего записей: 87 | Зарегистр. 08-11-2010 | Отправлено: 12:27 13-04-2011
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    david141
     
    И должно получаться если он собственные либы применяет. Я их использую, да, но свою ProcLib.nsh я давно под GPL открыл, а другой человек мог поступить иначе, либо просто забыть про эти библиотеки и распишитесь и получите - тупик. Что как я понимаю мы и видим. Вы бы батенька для начала более простые задачи научились решать, а сложные от Вас не уйдут. Нельзя сразу научится летать на истребителе - сначала надо У-2 освоить, а Вы пытаетесь сразу за штурвал МиГ-19 сесть минуя У-2. Ну, колом в землю глядишь и слетаете … один раз.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 12:49 13-04-2011
    sawerx



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Легко сказать всё заново написать. Но очень мало опыта в NSIS.  

    Victor_VG - вам правильно ответил, запускаешь МАСТЕР в редакторе HM NIS,  
    он быстро генерирует готовый скрипт, копию его где нибудь сохраняешь, на всякий случай если напортачишь.  
    Далее пытайся вставлять куски кода из того примера или свои, если есть и отлаживай.
    Поверь это намного быстрее, нежели тот навороченный мусор отладить.

    Всего записей: 61 | Зарегистр. 21-11-2010 | Отправлено: 02:18 14-04-2011
    david141



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Тогда у меня три вопроса если можно.
    Как сделать такое окно после окна приветствия?
       
     
    Как сделать выбор браузера по умолчанию?
       
     
    Как сделать так чтобы файлы были не в setup.exe а подхватывались из папки во время установки?
       
     
    СПАСИБО.

    Всего записей: 87 | Зарегистр. 08-11-2010 | Отправлено: 06:49 15-04-2011 | Исправлено: david141, 18:57 16-04-2011
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    david141
     
    Первые два - MUI с выбором параметров секций, третий достаточно прост - File <путь к источнику>.  Но я Вам этот вариант делать не советую - он для Вас сейчас слишком сложен. Учитесь более простых вещах или если не хотите никого слушать - маны в руки и вперёд, но тогда "SOS" не кричать, белый флаг не выкидывать - не желающих  учится, но желающих всё на блюдечке с голубой каёмочкой получать, считают не обучаемыми, и им не помогают, по крайней мере я сию "благотворительность" не осуществляю.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 09:12 15-04-2011 | Исправлено: Victor_VG, 09:14 15-04-2011
    david141



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо 'великий мастер' за помощь.

    Всего записей: 87 | Зарегистр. 08-11-2010 | Отправлено: 09:33 15-04-2011
    SpoinT



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Друзья, всю голову сломал Можете привести пример с отменой установки? В инете примеры какие-то кривые, в справке инфы мало.
     

    Код:
      !define MUI_PAGE_CUSTOMFUNCTION_SHOW InstFilesShow
      !define MUI_PAGE_CUSTOMFUNCTION_LEAVE InstFilesLeave
      !insertmacro MUI_PAGE_INSTFILES
     
     
    Function InstFilesShow
      GetDlgItem $0 $HWNDPARENT 2
      EnableWindow $0 1
    FunctionEnd
     
    Function instfilesLeave
      IfAbort 0 +2
        MessageBox MB_OK "user aborted"
    FunctionEnd
     

     
     
    Вот пример, отмена работает, но сетап сразу закрывается...
     
    UPDATE:
     
    Добавил
    !define MUI_ABORTWARNING
     
    спрашивает об отмене, но закрывает окно, а как сделать, чтобы не закрывалось...
     

    Всего записей: 840 | Зарегистр. 31-01-2007 | Отправлено: 11:38 15-04-2011 | Исправлено: SpoinT, 12:33 15-04-2011
    dimbat



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SpoinT
    Вот этот пример подойдет, если я правильно понял задачу.

    ----------
    In Search We Trust

    Всего записей: 1034 | Зарегистр. 23-08-2003 | Отправлено: 13:20 15-04-2011 | Исправлено: dimbat, 13:21 15-04-2011
    kot280379



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    david141
    Советую, как и другие участники
    http://narod.ru/disk/1645638001/NSIS_Help.zip.html

    Всего записей: 185 | Зарегистр. 01-11-2009 | Отправлено: 14:53 15-04-2011
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kot280379
     
    А он явно не обучаемый - иначе не требовал бы готового решения походя оскорбляя незнакомых, но исходно доброжелательно настроенных к нему людей, за то что ему сначала ответили о причине не решаемости его постановки,  и порекомендовали сначала учится, а потом решать сложные задачи, а не требовать от людей "дайте мне готовое решение под ним свою подпись поставлю!:

    Цитата:
    Может, кто знает, что за ошибка?
    Invalid command: ${LocateNoDetails}
    Error in macro CopyFilesFromDir on macroline 34
     
    Вот исходник: http://ifolder.ru/22925369  firefox-installer
    Может, кто разберётся и выложит рабочий?  

    и ниже по тексту. Хотя ему чётко было отвечено - у данного автора собственные закрытые библиотеки, что видно из анализа исходников. Но, ему потребовалось самоутвердится банальным хамством:

    Цитата:
    Спасибо 'великий мастер' за помощь.

    К batva его что ли отправить для воспитательной беседы поскольку извинятся у нонешних новичков не принято? У них просто принято - нахамил - пост заработал, а там трава не расти....

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 21:23 15-04-2011 | Исправлено: Victor_VG, 21:28 15-04-2011
    kot280379



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

    Цитата:
    А он явно не обучаемый

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

    Цитата:
    у данного автора собственные закрытые библиотеки

    я бы на месте автора такое не стал выкладывать
     

    Всего записей: 185 | Зарегистр. 01-11-2009 | Отправлено: 12:17 16-04-2011
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kot280379
     
    Естественно, и я не все свои вещи выкладываю, а только то, что считаю возможным.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 16:04 16-04-2011
    SamLab



    Gold Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Куда смотрят авторы NSIS вместо важных функций и недоработок (увеличение длины строки до 8192 байт вместо обычных 1024 или адаптер для загрузки картинок других форматов), они всякую дурость делают в виде rev6148: spam is for pork products only /nsisweb/trunk/mediawiki/LocalSettings.php

    ----------
    SamLab.ws - Программы и русификаторы + SamForum.org - Софтовый форум + Мой Телеграм

    Всего записей: 6597 | Зарегистр. 15-07-2004 | Отправлено: 16:32 17-04-2011 | Исправлено: SamLab, 16:33 17-04-2011
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SamLab
     
    Да, уж глупость откровенная. Приходится с апдейтом стубы 1k на студы 8k заменять чтобы иметь запас для длинных текстовых либо командных строк. Тут я с тобой согласен полностью можно было бы сразу, на уровне исходников включить и поддержку длинных строк, и даже не до 8 Кб, а я бы предложил увеличить для случаев типа WriteRegBin допустимую длину строки и до больших значений, например до 32/64 Кб, интегрировать код логирования установки, два и самое главное привести в порядок работу со стеком и многоязычностью - сегодня это два самых слабых места NSIS. Первое может не определить язык, либо прописать его не так как нужно по алгоритму, а в стеке легко можно получить мусор, особенно при сбое любой операции затрагивающей регистры. Тут шансы порчи стека резко возрастают - они ведь хранятся в едином пуле памяти, и там сбои очень вероятны.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 19:31 17-04-2011
    SamLab



    Gold Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Victor_VG
    Трудно верится, что NSIS в текущем состоянии будет развиваться - это так - на предсмертные муки больше похоже - сейчас все не вспомнить, но приходилось довольно часто сталкиваться либо с отсутствием чего-то важного в NSIS по сравнению с тем же Inno либо если функция и есть - реализация ее ну неудобна
    PS: Немного измененная версия ревизии 6149 от программиста с моего форума с изменениями длины строки и исправлением мелких ошибок типа языковых о которых я писал немного ранее - http://sourceforge.net/projects/remotemonitor/files/nsis-26-Jan-2010-rev6149-strlen-8192-setup.exe

    ----------
    SamLab.ws - Программы и русификаторы + SamForum.org - Софтовый форум + Мой Телеграм

    Всего записей: 6597 | Зарегистр. 15-07-2004 | Отправлено: 19:38 17-04-2011 | Исправлено: SamLab, 19:56 17-04-2011
    sawerx



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    david141

     
    Сразу скажу, что мне не понятно, что вы понимаете под фразой “Выборочная установка”.
    Можно легко обойтись стандартными страницами NSIS
    Страница компонентов с выбором типа установки  
    и в секции Компоненты – 2 и 3 вы найдёте решение с прикреплённым файлом.

    Код:
     
    ; -- выбор для секции компонентов --!
      !include Sections.nsh
      Insttype "/CUSTOMSTRING= Ваш личный выбор"
      Insttype " Стандартная установка" # SectionIn 1
      Insttype " Выборочная установка" # SectionIn 2
       
    ; -- секции выбора компонентов --!
    Section "!Firefox ${VERSION}"
      SectionIn RO ; заглушка!
    SectionEnd
     
      SubSection /e "!Компоненты" ; ключ /e раскрывает список!
    Section "Компоненты - 1"
      SectionIn 1  
      SetOutPath $INSTDIR ; куда вставлять!
      SetDateSave off ; не менять дату!
      SetOverwrite ifnewer ; если новее или on перезаписывать или off не перезаписывать!
      File "core\ваш_файл.exe" ; от куда брать!
    ; -- ваш дальнейший код --!
    SectionEnd
    Section /o "Компоненты - 2" ; ключ /o не активный по умолчанию!
      SectionIn 2  
      BringToFront  # скрывает окно копирования, то есть главное окно будет поверх окна копирования!
      Copyfiles /SILENT "$EXEDIR\core\core_1.exe" $INSTDIR\core_1.exe # паравозик!
    SectionEnd
    Section /o "Компоненты - 3"
      SectionIn 1 2
    ;  или использовать простой но для этого цели очень эффективный банер SpiderBanner!  
    ;  Если используется плагин, его надо сначала скачать и поместить DLL в папку /Plugins
    ;  и верхней части заголовка скрипта примерно после  !include MUI.nsh  поместить следующую строку
    ;  ReserveFile "${NSISDIR}\Plugins\SpiderBanner.dll" ; зарезервировать плагин!
     
      SpiderBanner::Show /NOUNLOAD /BR 200 ; запускается банер и скрывает главное окно!
      Copyfiles /SILENT "$EXEDIR\core\core_2.exe" "$INSTDIR\core_2.exe" # паравозик!
      SpiderBanner::Destroy ; закрывается банер и возвращяет главное окно!
    SectionEnd
      SubSectionEnd
    ; -- конец секций компонентов --!
     

    Вам нет ни какого смысла, из-за одной пимпочки делать заказную страницу,
    рекомендую страницу интеграции перенести на финальную страницу  установки.

    Код:
     
      ReserveFile "${NSISDIR}\Plugins\system.dll" # если используются ключи  /reassoc /quit
    ; -- свойства компонентов --!      
         !define MUI_COMPONENTSPAGE_CHECKBITMAP "${NSISDIR}\Contrib\Graphics\Checks\Checks.bmp" ; уточнить!
         !define MUI_COMPONENTSPAGE_SMALLDESC ; более широкое окно!
    ; -- конец свойств компонентов --!  
    ;Последовательность открытия страниц!
    !insertmacro MUI_PAGE_WELCOME
    !insertmacro MUI_PAGE_DIRECTORY  
    !insertmacro MUI_PAGE_COMPONENTS
    !insertmacro MUI_PAGE_INSTFILES
    ;Запуск приложений на Финальной странице!
          !define MUI_TEXT_FINISH_INFO_TEXT "Успешно завершена установка $(^Name)$\n$\nПоздравляем Вас!   \
          Вы сделали правельный выбор, $\nещё одной полезной программой у Вас стало больше.$\n$\n"
          !define MUI_FINISHPAGE_SHOWREADME
          !define MUI_FINISHPAGE_SHOWREADME_FUNCTION "FinalesAssoc"
          !define MUI_FINISHPAGE_SHOWREADME_TEXT "Зделать браузер по умолчанию"
          !define MUI_FINISHPAGE_LINK "http://www.mozilla.com/ru/firefox/"
          !define MUI_FINISHPAGE_LINK_LOCATION "www.mozilla.com/ru/firefox"
          !define MUI_FINISHPAGE_LINK_COLOR "0000FF"
     !insertmacro MUI_PAGE_FINISH
     
     
    Function FinalesAssoc
    ; -- здесь ваш код интеграции браузера--!
    ; -- возможный краткий вариант--!
      Exec '"$INSTDIR\Firefox.exe" /reassoc /quit' # если поддерживается !
    FunctionEnd
    ; -- следующая секция удаления --!
     

    Так же вам рекомендую, глянуть на  макрос RegisterExtension extenstion
    Если всё же есть желание слепить заказную страницу, в HM NIS Edit 2.0.3.0 на панели инструментов, третья слева кнопка  генерирует заказную страницу на основе INI файла.
    Кликнуть в пустое место этой страницы и выбрать из контекст меню  Изменить размер.
    Только не забывай устанавливать флаг на выполнение  /NOTEFY
    Боле подробно об INI файлах описано в справке  InstallOptions 2
     

    Всего записей: 61 | Зарегистр. 21-11-2010 | Отправлено: 22:43 17-04-2011
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SamLab
     
    Надо посмотреть. Главное для меня - наработанные проекты.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    Xeon E5 2697v2/C602/128 GB PC3-14900L/GTX 1660 Ti, Xeon E5-2697v2/C602J/128 Gb PC3-14900L/GTX 1660 Ti

    Всего записей: 33230 | Зарегистр. 31-07-2002 | Отправлено: 23:41 17-04-2011
    kot280379



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

    Цитата:
    а я бы предложил увеличить для случаев типа WriteRegBin допустимую длину строки и до больших значений, например до 32/64 Кб

    Было бы даже очень прекрасно для всех случаев, хотя бы для разбора массива строк - быстродействие куда выше будет (пришлось по работе столкнуться, по быстрому написать поиск номеров телефонов по различным условиям и вывести список в Listview), а файл данных 20-30 Кб , приходится каждый раз к файлу обращаться, что притормаживает поиск, тем более на работе откровенно слабый комьютер.
    Хотя понимаю NSIS не для этого рассчитан
    В принципе уже на VB.NET поисковик сделал

    Всего записей: 185 | Зарегистр. 01-11-2009 | Отправлено: 00:07 18-04-2011 | Исправлено: kot280379, 14:17 18-04-2011
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

    Компьютерный форум Ru.Board » Компьютеры » Программы » Nullsoft Scriptable Install System | NSIS


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru