Automatyzacja instalacji w Windows – część 1 : NSIS
12.05.2010 | aktual.: 13.05.2010 12:49
Jakiś czas temu pewnego nudnego dnia w pracy instalując masę programów na świeżych komputerach zacząłem się zastanawiać, czy nie można by było tego jakoś przyśpieszyć lub zautomatyzować. Po kilku kliknięciach OK., NEXT, ACCEPT byłem już przekonany, że na pewno chcę coś takiego zrobić. Napisałem sobie kilka kryteriów, które musiałby być spełnione tj:
1) Instalator musi mieć możliwość wyboru co ma być zainstalowane 2) Nie wymaga ingerencji w to co się dzieje czyli clik&kawa :) 3) Najlepiej jak by instalacja była przeprowadzano w trybie silent
Więc do dzieła!
Pierwszy punkt wydał mi się bardzo prosty – napisać program w C# składający się z kilku checkboxów i oprogramować to odpowiednio. Jednak czy nie można jeszcze prościej ? Otóż można! Z pomocą przyszła mi firma… Nullsoft. Otóż wydała ona na licencji open source znakomity – jak dla mnie – system skryptowy nazwany NSIS. Jest on znany choćby z instalatora Winampa oraz Emule. Oto cały kod instalatora przedstawionego na screenie nr. 1
version 0.1 Name "iNSTALLKA_ by pow3r_shell" OutFile "instalka_test.exe" Page components Page instfiles Section /o "vnc" ExecWait '"NSIS\vnc\tightvnc.exe" /sp- /verysilent'"' SectionEnd Section "Office 2003_SP3" ExecWait 'NSIS\Office2003_SP3_UNT\setup.exe" TRANSFORMS=C:\Office\1.MST /qb-' SectionEnd Section "Compatybility Pack" ExecWait '"NSIS\Office2003_SP3_UNT\comp3.0.exe" /quiet' SectionEnd Section "McAffee" ExecWait '"NSIS\framepkg.exe" /INSTALL=AGENT /SILENT' SectionEnd
Tak to jest cały kod tego instalatora. Celowo nie stosowałem tutaj farejwerków, aby uzmysłowić prostotę składni i moc narzędzia. NSIS ma jeszcze wiele przydatnych funkcji takich jak tworzenie dezinstalatorów, kluczy rejestru, skrótów, kopiowania i usuwania plików itp. Dodatkową zaletą jest to, że nie musimy integrować do wynikowego pliku tych wszystkich programów(choć też jest taka możliwość).
Garść przydatnych linków:
Strona główna NSIS Manual do NSIS po polsku Graficzne środowisko NSIS