Nullsoft Scriptable Install System

Vikipedi, özgür ansiklopedi
Nullsoft Scriptable Install System
Orijinal yazar(lar)Nullsoft
Geliştirici(ler)NSIS Ekibi ve NSIS Topluluğu
İlk yayınlanma31 Temmuz 2000 (23 yıl önce) (2000-07-31)[1]
Güncel sürüm3.08 / 25 Eylül 2021 (23 ay önce) (2021-09-25)
Programlama diliC (programlama dili), C++
İşletim sistemiWindows, Mac OS X
TürYazılım geliştirme araçları
Resmî sitesinsis.sourceforge.io
Kod deposu Bunu Vikiveri'de düzenleyin

Nullsoft Scriptable Install System (NSIS), Winamp'ın yapımcıları Nullsoft tarafından desteklenen Microsoft Windows için komut dosyasıyla çalışan bir kurulum sihirbazı hazırlama aracıdır. NSIS, başta zlib lisansı olmak üzere, özgür yazılım lisanslarının bir kombinasyonu altında yayımlanır.[2] Amazon, Dropbox, Google, Ubisoft, FL Studio, BitTorrent ve McAfee gibi kullanıcılarla, InstallShield gibi ticari tescilli ürünlere yaygın olarak kullanılan bir alternatif haline geldi.[3]

Tarih[değiştir | kaynağı değiştir]

NSIS, Winamp'ı dağıtmak için hazırlandı.[4] Önceki bir Nullsoft ürünü olan PiMP'ye (plugin Mini Packager) dayalıdır ve SuperPiMP olarak da bilinir. 2.0a0 sürümünden sonra proje, Nullsoft dışındaki geliştiricilerin düzenli olarak üzerinde çalışmaya başladığı SourceForge'a taşındı. NSIS 2.0, yaklaşık iki yıl sonra yayınlandı.

NSIS sürüm 1 birçok yönden klasik Windows Installer'a benzer, ancak daha fazla sıkıştırma biçimini destekler. NSIS sürüm 2, yeni bir aerodinamik grafik kullanıcı arabirimine sahiptir ve LZMA sıkıştırmayı, birden çok dili ve kullanımı kolay bir eklenti sistemini destekler.

Ocak 2006'da NSIS, SourceForge'un ayın projesi oldu.[5][6]

Komut dosyası örnekleri[değiştir | kaynağı değiştir]

Hello world![değiştir | kaynağı değiştir]

!include "MUI.nsh"

!insertmacro MUI_LANGUAGE "English"

Name "Hello world!" # Name of the installer.
OutFile "HelloWorld.exe" # Name of the installer's file.

Function .onInit # Function that will be executed on installer's start up.
  MessageBox MB_OK|MB_ICONINFORMATION "Hello world!" # Show a message that says "Hello world!".
  Quit # Close the installer because this is a simple "Hello world!" installer.
FunctionEnd

Section # Useless section because this is a simple "Hello world!" installer.
SectionEnd

Basit yükleyici[değiştir | kaynağı değiştir]

!include "MUI.nsh"

!define MUI_ABORTWARNING # This will warn the user if they exit from the installer.

!insertmacro MUI_PAGE_WELCOME # Welcome to the installer page.
!insertmacro MUI_PAGE_DIRECTORY # In which folder install page.
!insertmacro MUI_PAGE_INSTFILES # Installing page.
!insertmacro MUI_PAGE_FINISH # Finished installation page.

!insertmacro MUI_LANGUAGE "English"

Name "MyApp" # Name of the installer (usually the name of the application to install).
OutFile "MyAppInstaller.exe" # Name of the installer's file.
InstallDir "$PROGRAMFILES\MyApp" # Default installing folder ($PROGRAMFILES is Program Files folder).
ShowInstDetails show # This will always show the installation details.

Section "MyApp" # In this section add your files or your folders.
  # Add your files with "File (Name of the file)", example: "File "$DESKTOP\MyApp.exe"" ($DESKTOP is Desktop folder); or add your folders always with "File (Name of the folder)\*", always add your folders with an asterisk, example: "File /r $DESKTOP\MyApp\*" (this will add its files and (with /r its subfolders)).
SectionEnd

Başlat menüsüne bir kısayol ekleyen ve bir kaldırıcıyla birlikte gelen basit yükleyici[değiştir | kaynağı değiştir]

# define name of installer
OutFile "InstallMyApp"
 
# define installation directory
InstallDir $LOCALAPPDATA\Programs\myapp
 
# For removing Start Menu shortcut in Windows 7
RequestExecutionLevel user
 
# start default section
Section
 
    # set the installation directory as the destination for the following actions
    SetOutPath $INSTDIR
 
    # create the uninstaller
    WriteUninstaller "$INSTDIR\uninstall.exe"
 
    # point the new shortcut at the program uninstaller
    CreateShortcut "$SMPROGRAMS\My App.lnk" "$INSTDIR\myapp.exe"
    CreateShortcut "$SMPROGRAMS\My App Uninstall.lnk" "$INSTDIR\uninstall.exe"

    File /r "C:\path\to\where\my\files\are\*"

SectionEnd
 
# uninstaller section start
Section "uninstall"
 
    # first, delete the uninstaller
    Delete "$INSTDIR\uninstall.exe"
 
    # second, remove the link from the start menu
    Delete "$SMPROGRAMS\My App.lnk"
    Delete "$SMPROGRAMS\My App Uninstall.lnk"
 
    Delete $INSTDIR

# uninstaller section end
SectionEnd

Konseptler[değiştir | kaynağı değiştir]

NSIS 1.98

Kod[değiştir | kaynağı değiştir]

NSIS derleyici programı makensis, aşağıdaki örnek gibi betikleri yürütülebilir yükleme programlarında derler. Komut dosyasındaki her satır tek bir komut içerir.

# Example script
Name "Example1"
OutFile "jubaowu.exe"
InstallDir "$PROGRAMFILES\Example1"
Page Directory
Page InstFiles
Section
  SetOutPath $INSTDIR
  File ..\makensis.exe
SectionEnd

Modern kullanıcı arayüzü[değiştir | kaynağı değiştir]

Sürüm 2.0, Modern UI (MUI) adı verilen yeni bir isteğe bağlı aerodinamik grafik kullanıcı arabirimini tanıttı. MUI, sihirbaz benzeri bir arayüze sahiptir. Bir karşılama sayfası, bitiş sayfası, dil seçimi diyaloğu, bileşenler için açıklama alanı ve eski kullanıcı arabiriminden daha fazla özelleştirme seçeneklerini destekler.

# Modern UI example script
!include MUI.nsh
Name "Example 2"
OutFile "Example2.exe"
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "license.rtf"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "German"
!insertmacro MUI_LANGUAGE "French"
Section "Extract makensis"
  SetOutPath $INSTDIR
  File ..\makensis.exe
SectionEnd

NSIS sürüm 2.30'dan (25 Ağustos 2007'de yayınlandı) beri, bu kullanıcı arayüzünün yeni sürümü (beta) erişilebilir durumdadır: Modern kullanıcı arayüzünün bir geliştirmesi olan Modern kullanıcı arayüzü 2 (MUI2). Eski MUI'den farklı olarak bu sürüm, eski moda InstallOptions .ini dosyaları yerine nsDialogs'u temel alır.

2.34 sürümünden itibaren (24 Aralık 2007'de yayınlandı) bu MUI2 toplu tüketim için hazırdır ve tüm NSIS paketlerine dahildir. Ayrıca tüm örnekler ona çevrilmişti.

Modern UI 2 dokümantasyonu.

Grafik arayüzleri[değiştir | kaynağı değiştir]

NSIS projeleri, yalnızca metin dosyalarını (.nsi uzantılı) düzenleyerek yapılandırılabilir. Ancak, birkaç üçüncü taraf düzenleme yazılımı sağlar:

  • EclipseNSIS, Eclipse platformu için bir modüldür. NSIS betiklerinin düzenlenmesine, derlenmesine ve doğrulanmasına izin verir.
  • Özel C++ veya Delphi eklentilerini destekleyen HM NIS Edit (ücretsiz yazılım) editörü.
  • Venis (ücretsiz yazılım) editörü
  • Visual & Installer, NSIS'i Microsoft Visual Studio IDE ile entegre eden ve NSIS projelerinin doğrudan kendi içinde oluşturulmasına ve oluşturulmasına izin veren bir eklentidir.

Yükleyici arabirimleri[değiştir | kaynağı değiştir]

Modern kullanıcı arayüzünü genişleten veya değiştiren birkaç proje son birkaç yılda başladı. ExperienceUI ve UltraModernUI gibi arabirimler, InstallShield arabirimine benzeyecek şekilde kaplamasını yaparak yükleyicinin stilini tamamen değiştirir. InstallSpiderUI gibi diğer arabirimler, ASD ile aynı işlevsellik düzeyini korurken, görsel açıdan daha minimalist bir yaklaşımı hedefler.

Eklentiler[değiştir | kaynağı değiştir]

NSIS, yükleyici ile iletişim kurabilen eklentilerle genişletilebilir. Eklentiler, dinamik bağlantı kitaplığı (C, C++ veya Delphi gibi) oluşturabilen herhangi bir yönetilmeyen programlama dilinde yazılabilir ve yükleme görevlerini gerçekleştirmek veya yükleyici arabirimini genişletmek için kullanılabilir. Bir eklenti, tek bir NSIS kodu satırıyla çağrılabilir.

NSIS paketiyle birlikte, yükleyicinin bir açılış ekranı görüntülemesine, özel bir sayfa görüntülemesine, arka planda bir resim görüntülemesine, bir web sitesinden dosya indirmesine, matematiksel işlemleri gerçekleştirmesine, yama dosyalarına ve daha fazlasına izin veren çeşitli eklentiler gelir.

ZipDLL ve bir Python eklentisi dahil olmak üzere diğer eklentiler çevrimiçi olarak mevcuttur.

Özellikler[değiştir | kaynağı değiştir]

NSIS aşağıdaki özellikleri destekler:[7]

  • zlib, bzip2 ve LZMA sıkıştırması
  • Komut dosyası tabanlı
  • Çok dilli
  • Eklenti desteği
  • Komut dosyası ön işlemcisi

Oluşturulan kurulum sihirbazı[değiştir | kaynağı değiştir]

Oluşturulan kurulum sihirbazı, kurulum sihirbazı içinde arşivlenen yükleme dosyaları, NSIS yükleyicisi için 34 KB'lik bir ek yük,[7] ve yürütülebilir kodda derlenen yükleme komut dosyası ile bir Portable Executable'dır . Kurulum komut dosyası derlenirken, ikili dosyanın tersine mühendislik işlemi yapılmadan komut dosyası teslim edilen yürütülebilir dosyadan alınamaz.

Arşiv, 7-Zip, Total Commander eklentisi InstallExplorer veya FAR Manager eklentisi InstallExplorer kullanılarak açılabilir.

Arşiv birkaç klasör içerir:

  • $PLUGINSDIR : yükleme rutini eklentileri
  • $INSTDIR : kurulum sırasında kullanılan dosyalar
  • $_OUTDIR : kurulacak dosyalar.

Oluşturulan yükleyici, kullanıcılara daha fazla kontrol sağlamak için komut satırı argümanları içerir:[8]

  • /NCRC, komut dosyası zorlamadıkça CRC denetimini devre dışı bırakır
  • /S, yükleyici/kaldırıcıyı sessizce çalıştırır.
  • /D varsayılan kurulum dizinini ayarlar. Son parametre olmalı ve tırnak içermemelidir. Yalnızca mutlak yollar desteklenir.

Unicode desteği[değiştir | kaynağı değiştir]

NSIS'in 3.0'dan önceki sürümleri Unicode'u desteklemiyordu, ancak yalnızca bazı dosyaları bir eklenti aracılığıyla farklı kodlamalara dönüştürmek için bir araçtı.[9] Ancak, tam Unicode desteğine sahip bir NSIS çeşidi mevcuttur.[10] Bu varyantı kullanan önemli projeler şunlardır:[11]

NSIS'in 3.0 sürümünün piyasaya sürülmesiyle, "Unicode true" derleyici yönergesi kullanılarak Unicode desteği uygulanabilir. Bu, daha fazla kod değişikliği olmaksızın tam Unicode desteği sağlar, ancak yükleyici Windows 95/98/Me altında çalışmaz.[12] 2016 itibarıyla, 3.0 sürümünden önce NSIS, Unicode 2.46.5 Rev 3 ve ANSI 2.51 için PortableApps formatında mevcuttu.[13]

Ayrıca bakınız[değiştir | kaynağı değiştir]

  • Kurulum yazılımı listesi

Kaynakça[değiştir | kaynağı değiştir]

  1. ^ NSIS 1.x Version History 20 Mart 2017 tarihinde Wayback Machine sitesinde arşivlendi. – NSIS wiki
  2. ^ "NSIS licence page". NSIS. 23 Aralık 2005 tarihinde kaynağından arşivlendi. 
  3. ^ "Users – NSIS". 13 Nisan 2004 tarihinde kaynağından arşivlendi. 
  4. ^ Winamp 2.60 released 13 Kasım 2022 tarihinde Wayback Machine sitesinde arşivlendi., From Betanews, 2000-02-14, Tweakers, ...namely featuring a new 'SuperPiMP' installation system...
  5. ^ SourceForge.net Project of the Month in January 2006
  6. ^ "OpenCandy Installer Platform Comparison". 27 Haziran 2011 tarihinde kaynağından arşivlendi. Erişim tarihi: 27 Haziran 2011. 
  7. ^ a b "Features". NSIS. 10 Şubat 2004 tarihinde kaynağından arşivlendi. 
  8. ^ "installerUsage". NSIS. 1 Ekim 2002 tarihinde kaynağından arşivlendi. 
  9. ^ "Unicode plug-in". NSIS. 18 Şubat 2006 tarihinde kaynağından arşivlendi. 
  10. ^ "Unicode NSIS Project Page". 3 Aralık 1998 tarihinde kaynağından arşivlendi. 
  11. ^ "Unicode NSIS Project Users". 16 Temmuz 2011 tarihinde kaynağından arşivlendi. 
  12. ^ "NSIS Users Manual Chapter 1". NSIS. 1 Ekim 2002 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Mayıs 2015. 
  13. ^ "NSIS Portable". PortableApps.com. 19 Mayıs 2016. 17 Temmuz 2009 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Temmuz 2016. 

Dış bağlantılar[değiştir | kaynağı değiştir]