Equivalenti a '.msi' e ai file 'setup.exe' in Debian o Ubuntu?


15

Questa risposta spiega .msie setup.exefile per l'installazione di un'applicazione su Windows.

Ci sono equivalenti a .msie per setup.exei file in Debian o Ubuntu? I .debfile dei pacchetti corrispondono .msio setup.exeo qualcos'altro?


8
Non so perché lo stai chiedendo, quindi lo dirò come un commento generale per chiunque si trovi di fronte a questa domanda. Mentre ci sono modi per installare il software "manualmente", il modo preferito dalla maggior parte delle distribuzioni Linux (e fortemente raccomandato) è quello di installare il software attraverso il gestore dei pacchetti. In questo modo ricevi automaticamente gli aggiornamenti di sicurezza e vengono eseguiti alcuni test per garantire la compatibilità con la distribuzione. Se hai bisogno della versione più recente e più grande del software non disponibile nei repository principali, usa un repository comunità (ad esempio un PPA in Ubuntu), ma usa sempre il gestore pacchetti.
Muzer,

Non ci sono .setupfile su Windows, vuoi dire setup.exequal è il nome tipico di un programma di installazione?
gronostaj,

Vedi la apt-getpagina man e i documenti collegati da lì. Non esiste un equivalente su Windows nemmeno apt-get install, figuriamoci essenzialmente su tutte le altre cose che può fare.
jillill

5
@jthill, non è vero. Non è così completo o popolare come apt-get, ma le versioni recenti (Win7 e successive) di Powershell hanno OneGetattraverso il quale è possibile installare Chocolatey(un equivalente a Homebrewsu Mac). Potrebbero essere meno popolari dei loro 'nix equivalenti, ma dire che non esiste un equivalente su Windows è palesemente errato.
flith,

1
@Tim: a questa domanda non è possibile rispondere in modo sensato senza che tu specifichi esattamente cosa intendi con "equivalente". Quali proprietà specifiche di .msifile e programmi di installazione ti interessano? Quali sono i criteri precisi per determinare se qualcosa è "equivalente" o no? Ad esempio: i programmi di installazione sono solo programmi come qualsiasi altro programma. Non c'è assolutamente nulla di speciale in un programma chiamato setup.exe. Dal momento che setup.exeè solo un programma come qualsiasi altro programma, e Debian certamente ha un concetto di "programma", fai che considera equivalente? In caso contrario, perché no?
Jörg W Mittag,

Risposte:


28

Probabilmente più vicino a un programma di installazione MSI che a setup.exe, un .debpacchetto include un albero di file da copiare nel file system, nonché una raccolta di hook pre e post installazione da eseguire (tra le altre cose). Gli hook possono effettivamente fare qualsiasi cosa sul sistema, incluso qualcosa che non credo di aver mai visto su Windows: aggiungere utenti per un servizio di sistema. Una cosa che non possono fare è installare un altro .debpacchetto: il database è bloccato durante l'installazione, quindi questo può essere ottenuto solo attraverso dipendenze. L'installazione di un .debpacchetto produce quindi voci in un database centrale di pacchetti installati per facilità di manutenzione.

Il ttf-mscorefontspacchetto è interessante in quanto il pacchetto stesso contiene solo uno script per scaricare e installare i caratteri. Questo script viene eseguito in uno di questi hook.

Più vicino setup.exepotrebbe essere il download del codice sorgente di un programma dalla homepage del progetto, quindi in esecuzione ./configure && make && sudo make installo qualunque altro metodo che gli autori abbiano deciso di utilizzare. Poiché questo metodo non aggiunge il pacchetto al database dei programmi installati, rimuoverlo in seguito può essere molto più difficile.

Un'altra differenza è che a .debspecifica le sue dipendenze, quindi è possibile garantire un'installazione corretta. Per quanto ne so, nel mondo Windows un MSI non può causare l'installazione di un altro MSI, quindi setup.exeviene generalmente utilizzato per questo tipo di tracciamento delle dipendenze. Numerosi commenti rilevano che gli MSI possono nominare le dipendenze, ma poiché non esiste un database centrale di MSI come esiste per i .debpacchetti, la mancanza di una dipendenza causerà semplicemente un errore di installazione.

Pertanto, a .debè una specie di tra un programma di installazione MSI e a setup.exe. Il pacchetto può fare quello che vuole durante i suoi hook pre e post installazione, può nominare e di solito trovare le proprie dipendenze e lasciare un registro della sua installazione in una posizione centrale per facilitare la manutenzione.


2
In Windows, i programmi di setup.exeinstallazione in stile si integrano anche nel sistema di installazione tracciato (con programmi di disinstallazione, ecc.). Sia con MSI che con i programmi di .exeinstallazione, le dipendenze vengono gestite incorporando la dipendenza nel programma di installazione ( ad esempio il programma di installazione ridistribuibile VC o il programma di installazione DirectX) e installando le DLL di dipendenza accanto all'eseguibile (o come assembly di sistema). Quindi setup.exeè anche simile a .deb. L'equivalente a costruire da sorgente si sta costruendo anche da sorgente su Windows ;-).
Stephen Kitt,

Non faccio nulla che renda gli MSI più vicini ai pacchetti Debian degli eseguibili di installazione: un MSI non può installare un altro MSI, proprio come un pacchetto Debian non può installare un altro pacchetto (tranne attraverso le sue dipendenze).
Stephen Kitt,

@StephenKitt: i programmi di setup.exeinstallazione in stile non sono in alcun modo "tracciati" dal sistema operativo a meno che non eseguano MSI al di sotto (e quindi gli MSI sono quelli tracciati). Il fatto che abbiano una chiave di registro di disinstallazione non ha alcuna influenza su questo. È come dire che ogni file viene tracciato perché è elencato nel file system.
user541686

2
MSI può e spesso (nei prodotti più grandi) avere dipendenze, tuttavia, dato che non esiste un repository centrale di .MSI, di solito ciò che accade quando si perde una dipendenza è che si rifiutano di installare.
Matteo Italia,

1
"qualcosa che non credo di aver mai visto su Windows: aggiungere utenti per un servizio di sistema". Sono abbastanza certo che lo facciano i programmi di installazione di SQL Server, IIS e Visual Studio. Ma potrebbe essere meno ovvio in quanto il modello degli utenti di Windows è un po 'più raffinato rispetto al modello Unix / Linux predefinito (o sei root o non lo sei) ..
MSalters

15

I programmi di installazione binari a file singolo che ho visto su Linux erano .shfile che contenevano uno script di shell concatenato con un BLOB binario, come questo:

#!/bin/bash
tmpdir=$(mktemp -d /tmp/installer.XXX)
tail -n +6 "$0" | tar -xJf - -C "$tmpdir" || exit 1
sudo "$tmpdir/setup.sh"
rm -rf "$tmpdir"
exit
[binary content follows]

Questo è essenzialmente equivalente a un setup.exeche si estrae automaticamente in una cartella temporanea e da lì esegue il vero programma di installazione.


6

Tratto da: /ubuntu/13415/what-are-run-files/13416#13416

Un file .run è normalmente un programma personalizzato che deve essere eseguito per installare un programma. questi non sono supportati generalmente poiché non tengono traccia della posizione dei file e normalmente non forniscono un metodo di disinstallazione. non c'è modo di essere sicuri di ciò che lo script farà al tuo sistema, quindi sono considerati non sicuri.

Sono vicini al file exe di Windows e come tali presentano gli stessi problemi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.