compiler.package.installer(results)
compiler.package.installer(results, Name, Value, ...)
compiler.package.installer(results, 'Options', options)
compiler.package.installer(files, reportFile, 'ApplicationName', name, ...)
compiler.package.installer(files, reportFile, 'Options', options)
Charger le module compiler optionnel avec ncc('--help'). Fournir un objet compiler.build.Results scalaire, ou les fichiers applicatifs et leur rapport buildresult.json. Cette fonction ne retourne pas de valeur. Un objet InstallerOptions passe via Options ne peut pas etre combine a d'autres paires nom-valeur.
La generation Windows requiert Inno Setup 6. L'installation standard de ISCC.exe est detectee ; NELSONC_ISCC permet d'indiquer son chemin complet. Linux produit un fichier executable .install avec Bash 4 ou ulterieur, GNU tar, gzip et les utilitaires GNU usuels. macOS produit un paquet produit .pkg natif avec les outils Apple pkgbuild et productbuild. Les installateurs generes ne requierent pas Nelson sur la cible. La generation n'installe pas l'application.
RuntimeDelivery='installer' inclut le runtime selectionne par les dependances dans l'installateur. Par defaut, l'installation le place pres de l'executable dans un dossier executable.runtime. Le lanceur verifie l'empreinte du moteur avant d'utiliser ce runtime adjacent. Windows et Linux permettent aussi un emplacement partage distinct via -runtimeFolder. RuntimeDelivery='none' installe uniquement les fichiers applicatifs et necessite un runtime compatible installe separement.
RuntimeDelivery='web' est la valeur par defaut documentee, mais elle produit une erreur explicite : le telechargement automatique du runtime n'est pas disponible. Choisir installer ou none. Aucun runtime complet ni telechargement n'est substitue silencieusement.
Les AdditionalFiles de cette fonction sont installes pres de l'application, sans etre embarques dans son executable. L'inclusion de ressources dans l'executable reste une operation AdditionalFiles de construction. Les fichiers applicatifs connus du rapport sont verifies par SHA-256 ; l'executable d'entree doit etre inclus. Les entrees absentes, modifiees ou en conflit sont refusees.
Les installateurs de sortie existants ne sont jamais ecrases. Les entrees sont copiees et verifiees avant compilation. L'installateur final est publie uniquement apres une compilation reussie. Un changement de source pendant la copie provoque une erreur. Les empreintes du rapport n'authentifient pas l'auteur.
Sous Windows, PackageType='zip' place l'executable d'installation dans une archive ZIP. Avec auto, un installateur Windows genere d'au moins 2 Gio est enveloppe en ZIP. Linux et macOS acceptent uniquement auto. Les tres gros installateurs multivolumes ne sont pas encore pris en charge ni valides.
L'installateur Windows permet une installation interactive, les options silencieuses standard d'Inno Setup et les arguments de deploiement non interactif. Commencer par -agreeToLicense yes ou -inputFile FILE. -applicationFolder choisit un dossier absolu ; -destinationFolder est une alternative incompatible avec cette option. -outputFile choisit un nouveau journal ; sinon un fichier unique nelson_installer_*.log est cree dans TEMP. Les journaux existants ne sont jamais ecrases. Le code de sortie de l'installateur enfant est retourne sans modification.
Sous Windows, -inputFile accepte un fichier UTF-8 d'au plus 1 Mio contenant des lignes cle=valeur, des lignes vides et des commentaires #. La marque d'ordre des octets et les fins de ligne CRLF sont acceptees. Aucune expression shell ni variable d'environnement n'est evaluee. Sans accord deja fourni en ligne de commande, la premiere option doit etre agreeToLicense=yes. desktopShortcut=true|false et startMenuShortcut=true|false sont disponibles uniquement dans ce fichier ; leur valeur par defaut est false en deploiement non interactif. Les options inconnues, dupliquees ou mal formees sont refusees avant installation.
/CURRENTUSER selectionne une installation par utilisateur. /ALLUSERS choisit tous les utilisateurs et peut necessiter une elevation ; executer avec elevation pour une installation systeme sans intervention. /PORTABLE=1 desactive l'enregistrement de desinstallation et les raccourcis globaux, tout en conservant un desinstallateur local. Ces trois options natives peuvent accompagner les arguments de deploiement ; les autres options Inno Setup requierent la forme native distincte de ligne de commande. Aucun backend ne modifie le PATH de l'utilisateur ni ne lance l'application automatiquement.
Sous Windows, -runtimeFolder choisit un parent absolu pour le runtime inclus, installe dans un sous-dossier nomme par l'empreinte du moteur. Cette option peut accompagner -applicationFolder ou figurer sous la forme runtimeFolder=chemin-absolu dans un fichier de controle. Elle ne peut pas accompagner -destinationFolder ni /PORTABLE=1 et requiert RuntimeDelivery='installer'. Les racines applicative et partagee ne peuvent pas se chevaucher ; les points de reanalyse sont refuses. La decouverte dans le registre respecte la portee choisie sans modifier le demarrage applicatif.
Le paquet Windows contient un seul installateur de runtime compresse, reutilise pour les emplacements prive et partage ; les fichiers du runtime ne sont pas dupliques. Il reutilise l'union des inventaires, les controles de conflit et la reprise apres interruption de compiler.runtime.customInstaller. Un enregistrement en conflit ou un fichier de runtime modifie est refuse. L'installateur de runtime embarque doit mesurer moins de 2 Gio. Le runtime est installe en premier ; un echec applicatif ulterieur laisse un runtime desinstallable independamment, sans transaction couvrant les deux installations.
La desinstallation applicative Windows retire aussi son runtime prive, mais jamais son runtime partage. Le runtime partage possede son propre unins*.exe ; le retirer seulement lorsqu'aucune application n'en depend. La propriete est enregistree dans .nelson-install/application.ini. Des metadonnees absentes ou endommagees bloquent la suppression ; conserver ce dossier. Un changement prive/partage, d'identite du moteur ou la mise a niveau d'une ancienne installation sans ces metadonnees requiert d'abord sa desinstallation explicite. Un runtime enregistre ne peut pas devenir prive. Les noms reserves a l'installateur sont refuses dans AdditionalFiles.
Le lanceur d'installation Windows contient une seule copie de l'installateur compile, verifie son empreinte SHA-256 pendant l'extraction dans un dossier temporaire prive et supprime l'executable extrait a sa fermeture. Il ne requiert ni Nelson ni un runtime C installe separement. Il n'est pas inclus dans les executables applicatifs ni dans leur runtime minimal. Les empreintes n'authentifient pas l'editeur.
Sous Windows, InstallerIcon, InstallerLogo et AddRemoveProgramsIcon personnalisent l'installateur natif sans changer l'executable applicatif ni les dependances du runtime. Les images sont converties pendant le packaging. Ces options d'image ne sont pas utilisees par les backends Linux et macOS. Le telechargement automatique et la signature restent des travaux distincts.
Lancer l'installateur Linux avec -agreeToLicense yes en premier. -applicationFolder choisit une destination absolue ; -destinationFolder est une alternative incompatible avec cette option. Le dossier parent doit exister et etre accessible en ecriture. Aucune elevation n'est demandee. -outputFile choisit un nouveau fichier journal. -inputFile accepte un fichier UTF-8 d'au plus 1 Mio avec des lignes cle=valeur, des lignes vides et des commentaires #, sans evaluation par le shell. Utilise seul, son premier parametre doit etre agreeToLicense=yes. Les parametres inconnus et les destinations ou journaux dupliques sont refuses. Une marque UTF-8 initiale et des fins de ligne CRLF sont acceptees ; les octets NUL sont refuses.
Sous Linux, -runtimeFolder choisit un dossier parent absolu pour le runtime partage inclus. Cette option peut accompagner -applicationFolder, mais pas -destinationFolder. Le runtime est installe dans un sous-dossier nomme par l'empreinte du moteur, et non pres de l'executable. Cela requiert RuntimeDelivery='installer' et un lanceur dont la version de decouverte des runtimes est au moins 3. Reconstruire les applications plus anciennes pour l'activer. Les deux racines installees ne peuvent pas se chevaucher ; les chemins du runtime partage refusent les liens symboliques et les composants point ou double point.
Le runtime partage utilise le meme installateur natif, inventaire cumulatif de dependances et enregistrement que compiler.runtime.customInstaller. Un utilisateur ordinaire enregistre sous XDG_CONFIG_HOME (ou HOME/.config) ; root utilise /etc/xdg. Aucun changement de PATH n'est necessaire. Le desinstallateur applicatif conserve ce runtime. Son desinstallateur independant est empreinte/.nelson-runtime/uninstall sous le dossier runtime choisi. Le retirer seulement lorsqu'aucune application n'en a besoin.
Relancer une installation partagee verifie l'application et verifie ou reprend aussi l'installation du runtime. Changer de mode prive/partage demande d'abord une desinstallation applicative explicite. Un enregistrement en conflit ou un fichier distribue du runtime modifie est refuse. Le runtime partage est installe avant la publication de l'application ; si cette publication echoue ensuite, le runtime valide reste disponible aux autres applications. Aucune transaction ne couvre les deux installations ensemble.
L'installation Linux verifie l'archive et le manifeste dans un dossier temporaire prive avant de publier la destination. Une destination existante inconnue est refusee. Relancer le meme installateur verifie les fichiers distribues inchanges et conserve les donnees utilisateur. Installer une autre version ou reparer des fichiers distribues modifies requiert d'abord une desinstallation explicite. Il ne s'agit pas d'un protocole de mise a niveau ou de reprise apres interruption. Les empreintes detectent les modifications mais ne sont pas des signatures.
Sous Linux, Shortcut cree un lien symbolique relatif nomme Launch ApplicationName dans le dossier installe, sans modifier le bureau ni les menus systeme. Executer .nelson-install/uninstall.sh pour retirer les fichiers distribues inchanges. Les fichiers modifies, liens remplaces, journaux applicatifs et fichiers ajoutes par l'utilisateur sont conserves. Le manifeste et le desinstallateur restent disponibles si des fichiers distribues modifies subsistent. Le dossier de metadonnees reserve .nelson-install ne doit pas figurer dans les entrees.
Les installateurs Linux sont reproductibles avec les memes octets et attributs executables d'entree, binaires, options et versions d'outils. Les dates distribuees sont fixees au 2000-01-01 UTC et les proprietaires normalises, sans modifier les sources. Les fichiers installes utilisent les permissions 644 ou 755, les dossiers 755 et les metadonnees privees 700/600. Les executables et bibliotheques executables conservent leurs bits d'execution.
L'installateur compare le contrat du lanceur natif au rapport avant compilation. Un contrat absent, non pris en charge ou incoherent est refuse ; reconstruire l'application avec les lanceurs natifs actuels plutot que modifier son rapport. Cette verification evite de melanger des artefacts de deploiement incompatibles, sans authentifier leur auteur.
Une construction avec EmbedArchive=false requiert aussi l'archive .nca adjacente, deja presente dans Results.Files. Ne pas l'omettre dans la forme acceptant une liste de fichiers. L'installateur verifie la taille et l'empreinte de l'archive contre le contrat de l'executable prepare, y compris si un rapport a ete modifie.
Les installateurs EXE et ZIP non signes sont reproductibles avec la meme plateforme Windows, la meme distribution Inno Setup, les memes octets et attributs d'entree, binaires du runtime, options et nom de sortie. Deplacer les sources ou changer leur date de modification ne change pas la sortie. Les fichiers prepares pour l'installation recoivent la date fixe 1980-01-01 00:00:00 UTC ; les octets et dates de modification des sources sont preserves. Cette garantie ne couvre pas des outillages differents ni les sorties signees.
Les installateurs d'application et de runtime partage gerent les fichiers distribues imbriques au-dela de la limite Windows traditionnelle de 260 caracteres. La racine choisie avec /DIR doit toujours respecter la validation des repertoires d'Inno Setup.
Sous macOS, une construction graphique est installee sous forme ApplicationName.app ; un nom affiche non ASCII est conserve dans Info.plist, tandis que le dossier du bundle utilise si necessaire un nom sur derive de l'executable. Une construction console reste un executable ordinaire. RuntimeDelivery='installer' ajoute un dossier executable.runtime adjacent. RuntimeDelivery='none' requiert un runtime compatible decouvert par le lanceur.
Le runtime macOS conserve la structure des frameworks et les plugins Qt requis, y compris le moteur d'icones SVG de la barre d'outils. Les references de dylib non systeme et les rpaths deviennent relocalisables, puis les binaires locaux modifies recoivent une signature ad hoc. Il ne s'agit pas d'une signature Developer ID. Le .pkg reste non signe sans etape de distribution ulterieure ; notarisation et validation Gatekeeper requierent des identifiants Apple et les services reseau adaptes.
Utiliser l'application Installer de macOS pour une installation normale, ou /usr/sbin/installer avec une cible appropriee. Une reinstallation verifie le manifeste, refuse les fichiers possedes modifies et les collisions avec les donnees utilisateur, puis retire les anciens fichiers possedes inchanges. Executer .nelson-install/uninstall dans le dossier installe pour retirer les fichiers possedes inchanges. Les fichiers modifies et crees par l'utilisateur sont conserves. Le paquet ne modifie pas PATH.
| Version | Description |
|---|