Інсталяція by NSIS
Здесь ми спочатку задаємо директорію у якому будуть записано майже усі файли объявленые після неї (команда SetOutDir). Тепер у цієї директорії можна звертатися через зміну $OUTDIR. Далі — віддаємо наказ на копіювання в інсталяційний пакет всіх файлів що у директорії D: ProjectsDelphiProjectsFirebirdbin (зверніть увагу, що систему допускає використання символів wildcards, значно зменшує код і… Читати ще >
Інсталяція by NSIS (реферат, курсова, диплом, контрольна)
Инсталляция by NSIS
Михаил Продан, «Комиздат «.
Рано чи пізно будь-який програміст з проблемою створення дистрибутивів свого дітища. Спеціально для іноземних розв’язання проблеми у світі (й у Інтернеті у частковості) існує низка програм призначених на вирішення цієї проблеми. Сьогодні піде, про один представника програм сімейства инсталляторов — NSIS.
Инсталляторы — навіщо вони нужны
Давно пройшли часи, коли до роботи з програмою треба було лише переписати їх у зручний вам каталог і запустити. У цьому не вимагалося ніякої додаткової настройки системи і всі працювало як треба чинити. Сьогодні ж обсяги програм розрослися до неймовірних (на той час) мірок, а використання нових технологій призвела до того, що одне програма розбита на безліч модулів, що найчастіше розкидані з усього диску, а відсутність однієї з них неодмінно призводить до неправильного чи повного припинення функціонування програми.
Именно у тому, щоб правильно налаштувати систему і «розкидати» все файли в потрібні каталоги, комп’ютерне суспільство винайшло программы-инсталляторы.
Nullsoft Scriptable Install System
Или просто NSIS — одну з найкращих представників программ-инсталяторов. Не оскільки він створений всесвітньо відомій групою Nullsoft (творець WinAMP). А насамперед оскільки він — простий використання, швидкий, багатофункціональний і безплатний інсталятор. Можливо цією властивістю має чимало NSIS, приміром улюбленка всіх Microsoft теж зробила внесок у розвиток безплатних інсталяційних пакетів виставивши на SourceForge.net исходники свого інсталятора Windows Installer XML (WiX), але тут можна сказати, що це пакет в обов’язковому порядку вимагає наявності за комп’ютером .NETy Framework яким мають в повному обсязі програмісти (зокрема і це). Ще одне зауваження, що можна віднести як до плюсів і до мінусів цієї програми це використання кронштейна як базового формату програми формату XML. Щоб все мене зрозуміли наведу приклад описи інсталяції програми описаний на мові WiX:
.
При використанні ж пакета NSIS приблизно те опис матиме такий вигляд:
.
И у своїй після компіляції схеми NSIS ми маємо вже готовий модуль виконання, а під час використання WiX — лише об'єктний файл що потім треба вкотре обробити вже іншим додатком.
Теоретические основы
Итак після невеликого вступного слова час торкнутися вивченню основ NSIS. І тому нам знадобиться сам пакет NSIS 2.0. І невеличка програмка, що її будемо інсталювати. Я приміром взяв систему складського обліку для місць роздрібної торгівлі, яка до роботи використовує СУБД Firebird як сховища даних. Для ясності відзначу, що вона використовує механізм dbExpress для доступу до СУБД, і з цього крім самого Firebird-a вимагає наявності у директорії C: WindowsSystem файлів midas. dll і dbexpint.dll. Природно за комп’ютером простого користувача навряд чи знайдуться файли (коли, звісно не встановлював якісь програми вітчизняних виробників), та його природно необхідно включити у створюваний дистрибютив.
Сам інсталяційний пакет створюється з урахуванням файла описи процесу інсталяції який має структуру показану на мал.1.
.
В Головною секції цього файла записуються установки, що є незмінними протягом усього інсталяції. Тут з’являються:
Название проекту
Инсталляционная директорія за умовчанням.
Картинка, яка висіти з вікна інсталяції.
Общий вигляд і поведінка вікна інсталяції.
Настройки показу ліцензійних угод та інших.
Секция сторінок відпо-відає список етапів які відображатись у процесі інсталяції і деинсталяции докладання. Список цих сторінок задається відповідно командами Page і UninstPage. З іншого боку є можливість розширеного контролю над відображенням сторінок із використанням команд PageEx і PageCallback.
Секция мов відпо-відає оголошення мов яких буде проводиться інсталяція, тут можлива або ручна настроювання необхідних мов, або автоматичний добір мови інтерфейсу із усіх включених в окремий пакет мов.
Инсталляционная секція — це головне секція пакета. Тут описуються всіх можливих варіанти інсталяції, оголошення файлів, команди до створення директорій і ключів реєстру та інші різноманітні настройки. При оголошенні секцій інсталяції використовуються ключове слово Section і SectionEnd між які й розташовуються й інші команди. Природно що у різних секціях повинні розташовуватися різні, щодо незалежні, компоненти (у нашій прикладі це власне програму і СУБД Firebird). З цих даних інсталятор дасть можливість користувачеві вибрати, які саме компоненти треба установить (см. мал.2).
.
Кроме того можливість оголошення вкладених підсекцій, які вестимуть себе на подобі складових об'єктів (приміром встановити лише програму, а допомогу не встановлювати тощо.).
Раздел описів. У розділі подаються описи всіх встановлюваних модулів, які з’являтися у діалозі вибору компонентів інсталяції (див. мал.2). Тут у частковості є можливість написання різних заголовків до різних мов, до різних секцій і різноманітних підсекцій.
Деинсталяция — призначена для описи робіт проведених програмою під час видалення вашого докладання із системи. Як багато і інсталяційний розділ деинсталяция також кілька підрозділів у яких описується процес видалення різних компонентів докладання.
Практика
Для отримання й закріплення практичних навичок ми скористаємося будь-яким простим текстовим редактором який вставляє різних символів форматування в текст.
Исходный файл
В цьому редакторі ми створимо файл «APM.nsi «у якому докладно викладемо весь процес інсталяції від початку остаточно.
Сперва запишемо назва нашого пакета і навіть файл куди будуть записані наша програму і супутні їй документи. Тут ми поставимо інсталяційну директорію яка запропонована за умовчанням, метод стискування, яким буде оброблений файл, і навіть уставимо макроси котрі задають вид сторінок по вмовчанням:
.
В розділ мов ми уставимо макрос на підтримку російської:
.
Кроме російського, українського, англійської пакет NSIS підтримує ще 37 мов далекого і близького зарубіжжя що входять у базову постачання та не вимагають додаткових витрат за скачування його з Інтернету.
В інсталяційної секції ми оголосимо дві підсекції, котрі відповідатимуть відповідно за установку головною програми розвитку й СУБД, і навіть додаткових модулів:
.
Здесь ми спочатку задаємо директорію у якому будуть записано майже усі файли объявленые після неї (команда SetOutDir). Тепер у цієї директорії можна звертатися через зміну $OUTDIR. Далі - віддаємо наказ на копіювання в інсталяційний пакет всіх файлів що у директорії D: ProjectsDelphiProjectsFirebirdbin (зверніть увагу, що систему допускає використання символів wildcards, значно зменшує код і видається наочно). Наступна рядок записує в директорію програму для деинсталяции докладання. Потім ми використовуємо команду WriteRegStr для створення розділу нашої програми в системному реєстрі.
В наступній підсекції ми також встановлюємо директорію на якому буде проводиться запис додатковий програм. Далі вибираємо файли midas. dll і dbexpint. dll і поміщаємо в пакет (при інсталяції з’являться в директорії нашої програми). Після цього ми записуємо СУБД Firebird і за командою ExecWait запускаємо її й чекаємо його закінчення. Наприкінці секції ми видаляємо файл з СУБД з директрии нашої програми.
В розділ описів ми помістимо два простих рядки, які коротко характеризировать наші компоненти:
.
В результаті ми матимемо текст зображений на див. мал.3,4. Як очевидно з тексту для присвоєння цих описів нашим секціям ми використовуємо їх назви задані при оголошенні відповідних секцій.
.
.
Последняя — секція деинсталяции. Ця секція буде виконано лише за запуску файла Uninstall. exe, який ми сформували розділ інсталяції. Судна ми записуємо все команди з видалення файлів, директорій, і очищенні реєстру:
.
Здесь теж можна включити код, який би запустив і деинсталлятор для Firebird. Але не будемо цього свідомо. Ну, а якщо знадобиться.
Компиляция
Так, файл інсталяції ми написали. І ось ми маємо скласти з нього экзешник. І тому у складі пакета NSIS входять два докладання: makensis. exe і makensisw.exe. Перше — працює з командної рядки — і підійде тим, хто користується для складання своїх додатків утилітою make чи з аналогічними проблемами. Друге — повноцінне Windows — додаток.
Сборка нашого пакета відбувається за лічені хвилини. Мій пакет площею 4Мб при використанні найкрутішого LZMA стискування збирався за 58,2с. У цьому розмір дистрибутива становив 4.65Мб, а при стандартної упаковці архіву pkzip-ом з настільки ж вмістом результат становив — 4.73Мб.
Кроме цього компілятор дозволяє вибирати між в спосіб стискування: zlib, bzip2, lzma. Є й варіант автоматичного вибору найкращого пакувальника і використання пакувальника вказаної у вихідному файлі.
Послесловие
Использование программ-инсталляторов сьогодні - це не є данина моді, а часом єдина можливість донести своє творіння до кінцевого користувача. У цьому категорії програмного забезпечення однією з і зрозумілих у роботі є заснований на безплатної GNU ліцензії пакет NSIS який пропонує масу різних способів установки докладання на клієнтську машину. А застосування за його створенні плагинов дозволяє ще більше розсунути кордону його застосування.
Список литературы
Для підготовки даної праці були використані матеріали із російського сайту internet.