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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Обновил своё издание - Update for NSIS 2.4.6 v1.0.0.2
     
    Что нового?
     
    Плагины подновились, раз, и дописал наконец задуманное в ProcLib: теперь она умеет делать ещё пару нужных проверок: MinVer и RngVer. Смысл: первая проверяет что версия ОС не меньше заданной, а вторая проверяет что версия ОС лежит в диапазоне от нижней до верхней границы. Если условие ИСТИНА, то функции вернут "1", иначе значение кода возврата по умолчанию "0". Подробности описаны в документации на библиотеку, и под ковриком из-за размера.
     
    Новые функции в библиотеке ProcLib V2.6
     
    Важно! Только учтите, что для RngVer номер версии состоит из трёх цифр: мажор, минор, сервис пак, и именно в такой последовательности! Если сервис пак не важен, или его нет, то 3-я цифра должна быть нулём. Иначе код возврата функции всегда даст "0", т.е. условие будет считаться не выполненным.
     
    jekov
     
    Как раз обновлял плагины, поглядел - пока в репозитарии такого плагина нет, но он в разработке у одного из авторов. По словам того человека состояние на данный момент на уровне идеи алгоритма.
     


    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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 | Отправлено: 11:25 21-03-2010 | Исправлено: Victor_VG, 11:26 21-03-2010
    kot280379



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Victor_VG  помогите пожалуйста в моем вопросе постом выше. Заранее благодарен

    Всего записей: 185 | Зарегистр. 01-11-2009 | Отправлено: 14:00 21-03-2010 | Исправлено: kot280379, 14:03 21-03-2010
    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 | Отправлено: 14:27 21-03-2010
    kot280379



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

    Код:
     
    !include "Sections.nsh"
    !include "MUI.nsh"
     
    !define MUI_COMPONENTSPAGE_SMALLDESC
     
    RequestExecutionLevel admin
     
    !insertmacro MUI_PAGE_COMPONENTS
     
    Name "Section"
    OutFile "section.exe"
     
     
    SectionGroup /e A
     
    Section "test1" section1
    SectionEnd
     
    Section /o "test2" section2
    SectionEnd
     
    Section /o "test3" section3
    SectionEnd
    SectionGroupEnd
     
    Function .onSelChange
      SectionGetFlags ${section1} $1
      SectionGetFlags ${section2} $2
      SectionGetFlags ${section3} $3
    StrCmp $1 "1" 0 N1
      SectionGetFlags ${section2} $0
      IntOp $0 $0 & ${SECTION_OFF}
      SectionSetFlags ${section2} $0
      SectionGetFlags ${section3} $0
      IntOp $0 $0 & ${SECTION_OFF}
      SectionSetFlags ${section3} $0
    N1:
     
    StrCmp $2 "1" 0 N2
      SectionGetFlags ${section1} $0
      IntOp $0 $0 & ${SECTION_OFF}
      SectionSetFlags ${section1} $0
      SectionGetFlags ${section3} $0
      IntOp $0 $0 & ${SECTION_OFF}
      SectionSetFlags ${section3} $0
    N2:
     
    StrCmp $3 "1" 0 N3
      SectionGetFlags ${section1} $0
      IntOp $0 $0 & ${SECTION_OFF}
      SectionSetFlags ${section1} $0
      SectionGetFlags ${section2} $0
      IntOp $0 $0 & ${SECTION_OFF}
      SectionSetFlags ${section2} $0
    N3:
     FunctionEnd
     

     
    но как сделать выбор одним нажатием ? т.е чтобы снять или отметить компонент нужно дважды нажать на выбранный компонент.

    Всего записей: 185 | Зарегистр. 01-11-2009 | Отправлено: 16:44 21-03-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kot280379
     
    Нет, нужен специальный макрос. Пример можешь взять в каталоге /Examples/NSIS моего обновления. Там используется достаточно просто и надёжный механизм. Элементарно его сделать в HM NIS 2.03. Всё это добро с последними обновлениями лежит у меня на сервере в разделе 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 | Отправлено: 20:44 21-03-2010
    kot280379



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

    Всего записей: 185 | Зарегистр. 01-11-2009 | Отправлено: 00:07 22-03-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    kot280379
     
    Не за что.  
     
    P.S.  
     
    в разделе File Managers установщик Far 2.0.1447 искать не надо - я его удалил из-за ошибок в коде самого Far.exe. Уже нашёл где, костыль приставил. Скомпилирую бинарник - выложу уже 2.0.1449. Far Group известил.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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 | Отправлено: 02:26 22-03-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Особенности получения номера версии в ОС Windows.  
     
    Ситуация: пакет обновлений (Сервис Пак) не установлен. Чем это грозит, и что мы должны сделать для устранения возможных ошибок?
     
    Используем простой тестовый скрипт (пример 1):

    Цитата:
    Outfile test.exe
      ShowInstDetails show
      Section "main"
      Version::GetWindowsVersion
      Pop $0
      Pop $1
      Pop $2
      Pop $3
      Pop $4
      DetailPrint "$$0 == $0"
      DetailPrint "$$1 == $1"
      DetailPrint "$$2 == $2"
      DetailPrint "$$3 == $3"
      DetailPrint "$$4 == $4"
      SectionEnd

    Его вызов в такой ситуации (использовалась ОС Windows 2000 в VirtualBox 3.14) даёт картину 1:
     

     
    где мы видим состояние регистров:
    R0 = 5 - версия системы, минор = 5, всё верно;
    R1 = маджор, неопределённое значение - "мусор", а мы ждём получения значения "0";
    R2 = номер сборки, билд = 2195, всё верно;  
    R3 = 3 = NT, тип платформы, WINNT, верно;  
    R4 = неопределённое значение, CSID не известен, т.к. сервис пак не установлен. Эти значения возвращаются функцией GetVersionEx() из Kernel32.dll, но согласно MSDN данная функция не всегда возвращает числовое значение, иногда ей возвращаемое значение не определено и именно данная неопределённость приводит к ошибкам. "Мусор" это тот случай когда возвращаемая функцией структура содержит не определённые значение.
     
    Скорректируем их посредством следующего скрипта (пример 2):
     
    Цитата:
    Outfile test.exe
      ShowInstDetails show
      Section "main"
      Version::GetWindowsVersion
      Pop $0
      StrCmp $0 "" +1 +2
      StrCpy $0 0
      Pop $1
      StrCmp $1 "" +1 +2
      StrCpy $1 0
      Pop $2
      StrCmp $2 "" +1 +2
      StrCpy $2 0
      Pop $3
      StrCmp $3 "" +1 +2
      StrCpy $3 0
      Pop $4
      StrCmp $4 "" +1 +2
      StrCpy $4 0
      DetailPrint "$$0 == $0"
      DetailPrint "$$1 == $1"
      DetailPrint "$$2 == $2"
      DetailPrint "$$3 == $3"
      DetailPrint "$$4 == $4"
      SectionEnd

    и повторно протестируем пример:
     

     
    в итоге мы получим определённые значения всех элементов, так как там где функция вернула неопределённое значение мы сами поставили условный "0".
     
    И в заключение, работа обоих скриптов и пример 1 и пример 2 при запуске в ОС Windows XP SP3:
     

     
    Проверка под отладчиком (GNU GCC-4.4.1-TDM2(R4), отладчик gdb 7.1) подтвердила предположение, что функция GetVersionEx() возвращает в случае отсутствия пакета обновления или минорной части версии ОС неопределённое значение которое потом корректирует код ОС.
     
    На основании полученных данных я обновил библиотеку ProcLib.nsh до версии 2.7 в которую включил необходимые операции предотвращения ошибок. Она уже доступна на моём файл-сервере по этой ссылке в составе обновления для NSIS 2.46 ANSI скачать update.exe (10,3 Mb, начинайте качать браузером, потом кидайте в любую качалку, докачка поддерживается). Выкладывать её отдельно в следствии привязки к другим элементам обновления я пока не планирую.
     
     


    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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:08 28-03-2010 | Исправлено: Victor_VG, 15:32 28-03-2010
    Dikxi



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Хочу попросить у людей которые собирают с помощью  NSIS портативные программы.Залейте пожалуйста  любой рабочий скрипт для сборки Portable.Сам я не умею писать скрипты хочу попробовать разобраться на готовом примере.

    Всего записей: 35 | Зарегистр. 28-07-2008 | Отправлено: 12:55 15-04-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Dikxi
     
    Не вопрос - http://filekeeper.org/download/victorvg/Source/SDK/far-2.0-portable-sdk.tar.lzma
     
    архив gnu tar 1.22 + LZMA 9.12 (сжатие LZMA2), раздаю под лицензией GNU GPL 3.0. Изучай, но у меня есть плохая привычка - в готовых программах после их отладки я всегда удаляю комментарии - они прилично тормозят компиляторы. Извини, но у меня ещё с Assembler OS/360 и PL/1 и систем ЕС ЭВМ/БЭСМ-6/Эльбрус осталась эта привычка, никак не изживу.


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



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG Спасибо.Два дня в интернете искал не нашел.
    Вопросы будут обращусь к вам.  

    Всего записей: 35 | Зарегистр. 28-07-2008 | Отправлено: 13:22 15-04-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Dikxi
     
    Пожалуйста. Алгоритм идеи расписан в теме по Far Manager, а там он реализован с использованием NSIS плагина Registry. Но, у него есть особенность - резервные копии надо сохранять в $TEMP иначе не получается. С батниками та же петрушка. Да и вдобавок плагин позволяет определить факт отсутствия/наличия ключа сам, а в батнике нужно вызывать дополнительные программы, окна которых надо скрывать. Плагин же выполняется в фоновом скрытом окне. Плюс - не мелькают лишние окна.

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



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Что то до меня не доходит Как с помощью NSIS собрать портативную программу.
    Этой ThinApp 4.0.4 умею собирать а NSIS даже представления не имею.

    Всего записей: 35 | Зарегистр. 28-07-2008 | Отправлено: 14:56 15-04-2010
    Astra55



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

    Цитата:
    Два дня в интернете искал не нашел.  

    Наверное, это был неправильный Инет
    http://portableappz.blogspot.com/2009/05/tutorial-portable-with-nsis.html


    ----------
    Per warez ad scientiam

    Всего записей: 11717 | Зарегистр. 16-05-2003 | Отправлено: 16:07 15-04-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Astra55
     
    Или просто Dikxi только начал осваивать инструмент. Вспомни нас когда мы начинали. Глаза разбегались за что хвататься?


    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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:29 15-04-2010
    Dikxi



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Во ВО глаза в кучу.C чего начать?
     
    Добавлено:
    Astra55 Почитаем.
    Покапаем    

    Всего записей: 35 | Зарегистр. 28-07-2008 | Отправлено: 16:37 15-04-2010
    Victor_VG



    Tracker Mod
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Dikxi
     
    С описания входного языка компилятора и Справки.

    ----------
    Жив курилка! (Р. Ролан, "Кола Брюньон")
    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:42 15-04-2010
    Dikxi



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Victor_VG У меня есть Total Uninstall 5. Вчера пробовал сохранить reg файл из реестра что то он не хочет.Захожу Файл-Извлеч-Установленные приложения А он не хочет.
     
     
    Добавлено:
    Как всё запутано.Ужас.  

    Всего записей: 35 | Зарегистр. 28-07-2008 | Отправлено: 16:51 15-04-2010 | Исправлено: Dikxi, 16:52 15-04-2010
    Astra55



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Dikxi
    Для снимка/подготовки инсталляции, пока что ничего лучше Ashampoo Uninstaller не придумано. Во всяком случае, мне об этом ничего не известно. Сам пользуюсь уже много лет. Если знаете систему и реестр (в плане удаления ненужного мусора), то операция занимает очень мало времени. Потом хоть в NSIS, хоть в какой-нибудь свой инсталлятор.

    ----------
    Per warez ad scientiam

    Всего записей: 11717 | Зарегистр. 16-05-2003 | Отправлено: 17:20 15-04-2010
    Dikxi



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Astra55 ThinApp  хорошо снимки делает.Там и ключи реестра и файлы программы которую хотим собрать.Всё что нужно для сборки в NSIS.
    Ashampoo Uninstaller я не пробовал у меня стоит Total Uninstall 5.2.0 rus

    Всего записей: 35 | Зарегистр. 28-07-2008 | Отправлено: 17:25 15-04-2010 | Исправлено: Dikxi, 17:29 15-04-2010
    Открыть новую тему     Написать ответ в эту тему

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