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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нет, язык выбирает стандартный1 MU2, просто я когда-то нарвался на то, что значение переменной $LANGUAGE может обрабатываться некорректно или игнорироваться и нашёл приём - копирую её значение в переменную $LNG а с той таких явлений не происходит.
     
    Скрипт посмотрю позднее, как освобожусь.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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:24 01-02-2019
    megane68



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

    Цитата:
    Скрипт посмотрю позднее, как освобожусь.

    ОК. Буду заглядывать. )))

    Всего записей: 485 | Зарегистр. 14-09-2008 | Отправлено: 17:39 01-02-2019
    r u b o a r d m a n



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, кто в теме, очень надо!
     
    Есть ли быстрый способ заменить файл на свой внутри NSIS-установщика? Можно конечно перепаковать, но тогда надо чем-то вытащить скрипт. Короче без бутылки не разберешься.
     
    Заранее блародарен за любой вменяемый ответ, или подсказку.

    Всего записей: 484 | Зарегистр. 10-09-2014 | Отправлено: 17:15 08-04-2019
    Bannan



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

    Цитата:
    Есть ли быстрый способ заменить файл на свой внутри NSIS-установщика?

    Нет.

    Цитата:
    Можно конечно перепаковать, но тогда надо чем-то вытащить скрипт.

    Только распаковка (установка) и создание нового сценария. Сценарий элементарно вытаскивается перекомпилированной библиотекой 7z, где включена директива распаковки сценариев NSIS. Полученный сценарий будет НЕ рабочим, но достаточным, чтобы понять его логику и функционал. На базе полученной информации составляете новый сценарий.

    Всего записей: 507 | Зарегистр. 30-07-2011 | Отправлено: 17:52 08-04-2019
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    r u b o a r d m a n
     
    99% инсталляторов не перепаковываемы. Скрипт NSIS как правильно сказал Bannan можно извлечь либо собранной с раскомментированной строкой 19 в \CPP\7zip\Archive\Nsis\NsisIn.h 7z.dll, либо например в Far Manager + плагин Observer (его перетащили и под ТС как TotalObserver, изначально плагин написан под Far Manager API, но для распаковки NSIS нужен только NSIS.so, причём возможно от одной из ранних версий плагина, от версии 1.12 DEV не подойдёт). Обсервер работает быстро за счёт оптимизации алгоритма, хотя в ряде случаев 7-Zip работает быстрее.


    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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 | Отправлено: 18:30 08-04-2019
    r u b o a r d m a n



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

    Цитата:
    Полученный сценарий будет НЕ рабочим, но достаточным

    Понятно. То есть быстро не получится.
     
    Bannan, Victor_VG благодарю за быстрый и исчерпывающий ответ.

    Всего записей: 484 | Зарегистр. 10-09-2014 | Отправлено: 18:47 08-04-2019
    MaGoth

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Прив народ,
    У кого-нить сохранились русики и прочие обновлялки для версий 2.46 и выше ?!
    А-то в шапке все ссылки сдохли..

    Всего записей: 114 | Зарегистр. 30-05-2007 | Отправлено: 17:02 15-04-2019
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MaGoth
     
    NSIS 2.51.7z Update включает в том числе и перевод меню. Когда-то для себя делал, пользуюсь до сих пор.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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 | Отправлено: 17:56 15-04-2019
    Bannan



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

    Цитата:
    У кого-нить сохранились русики и прочие обновлялки для версий 2.46 и выше ?!  

    MaGoth, на МсиЛаб'е всегда лежат локализованные версии. На текущую версию еще никто не делал.

    Всего записей: 507 | Зарегистр. 30-07-2011 | Отправлено: 18:33 15-04-2019
    MaGoth

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

    Цитата:
    NSIS 2.51.7z Update включает в том числе и перевод меню. Когда-то для себя делал, пользуюсь до сих пор.

    Здорова камраден! Тыщу лет не виделись..
    Спасибо за файлик и труды!
     
    А по старее версий типа 2.46-2.46.5 или 2.50 от твоего цеху не завалялось в нычках? Помнится, Виктор, ты у нас товарищ запасливый был.
     
    зы, Как сам-то поживаешь?
     
     

    Цитата:
    на МсиЛаб'е всегда лежат локализованные версии. На текущую версию еще никто не делал.  

    2.47 возможно сгодится, спасибки.
    Тройка же меня не интересует, ибо убогая и не подходит для моих целей.
     
    Добавлено:
    MKN

    Цитата:
    Отличная прога для работы с NSIS скриптами - Notepad++. Также из него можно сразу компилить результат.

    эм.. а с какими параметрами ты запускаешь компил скрипта и как?!

    Всего записей: 114 | Зарегистр. 30-05-2007 | Отправлено: 03:49 16-04-2019 | Исправлено: MaGoth, 04:02 16-04-2019
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MaGoth
     
    2.46 если где и валяется, то на бэкапной оптике, а искать там - в конторе три шкафа до потолка, в четвертый ещё пара слимов влезет. Так что долго, да некогда сейчас бэкап ворочать. С 2.51 пока никаких проблем не было, потому смысла нет более ранний вариант искать.
     
    P.S.
     
    Остальное стучись в ПМ к вечеру.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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 | Отправлено: 04:54 16-04-2019
    WiperX



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Приветствую! Подскажите пожалуйста, как сделать следующее: при запуске инсталятора ищется нужный файл (или запись в реестре), если файл есть, установка продолжается в папку где расположен искомый файл. Если файла нет, то установка прекращается. И если можно, то добавить проверку md5 для искомого файла.

    Всего записей: 961 | Зарегистр. 17-03-2009 | Отправлено: 16:29 07-05-2019
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    WiperX
     
    С записью элементарно, например в заголовке скрипта до функций и секций:
     
    InstallDirRegKey <rootkey> "<full_key_patch>" "<value>"
     
    просто читаем нужный ключ Реестра и ставим $INSTDIR
     
    с файлом не сложнее - IfFileExists "<path>" GotoIfExist GotoIfNotExist  
     
    так что тут ничего сложнее простейших проверок.
     
    С MD5 есть такой плагин в наборе на сайте, пример из его описания:
     
    OutFile "md5test.exe"
     
    Section ""  
    #generate MD5sum of string  
    md5dll::GetMD5String "md5me"  
    Pop $0  
    DetailPrint "md5: [$0]"    
     
    # generate MD5sum of file  
    md5dll::GetMD5File "${NSISDIR}\makensis.exe"  
    Pop $0  DetailPrint "md5: [$0]"    
     
    #generate random MD5sum  
    md5dll::GetMD5Random
    Pop $0  
    DetailPrint "md5: [$0]"
    SectionEnd
     


    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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 | Отправлено: 17:20 07-05-2019 | Исправлено: Victor_VG, 17:24 07-05-2019
    WiperX



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG
    Спасибо. Вы не могли бы поправить скрипт, чтобы получилось задуманное?
    https://www.upload.ee/files/9929505/ja2_nsis.7z.html

    Всего записей: 961 | Зарегистр. 17-03-2009 | Отправлено: 18:16 07-05-2019
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    WiperX
     
    ja2_nsis_fixed.7z - поправил:  
     
    каталог исходников не привязан к конкретному тому, скрипт должен просто лежать рядом с каталогом ja2 (где исходные файлы программы);
    устранены "пляски" с рекурсией каталога установки;
    проверяется наличие ja2.exe в целевом каталоге и если нет ругаемся с выходом ещё до копирования файлов;
     
    P.S.
     
    Правки на скорую руку.


    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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 | Отправлено: 20:43 07-05-2019
    HEPBuk

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ищу решение:
    в папке которую упаковываю в инсталлятор каждый раз лежат разные папки с файлами, которые надо устанавливать. Как их включить в Section чтобы можно было выбрать какие копировать в каталог установки?
    Были уже такие примеры работы?

    Всего записей: 22 | Зарегистр. 26-02-2007 | Отправлено: 10:19 10-06-2019
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    HEPBuk
     
    Если имена файлов и каталогов случайные, то занесите их в инклюд - его проще поправить в редакторе кода HN NIS чем всю программу, а если нужно сделать выбор по условиям, то LigicLib + директивы условной компиляции управляемые инклюдом. Сам так делаю, но не все исходники имею право выложить.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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 | Отправлено: 00:20 11-06-2019
    WiperX



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Приветствую! Подскажите пожалуйста как реализовать следующее:
    1. Инсталлятор (двуязычный)
    2. При запуске русской версии копировались файлы из папки RU
    3. При запуске английской версии копировались  файлы из папки EN
    4. Сделать выбор компонентов, но чтобы выбрать можно было только одну версию из двух/трех.
    Спасибо  Victor_VG

    Всего записей: 961 | Зарегистр. 17-03-2009 | Отправлено: 09:31 13-06-2019 | Исправлено: WiperX, 14:51 13-06-2019
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    WiperX
     
    Например так (это  мой старый код) - langswther.nsi:

    Код:
    /* автомат выбора языка если язык системы русский, то в любом случае
    кроме прямого указания использовать английский выберет его, в противном
    случае логика обратная - русский надо принудительно выбрать.
    Глобальные переменные $semen , $semru и $i18n должны быть определены
    заранее в хидере программы.
    */
    Section /o "English" SEC001
       StrCpy $semen 1
    SectionEnd
    Section /o "Russian" SEC002
       StrCpy $semru 1
    SectionEnd
    Section "-lang"
      StrCmp $LANGUAGE 1049 +1 +5
      IntOp $0 $semen ^ $semru
      StrCmp $0 0 +2
      StrCmp $semru 1 +5
      IntOp $0 $semen !
      IntOp $0 $0 && $semru
      StrCmp $0 1 +1 +4
      StrCpy $i18n "Russian"
      Goto +2
      StrCpy $i18n "English"
    SectionEnd
    /* Добавить после секции Post перед деинсталегром! */
    !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
      !insertmacro MUI_DESCRIPTION_TEXT ${SEC001} "Use English language"
      !insertmacro MUI_DESCRIPTION_TEXT ${SEC002} "Use Russian language"
    !insertmacro MUI_FUNCTION_DESCRIPTION_END


    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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 | Отправлено: 14:34 13-06-2019
    WiperX



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG
    Приветствую! Подскажите пожалуйста, как вызвать окно с подсказкой перед установкой (когда при нажатии кнопки установить, появляется надпись "blablabla" и после нажатия Ok установка продолжается).

    Всего записей: 961 | Зарегистр. 17-03-2009 | Отправлено: 07:54 16-06-2019
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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