Différence entre les fichiers .deb et le fichier .run

10

Quelle est la différence entre créer des fichiers .deb et les installer et simplement exécuter un fichier .run ?

Mandar Shinde
la source
1
Avez-vous des exemples particuliers en tête?
slm

Réponses:

8

.debles fichiers sont des paquets pour dpkg , le gestionnaire de paquets Debian de bas niveau (qui est invoqué sous le capot par APT et ses proches). Un .debfichier est un package pour Debian ou pour un dérivé tel que Ubuntu ou Mint.

Les packages Debian contiennent les fichiers qui appartiennent au package ainsi qu'un «fichier de contrôle» qui décrit les dépendances du package et d'autres méta-informations, ainsi que les scripts d'installation qui sont exécutés lorsque le package est installé, mis à niveau ou désinstallé.

Vous pouvez consulter le contenu d'un .debfichier avec dpkg -cet dpkg -I. Si vous n'en avez pas dpkg, vous pouvez utiliser ar t foo.debpour lister les parties d'un .debfichier et ar x foo.deb control.tar.gzextraire la control.tar.gzpartie (et de même pour les autres parties).

Red Hat (et des parents tels que CentOS et Fedora), SuSE et d'autres utilisent rpm , un format différent avec des caractéristiques similaires. Il y en a d' autres sur d'autres systèmes Unix.

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

Gilles 'SO- arrête d'être méchant'
la source
8

En général, un fichier .deb est similaire à un fichier zip, qui contient des fichiers ainsi que de courts scripts qui peuvent exécuter la post-installation pour ajouter des utilisateurs, des groupes, etc. au système après l'installation.

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

D'autres fois, ce type de fichier .run contiendra simplement des fichiers .deb ou .rpm qui seront vidés sur le disque et peuvent être installés individuellement, ou le script qui les contenait, les videra sur le disque, puis tentera pour les installer à l'aide du logiciel de gestion des packages de votre système.

Un exemple de cela serait si vous téléchargez le JDK Java à partir d'Oracle. Il est généralement un seul fichier exécutable qui , lorsqu'il est exécuté déchargera les fichiers .deb ou .rpm sur le disque, puis les installer à l' aide the package management tools: dpkg, apt, yumou rpm.

Exemple

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

$ 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 fichier ci-dessus exportera les packages pour les différents composants qui composent le JDK, après quoi vous pouvez installer tous ou tout simplement ceux dont vous avez besoin.

Le faire de cette façon permet de faire des choses supplémentaires au-delà de la simple installation d'un package. Par exemple, Oracle a un accord de licence qu'ils souhaitent que vous acceptiez:

10.5 Le présent accord constitue l'intégralité de l'accord des parties concernant son objet. Il remplace toutes les communications, propositions, conditions, représentations et garanties antérieures ou contemporaines, orales ou écrites, et prévaut sur tout texte contradictoire ou supplémentaire de toute citation, commande, reconnaissance ou autre communication entre les parties concernant son objet, y compris tout Bi Licences de code auxiliaire, conditions supplémentaires ou autres licences contenues dans le logiciel sous licence. Aucune modification du présent accord ne sera contraignante, sauf par écrit et signée par un représentant autorisé de chaque partie.

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

Avec cet installateur ci-dessus, vous pouvez voir qu'il contient juste un blob binaire de répertoires de fichiers:

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 seule arborescence de répertoires afin que vous puissiez 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 plutôt avoir plus de contrôle sur les déploiements. Peut-être que vous déployez plusieurs applications et qu'elles nécessitent chacune une version différente du JDK. En utilisant cette méthode, vous pouvez les faire coexister plus facilement, puis dire via le gestionnaire de paquets.

$ 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

Références

slm
la source