Mi sono posto spesso questa domanda, e altri, e vorrei affrontare un punto che vedo spesso sollevato prima di arrivare al motivo per cui Linux vede meno installatori:
Le distribuzioni Linux forniscono gestori di pacchetti.
Tuttavia, non direi che il gestore di pacchetti di una distribuzione Linux sia un sostituto di un programma di installazione per, in parte, i seguenti motivi:
Questi gestori di pacchetti non sono standardizzati durante il funzionamento
Un gestore di pacchetti è un po 'come fornire il proprio file binario e consentire all'utente finale di scegliere il programma di installazione. Possono scegliere il terminale o scegliere uno strumento con una GUI più avanzata, ma non offre lo stesso livello di controllo del processo di una procedura guidata di installazione "tradizionale".
Un esempio di cosa intendo per controllo è la documentazione. Non puoi dare istruzioni all'utente finale come "Fai clic su Avanti e dovresti vedere". Puoi dare istruzioni da riga di comando per uno strumento specifico, ma poi non solo fai affidamento sul fatto che l'utente ha quello strumento, ma perdi anche la maggior parte dei vantaggi di una procedura guidata di installazione (dopo tutto, la maggior parte dei maghi stanno fornendo un fronte -end per semplici istruzioni da riga di comando e avvio di script).
Questo si lega anche all'estetica. Ora dipendi dalla distribuzione degli utenti finali per fornire un'interfaccia intuitiva / appropriata. Sebbene tu sia pienamente consapevole di questo fatto, non è irragionevole lamentarsi per un utente più occasionale se il doppio clic sul tuo file (programma di installazione nella loro vista) apre un brutto gestore di pacchetti, non fa nulla o , peggio ancora, apre un terminale finestra. (Le esperienze che ho avuto con gli utenti e la loro avversione per "dos prompt" / "scatola in bianco e nero" / "Cosa che eliminerà tutti i loro file se lo vedono divertente" potrebbe probabilmente riempire un libro)
I formati dei pacchetti non sono standardizzati su tutte le piattaforme.
Esistono strumenti per la conversione tra sistemi come rpm
e deb
, ma non è ragionevole aspettarsi che l'utente finale converta i tuoi pacchetti se li stai usando in una situazione in cui una procedura guidata di installazione verrebbe fornita su un'altra piattaforma (es. Click-and-done ). Fornire pacchetti aggiornati per un formato di pacchetto aggiuntivo può essere piuttosto semplice se si dispone di un sistema di compilazione rudimentale, ma si sta ancora aggiungendo un nuovo binario che deve essere supportato.
Questo sta anche aggiungendo un nuovo binario che le persone devono scegliere a seconda della loro piattaforma (sembra minore, ma sono sicuro che qualcuno qui può attestare di dover spiegare x86 vs x64 prima [sì, ci sono modi per dedurre la piattaforma giusta dal browser, ma poi stai entrando in procedure ancora più complicate e difficili da supportare])
I gestori di pacchetti sono "più gentili" con i software open source.
Questo non vuol dire che non è possibile condividere software a sorgente chiuso con un sistema di gestione dei pacchetti, ma può sicuramente essere fatto. Ma una volta che provi a condividere il software close-source su distribuzioni Linux, ti imbatti in un muro per quanto riguarda le opzioni per portare il tuo software in repository comuni. Cose come PPA o openSUSE Build Service sono fuori uso e persino i repository dei partner Canonical non sono abilitati per impostazione predefinita.
Ciò significa che, se non si fornisce il proprio repository, non è possibile utilizzare molte delle principali funzionalità dei sistemi di gestione dei pacchetti, inclusi gli aggiornamenti automatici. A mio avviso , questo è il vantaggio più importante per la maggior parte delle piattaforme che utilizzano questi sistemi (ad es. IOS, Android e Windows Store).
E anche se fornisci un repository (un altro lavoro di banalità variabile), devi comunque convincere gli utenti a configurarlo (che è un altro livello di supporto, un altro set di approcci non standard e un altro diversivo dal punto originale del installatore)
Ora, detto questo, non ho ancora affrontato il problema originale, perché gli installatori sono meno comuni su Linux nonostante questi fattori (tra gli altri). La domanda originale chiede se è tecnica o basata su una convenzione ed è basata su entrambi in parte.
Se guardi ai fattori sopra menzionati, rendono anche le cose più complesse per un installatore "simile a un mago". Ad esempio, la procedura guidata includerebbe più formati di pacchetto da installare? Come gestite l'aspetto delle diverse distribuzioni? L'elenco potrebbe continuare, e una cosa che questi pacchetti ti possono offrire è che nulla di tutto questo sarà la tua preoccupazione (nel bene e nel male ) finché fornirai i pacchetti giusti. E a seconda della natura del tuo progetto, puoi iniziare a sfruttare quelle risorse più "specializzate", come l'invio di app al Ubuntu Software Center. Tutto ciò riguarderebbe la parte tecnica.
Ma l'aspetto che personalmente trovo essere la forza trainante è la convenzione. (Spero di aver seppellito così in profondità che le persone che hanno votato a fondo sull'altra risposta all'oblio hanno smesso di leggere ..)
Sento che quel poster aveva un punto, ma avrebbe potuto dirlo troppo bruscamente e in realtà non ha fornito ragioni oggettive per quel punto. Se si esaminano le differenze che ho affermato per un gestore di pacchetti e un installatore, non sarei sorpreso se la maggior parte di loro fosse quasi un problema (forse anche al limite del pedante). Ma (scusa quello che spero sia visto come un uso legittimo di un argomento ad hominem) siamo anche utenti sul sito per programmatori. Vedo le distribuzioni Linux spinte come un'ottima alternativa a Windows per utenti occasionali (tra le altre cose ovviamente). Non fornire una procedura click-and-done comunemente definita che tutti questi utenti possono utilizzare non è davvero l'ideale imo .
Ma allo stesso tempo, non trovo che molte cose in Linux siano particolarmente ideali per quel gruppo. Sicuramente alcune distro hanno gestori di pacchetti basati su GUI, ma ciò significa che queste persone devono iniziare a cercare come utilizzare uno strumento separato, su ciò che non è strettamente focalizzato sull'installazione del tuo programma (confronta questo e questo con questo ).
Ovviamente puoi usare la GUI per fare la maggior parte dei tuoi utenti casuali medi, soprattutto con certe distro (ironicamente le cose che fanno quelle distro non sono sempre accettate nella comunità open source [guarda i reclami su Ubuntu ed è "walled" garden "]) Ma non credo sia negabile che le convenzioni di Linux favoriscano qualcuno che sia a proprio agio con una CLI, o per lo meno non mortalmente impaurito dal suo aspetto significa che hanno fatto qualcosa di orribilmente sbagliato.
Non sto dicendo che questo è ciò a cui mirano, ma è proprio quello che vedo fare quelle convenzioni. E i sistemi di gestione dei pacchetti in Linux sembrano seguirlo. Dopotutto, la maggior parte dei loro "lati negativi" è quasi inesistente se l'utente finale è più a suo agio con i concetti sottostanti.
Gli installatori sulla maggior parte delle altre piattaforme non ne sono davvero interessati, e sono progettati in modo tale da citare un commento sulla domanda: "Il 99,99% degli utenti [può] fare clic ciecamente su" Continua ". Il problema con la gestione dei pacchetti sta spingendo quegli utenti a un pulsante "Continua", che consente loro di sapere qual è il pulsante "Continua" (ho visto gli utenti farsi inciampare da strumenti che dicevano premere Invio con altro testo) e far loro sapere quando hanno colpito quella "costa facendo clic il pulsante "Continua".