Domanda

Sono solo un programmatore hobbista più o meno e sono cresciuto in termini di programmazione nel mondo .NET ClickOnce.

Quando uno " installa " un programma, cosa succede realmente ?!

Inoltre: alcune piccole app / strumenti vengono eseguiti dall'exe. Perché la maggior parte dei programmi richiede un processo di installazione sofisticato? Quali sono i vantaggi, gli svantaggi, i pro e gli amp; contro? L'installazione di solito è necessaria o più simile alla pratica standard?

Scuse per le domande extra. Spero solo in una spiegazione più o meno semplice di un laico inglese sui fattori chiave.

È stato utile?

Soluzione

Stai davvero esaminando molte ragioni legacy, tutte legate a ciò che è diventato una pratica standard nel mondo Windows.

Innanzitutto, un po 'di contrasto, perché non è sempre così. Un'applicazione "quotata" in Mac OS X è semplicemente una directory con una certa struttura al suo interno, denominata con un'estensione .app . L'installazione di un'applicazione è semplice come trascinarla (solo l'icona dell'app) nella cartella Applicazioni e la disinstallazione comporta il trascinamento nel cestino. Questo è tutto, nessun installatore di fantasia è (di solito) necessario.

Su Windows, le applicazioni sono in genere costruite da componenti indipendenti che devono essere "registrati". Ciò comporta che il programma di installazione scriva alcune parti nel registro di Windows, per dire a Windows dove trovare i componenti. Sì, l'applicazione probabilmente dovrebbe sapere dove trovarli (poiché sono tutti installati nello stesso posto), ma anni di eredità e modi diversi di collegare i componenti ci hanno portato dove siamo oggi.

In genere, un programma di installazione su Windows:

  • copia i file
  • registra i componenti
  • imposta le autorizzazioni di sicurezza (se appropriato)
  • aggiunge icone al menu Start e / o desktop
  • scrive più elementi nel registro per indicare a Windows di aggiungere il programma a " Aggiungi e rimuovi programmi "

Altri suggerimenti

Il programma tenta di modificare il computer in modo che funzioni e tutti i prodotti concorrenti falliscono. Su Windows, ciò significa:

  • Modifica delle chiavi arbitrarie nel registro fino a quando non diventa lenta e piena di voci rotte
  • Sostituzione delle DLL con la singola versione antica utilizzabile dal software
  • Diffondere il maggior numero di file in più posti possibili
  • Creazione di uno script di disinstallazione per mantenere l'illusione che l'utente possa sbarazzarsi del software senza reinstallare il sistema operativo. Nel caso improbabile che l'utente tenti di eseguire questo script, puoi educarlo a non farlo mai più con domande come " Il file .... potrebbe essere utilizzato da altre applicazioni. Vuoi davvero cancellarlo? Sì / No / Forse / Qualsiasi risposta / Tutte le risposte sono corrette "
  • Installazione di ganci in luoghi oscuri in modo che il software funzioni all'avvio del computer. Ciò potrebbe rallentare il processo di avvio, ma il tuo software si avvierà in un attimo, quindi è un piccolo prezzo da pagare ... per te.
  • Fare cose oscure che richiedono molto tempo ma nessuno può dire cosa fai (cosa fa l'installazione di " sta preparando l'installazione " per 15 minuti?)
  • Verifica della presenza di spazio su disco sufficiente ma utilizza numeri interi a 32 bit per assicurarsi che non possa essere installato su dischi da 1 TB.
  • Un'attività importante è fallire con l'installazione e stampare l'errore: " Installazione fallita. Ciò potrebbe essere dovuto al fatto che è installato un software antivirus. Disattivalo e riprova. & Quot; Ciò assicurerà che gli utenti inizieranno a non diffidare del proprio antivirus (soprattutto quando l'installazione ha esito positivo durante la seconda esecuzione poiché non sono stati attivati ??i bug oscuri nel programma di installazione) e molti dimenticheranno di abilitare nuovamente lo scanner antivirus o anche disinstallare la dannata cosa.

    Anche gli autori di virus in tutto il mondo sono persone! Lo spam compensa la maggior parte del traffico su Internet, il che deve significare che è importante e chi non vorrebbe far parte della più grande comunità sulla terra? Inoltre, puoi guadagnare molto in questo modo. Tutto ciò di cui hai bisogno è una coscienza debole e / o un po 'di energia criminale.

  • Una parte molto importante dell'installer è aumentare la chiave di registro HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Installer \ UserData \ S-7-9-23-64738-1349283462-3754093625- 4491 \ IsYourWindowWideEnough \ NotGivenUpYetHuh \ GoAway \ ImportantSystemInformation \ Vediamo come gestire gli spazi \ DamnIGottaStopSincePathsCanHaveOnl \ ReinstalCtr

    Questo importante contatore del sistema contribuirà a creare l'illusione dell'instabilità per l'utente fino a quando non sentirà il forte bisogno di reinstallare l'intero sistema. Ciò aiuterà l'industria IT professionale a vendere ore di supporto, vendere nuovi computer, più RAM, dischi rigidi più grandi o nuove versioni di Windows (devono devono essere migliori, giusto?).

Nota: se prendi sul serio questo testo, cerca un aiuto professionale.

I motivi per utilizzare un "quotazione" " processo di installazione

  1. per registrare il processo di installazione in modo che possa essere riprodotto (riparazione) o annullato (disinstalla)
  2. per eseguire azioni oltre la semplice copia di file (creare chiavi di registro, registrare componenti, eseguire altre azioni arbitrarie

Lo "standard" l'opzione sulla maggior parte delle installazioni sarà " tutti i bit normalmente desiderati, in una posizione standard, come Programmi " installare senza personalizzazione, possibilmente senza alcune funzionalità di livello esperto abilitate.

Wikipedia ci dice che un tipico installatore crea o modifica quanto segue:

  • File di programma condivisi e non condivisi
  • Cartelle / directory
  • Voci del registro di Windows (solo Windows)
  • Voci del file di configurazione
  • Variabili d'ambiente
  • Collegamenti o scorciatoie

Quindi, se il tuo programma necessita di una o più di queste modifiche, dovresti creare un programma di installazione che faccia quel lavoro.

Dipende dal programma che si sta installando. Un'installazione " può variare dalla semplice copia dell'eseguibile (relativamente piccolo) in una directory, alla configurazione di librerie condivise, al controllo del patchlevel (sono progettato per funzionare su SP2 o versione successiva - ho SP2 o versione successiva?) e alla modifica della configurazione del sistema, per l'utente corrente o per tutti gli utenti. La maggior parte di essi registra anche l'installazione con un gestore di pacchetti in modo da poterlo disinstallare facilmente in un secondo momento.

Un installatore ostacola il processo di distribuzione di parti complesse di infrastruttura software , che di solito è contenuto in un archivio, attraverso una comoda interfaccia utente autosufficiente .

Questa interfaccia utente può essere grafica o basata sul testo che viene emesso su una riga di comando come la shell unix (ad esempio bash). Nel caso degli installatori grafici, il più delle volte viene utilizzato un cosiddetto install-bootstrapper, in quest'ultimo caso, script di installazione che possono essere script bash, script batch Microsoft o qualsiasi altro linguaggio di script eseguito su una riga comandi.

Nel caso più semplice un'applicazione è semplicemente un file eseguibile, con il sistema operativo che sa cosa fare del file per eseguirlo. Il file dell'applicazione può risiedere in una cartella con sottocartelle e altri file ausiliari, impacchettati in un archivio . In questo caso potrebbe non essere necessario alcun programma di installazione.

Per software complessi , potrebbero essere desiderabili intere piattaforme software e stretta integrazione con l'infrastruttura del sistema operativo sottostante , ad esempio per far rispettare il copyright di un prodotto software.

Molti programmi di installazione su Windows forniscono un flag / e o / extract . per esempio. setup.exe / e per consentire l'estrazione dei contenuti dell'archivio senza che il programma di installazione esegua lo script di installazione. Di recente ho dovuto fare solo che .

Spostamenti nella mentalità

Gli installatori sono quasi diventati una norma per la fornitura di software professionale, non importa quanto siano semplici le risorse software sottostanti. Con un numero crescente di utenti esperti di computer e il desiderio di migrare le proprie applicazioni da un desktop all'altro, il software portatile , spesso distribuito in un semplice archivio, sta diventando sempre più popolare.

(Non so quanto tempo in totale ho speso per gli installatori, ma è decisamente nell'ordine dei giorni.)

Le attività che il programma di installazione può gestire sono:

  • decompressione (spesso utilizzando archivi esotici ad alta compressione)
  • garantendo i requisiti hardware di sistema
  • garantendo sufficiente spazio sul disco rigido
  • garantire i requisiti di runtime della piattaforma software (ad esempio "ridistribuibili")
  • verifica aggiornamenti software più recenti
  • scaricare il software da un repository remoto
  • creazione e / o aggiornamento di file e cartelle di programma
  • crea file di configurazione, voci di registro o variabili d'ambiente
  • installa driver software, monta o smonta dispositivi
  • aumentare l'accessibilità per gli utenti di tutti i giorni, spiegando i passaggi dell'installazione, creando collegamenti, collegamenti
  • promuovere il proprio software attraverso i segnalibri, ecc ...
  • creare un incentivo per l'utente di avviare effettivamente il software, presentando i punti chiave del software durante l'installazione, slide by slide
  • creare entrate aggiuntive, attraverso il raggruppamento di software
  • configura i moduli del kernel e esegue automaticamente i componenti (ad es. demoni, servizi di Windows)
  • patching automatico del software
  • impostazione delle autorizzazioni di cartella, file e utente
  • creazione di riferimenti UUID per accoppiare il software a un'istanza di installazione e impedire la portabilità

PS: se riesci a pensare ad altri punti, fammi sapere e li incorporerò.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top