Différence entre les files .deb et le file .run

Quelle est la différence entre la création de files .deb , leur installation et l'exécution d'un file .run ?

.deb files .deb sont des packages pour dpkg , le gestionnaire de packages Debian de bas niveau (qui est appelé sous le capot par APT et ses proches). Un file .deb est un package pour Debian ou pour un dérivé tel que Ubuntu ou Mint.

Les packages Debian contiennent les files qui appartiennent au packageage ainsi qu'un «file de contrôle» qui décrit les dependencies du package et d'autres méta-informations, ainsi que les scripts d'installation exécutés lors de l'installation, de la mise à jour ou de la désinstallation du package.

Vous pouvez regarder le contenu d'un file .deb avec dpkg -c et dpkg -I . Si vous n'avez pas dpkg , vous pouvez utiliser ar t foo.deb pour listr les parties d'un file .deb et ar x foo.deb control.tar.gz pour extraire la partie control.tar.gz (et de même pour les autres les pièces).

Red Hat (et ses proches comme CentOS et Fedora), SuSE et d'autres utilisent le rpm , un format différent avec des caractéristiques similaires. Il y en a d' autres sur d'autres systèmes unix.

.run n'est pas une extension standard. Un file .run est probablement quelque chose que vous pouvez exécuter. Il peut installer un programme ou faire quelque chose de complètement différent.

En général, un file .deb est similaire à un file zip contenant des files ainsi que des scripts courts pouvant être exécutés après l'installation pour append des users, des groupes, etc. au système après l'installation.

Un file .run est généralement un exécutable binary unique ou un script shell qui contient un blob binary qui peut être installé. Si c'est la variété de script shell, il contient souvent un blob binary qui est souvent synonyme de file zip récursif ou de file tar. En d'autres termes, il contiendra des structures de directorys de files.

D'autres fois, ce type de file .run contiendra simplement des files .deb ou .rpm qui seront vidés sur le disque et peuvent être installés individuellement ou le script qui les contient les déversera sur le disque, puis tentera pour les installer en utilisant le logiciel de gestion de packages de votre système.

Un exemple de ceci serait si vous téléchargez le Java JDK d'Oracle. Il s'agit généralement d'un seul file exécutable qui, une fois exécuté, supprimera les files .deb ou .rpm sur le disque, puis les installera à l'aide the package management tools: dpkg , apt , yum ou rpm .

Exemple

Voici un exemple de ce que le téléchargement / l'installation ressemblerait à l'un de ces files .run. L'extension est .bin, mais c'est simplement esthétique, l'extension n'a vraiment d'autre pertinence que d'aider les users à distinguer les différents types de files.

 $ 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 

Ici, le file ci-dessus va vider les packages pour les différents composants qui composent le JDK, après quoi vous pouvez installer tous ou seulement ceux dont vous avez besoin.

Faites-le de cette façon permet d'autres choses à faire au-delà de l'installation d'un package. Par exemple, Oracle a un contrat de licence qu'il souhaite que vous acceptiez:

10.5 Le présent accord est l'accord entier des parties concernant son object. Il remplace toutes les communications, propositions, conditions, déclarations et garanties antérieures ou contemporaines, orales ou écrites, et prévaut sur toute clause contradictoire ou additionnelle de tout devis, command, accusé de réception ou autre communication entre les parties concernant son object, licences de code, licences supplémentaires ou autres licences contenues dans le logiciel sous licence. Aucune modification au présent Contrat ne sera obligatoire, sauf si elle est écrite et signée par un représentant autorisé de chaque partie.

Acceptez-vous les conditions de licence ci-dessus? [Oui ou non]

Avec ce programme d'installation ci-dessus, vous pouvez voir qu'il contient juste un blob binary des directorys de files:

 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/ ... 

Dans ce cas, ce type d'installation est destiné à ne pas invoquer le gestionnaire de packages, mais simplement à vider le contenu dans une arborescence de directorys unique pour pouvoir le déplacer où vous le souhaitez.

Dans les environnements de production, il arrive souvent que vous ne souhaitiez pas utiliser le gestionnaire de packages, mais que vous ayez davantage de contrôle sur les deployments. Vous avez peut-être plusieurs applications à déployer et chacune nécessite une version différente du JDK. En utilisant cette méthode, vous pouvez les faire coexister plus facilement, puis dire via le gestionnaire de packages.

 $ 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 

Les references

  • Comment installer les files .run?
  • Premiers pas avec JDK7