Differenza tra file .deb e file .run


10

Qual è la differenza tra la creazione di file .deb e l'installazione e l'esecuzione di un file .run ?


1
Hai in mente degli esempi particolari?
slm

Risposte:


8

.debi file sono pacchetti per dpkg , il gestore di pacchetti Debian di basso livello (che è invocato da APT e dai suoi parenti). Un .debfile è 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 .debfile con dpkg -ce dpkg -I. Se non lo hai dpkg, puoi usare ar t foo.debper elencare le parti di un .debfile ed ar x foo.deb control.tar.gzestrarre la control.tar.gzparte (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.

.runnon è un'estensione standard. Un .runfile è presumibilmente qualcosa che puoi eseguire. Potrebbe installare un programma o fare qualcosa di completamente diverso.


8

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.

Esempio

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

Riferimenti

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.