Qual è la differenza tra la creazione di file .deb e l'installazione e l'esecuzione di un file .run ?
Qual è la differenza tra la creazione di file .deb e l'installazione e l'esecuzione di un file .run ?
Risposte:
.deb
i file sono pacchetti per dpkg , il gestore di pacchetti Debian di basso livello (che è invocato da APT e dai suoi parenti). Un .deb
file è un pacchetto per Debian o per un derivato come Ubuntu o Mint.
I pacchetti Debian contengono i file che appartengono al pacchetto, nonché un "file di controllo" che descrive le dipendenze del pacchetto e altre meta-informazioni e gli script di installazione che vengono eseguiti quando il pacchetto viene installato, aggiornato o disinstallato.
Puoi guardare il contenuto di un .deb
file con dpkg -c
e dpkg -I
. Se non lo hai dpkg
, puoi usare ar t foo.deb
per elencare le parti di un .deb
file ed ar x foo.deb control.tar.gz
estrarre la control.tar.gz
parte (e similmente per altre parti).
Red Hat (e parenti come CentOS e Fedora), SuSE e altri usano rpm , un formato diverso con caratteristiche simili. Ce ne sono altri su altri sistemi unix.
.run
non è un'estensione standard. Un .run
file è presumibilmente qualcosa che puoi eseguire. Potrebbe installare un programma o fare qualcosa di completamente diverso.
In generale un file .deb è simile a un file zip, che contiene file con brevi script che possono essere eseguiti dopo l'installazione per aggiungere utenti, gruppi, ecc. Al sistema dopo l'installazione.
Un file .run è in genere un singolo eseguibile binario o uno script shell che contiene un BLOB binario che può essere installato. Se si tratta della varietà di script shell, spesso conterrà un BLOB binario che è spesso sinonimo di un file zip ricorsivo o di un file tar. In altre parole conterrà le strutture di directory dei file.
Altre volte questo tipo di file .run conterrà semplicemente file .deb o .rpm che verranno scaricati sul disco e che potranno essere installati singolarmente o lo script che li conteneva li scaricherà sul disco e quindi tenterà per installarli utilizzando il software di gestione dei pacchetti del sistema.
Un esempio di questo potrebbe essere se si scarica Java JDK da Oracle. E 'in genere un singolo file eseguibile che una volta eseguito il dump dei file .deb o .rpm su disco, e quindi installare utilizzando the package management tools: dpkg
, apt
, yum
, o rpm
.
Ecco un esempio di come sarebbe il download / installazione con uno di questi file .run. L'estensione è .bin, ma è semplicemente cosmetica, l'estensione non ha alcuna rilevanza se non quella di aiutare gli utenti a distinguere tra i diversi tipi di file.
$ wget http://www.java.net/download/jdk7/archive/b125/binaries/jdk-7-ea-bin-b125-linux-x64-13_jan_2011.bin
$ ./jdk-7-ea-bin-b125-linux-x64-13_jan_2011.bin
Qui il file sopra scaricherà i pacchetti per i vari componenti che compongono il JDK, dopo di che puoi installarli tutti o solo quelli di cui hai bisogno.
Farlo in questo modo consente di eseguire ulteriori operazioni oltre alla semplice installazione di un pacchetto. Ad esempio, Oracle ha un contratto di licenza che desidera che tu accetti:
10.5 Il presente Accordo è l'intero accordo delle parti relativo all'oggetto. Sostituisce tutte le comunicazioni, proposte, condizioni, dichiarazioni e garanzie precedenti o contemporanee, orali o scritte, e prevale su qualsiasi conflitto o aggiunta di citazioni, ordini, riconoscimenti o altre comunicazioni tra le parti relative all'oggetto, incluso qualsiasi Licenze di codice, termini supplementari o altre licenze contenute nel software concesso in licenza. Nessuna modifica al presente Accordo sarà vincolante, a meno che per iscritto e firmato da un rappresentante autorizzato di ciascuna parte.
Accetti le condizioni di licenza sopra indicate? [si o no]
Con questo programma di installazione sopra puoi vedere che contiene solo un BLOB binario di directory di file:
Extracting...
UnZipSFX 5.52 of 28 February 2005, by Info-ZIP (http://www.info-zip.org).
creating: jdk1.7.0/
creating: jdk1.7.0/lib/
inflating: jdk1.7.0/lib/jexec
creating: jdk1.7.0/lib/visualvm/
creating: jdk1.7.0/lib/visualvm/visualvm/
creating: jdk1.7.0/lib/visualvm/visualvm/modules/
inflating: jdk1.7.0/lib/visualvm/visualvm/modules/com-sun-tools-visualvm-attach.jar
inflating: jdk1.7.0/lib/visualvm/visualvm/modules/com-sun-tools-visualvm-host-views.jar
creating: jdk1.7.0/lib/visualvm/visualvm/modules/locale/
...
In questo caso questo tipo di installazione non intende convocare il gestore pacchetti ma semplicemente scaricare il contenuto in un singolo albero di directory in modo da poterlo spostare ovunque tu voglia.
Negli ambienti di produzione, spesso non si desidera utilizzare il gestore pacchetti, ma si ha un maggiore controllo sulle distribuzioni. Forse hai diverse applicazioni che stai distribuendo e ognuna richiede una versione diversa di JDK. Usando questo metodo è possibile farli coesistere più facilmente, quindi dirlo tramite il gestore pacchetti.
$ pwd
/home/saml/jdk1.7.0
[saml@grinchy jdk1.7.0]$ ls -l
total 19308
drwxr-xr-x 2 saml saml 4096 Jan 13 2011 bin
-r--r--r-- 1 saml saml 2487 Jan 13 2011 COPYRIGHT
drwxr-xr-x 5 saml saml 4096 Jan 13 2011 db
drwxr-xr-x 11 saml saml 4096 Jan 13 2011 demo
drwxr-xr-x 3 saml saml 4096 Jan 13 2011 include
drwxr-xr-x 6 saml saml 4096 Sep 29 10:57 jre
drwxr-xr-x 3 saml saml 4096 Sep 29 10:57 lib
-r--r--r-- 1 saml saml 9005 Jan 13 2011 LICENSE
drwxr-xr-x 4 saml saml 4096 Jan 13 2011 man
-r--r--r-- 1 saml saml 25379 Jan 13 2011 README.html
-r--r--r-- 1 saml saml 20320 Jan 13 2011 README_ja.html
-r--r--r-- 1 saml saml 15160 Jan 13 2011 README_zh_CN.html
-r--r--r-- 1 saml saml 5348 Sep 29 10:58 register.html
-r--r--r-- 1 saml saml 5645 Sep 29 10:58 register_ja.html
-r--r--r-- 1 saml saml 4951 Sep 29 10:58 register_zh_CN.html
drwxr-xr-x 8 saml saml 4096 Jan 13 2011 sample
-rw-r--r-- 1 saml saml 19631790 Jan 13 2011 src.zip