web-dev-qa-db-fra.com

Pourquoi tous les packages / logiciels Linux ne sont-ils pas au format .deb?

Un paquetage .deb est très facile à installer, tout comme .exe sous Windows, il vous suffit de double-cliquer et d'installer via USC. Je me demande pourquoi certains développeurs choisissent des formats tels que .tar.gz (il me fait très peur), ce qui est compliqué à installer.

Tous les forks Linux ne sont probablement pas compatibles avec .deb; est-ce vrai?

Pourquoi la communauté Linux ne définit-elle pas une norme en matière de gestion des paquets afin que chaque logiciel puisse être au format .deb (j'adore ce format en raison de la simplicité de son installation) pour que les utilisateurs finaux en bénéficient?.

5
waqar

En effet, l'écosystème Linux contient de nombreuses sous-branches différentes (cliquez sur l'image pour l'agrandir.)1:

enter image description here

Maintenant, l’une des différences fondamentales entre ces distributions est le gestionnaire de paquets qu’il utilise. Debian et ses dérivés (dont Ubuntu) utilisent dpkg qui traite les paquets .deb. L’autre grand joueur est le gestionnaire de paquetages RedHat (rpm) qui fonctionne avec les paquets .rpm. D'autres distributions ont leur propre système ou utilisent un wrapper pour installer directement à partir de la source ou n'ont même pas de gestionnaire de paquets.

Dans tous les cas, le format .tar.gz est

  1. Pas vraiment un format. C'est ce qu'on appelle une archive compressée. tar crée des archives (.tar) qui sont ensuite transmises à gzip pour les compresser (.gz). Voir ici pour plus de détails.

  2. Pas un installateur. C'est simplement une collection de fichiers/répertoires, dans le cas de tarballs source, le code source d'un programme.

  3. Pas du tout spécifique aux codes sources ou aux programmes. Vous pouvez considérer .tar.gz comme un équivalent des fichiers Windows (et pas uniquement) .Zip. Ils peuvent contenir un installateur ou ils peuvent contenir des documents Word ou autre.

La raison pour laquelle tous les programmes Linux ne sont pas empaquetés sous la forme de fichiers .deb est que, bien que .deb soit en effet populaire, il ne fonctionne pas pour toutes les distributions. Par conséquent, un développeur peut essayer de conditionner son application pour autant de distributions que possible ou simplement rendre le code source disponible et laisser les utilisateurs le compiler eux-mêmes. Jusqu'à il y a quelques années, la grande majorité des programmes Linux n'étaient distribués que de cette façon. La variété de programmes préemballés était assez petite.

Cela a changé ces dernières années avec l'énorme augmentation de la popularité du format .deb, due en grande partie à la popularité correspondante d'Ubuntu et de Linux Mint.

La raison pour laquelle tout le monde n'utilise pas .deb est que chaque approche (dpkg/apt-get, rpm/yum, pacman etc) a ses inconditionnels. Et si je publie mon programme uniquement en tant que .deb, tout le monde ne pourra l’utiliser. Le seul moyen de s’assurer que un utilisateur GNU/Linux pourra utiliser mon logiciel est de le publier en tant que source et de le laisser le compiler manuellement.

Pour finir, vous ne devriez vraiment pas avoir peur de tels programmes. S'il est vrai que le tri des dépendances peut être un problème, la plupart des développeurs indiqueront clairement les dépendances sur leur page Web et tant que vous les avez installées, installer un logiciel à partir d'une archive source est vraiment très simple:

  1. Extraire le fichier

    tar xvzf software.tar.gz
    
  2. Déplacez-vous dans le répertoire nouvellement créé où les fichiers ont été extraits

    cd software/
    
  3. Configurer

    ./configure
    
  4. Compiler

    make
    
  5. Installer

    Sudo make install
    

Tout cela peut être condensé pour:

tar xvzf software.tgz; cd software; ./configure && make && make install

1 Image prise de cette page Wikipedia .

19
terdon

En fait, il existe des alternatives aux packages .deb

.deb packages signifie debian packages. Il a été lancé par le Debian Linux Distribution

Un autre acteur majeur est rpm qui signifie RedHat package manager

Linux repose sur l'open source. Donc la plupart des fichiers compressés comme .tar.gz sont des codes sources

Vous devez compiler et exécuter sur n'importe quelle distribution Linux comme ceci:

tar -xvf yourdownloadedpackagefilename.tar.gz
cd yourdownloadedpackagefilename
./configure
make
make install

Remarque: vous devez lire attentivement le fichier README car tous les packages source ne se comportent pas de la même manière!

Ce n'est pas le cas lorsqu'il s'agit de gestionnaires de paquets. Ils dépendent de la distribution.

J'espère que ça t'as aidé

J'ai trouvé ceci quote très utile pour définir la différence entre les gestionnaires de paquets:

Ces deux groupes sont des "gestionnaires de paquets", ce qui simplifie grandement le processus d'installation, de mise à jour, sinon de maintenance et de suppression de logiciels. Les fichiers "deb" sont destinés à être utilisés par l'utilitaire "dpkg" créé à partir de la distribution Debian (dont Ubuntu est une variante) et les fichiers "rpm" sont destinés au gestionnaire de paquets RedHat, un utilitaire similaire mais très différent créé à l'origine la distribution de Red Hat.

Avant que les gestionnaires de paquets ne soient utilisés, l'installation d'un nouveau logiciel était un processus compliqué qui désactivait de nombreux non-geeks. Vous deviez localiser son code source, puis compiler et lier cette source dans un fichier binaire exécutable. La première tentative en ce sens aboutissait généralement à une longue chaîne de messages d'erreur sur les fichiers de bibliothèque manquants - pour lesquels vous deviez rechercher, installer et répéter le processus.

Les utilitaires de gestion de paquets ont permis de répertorier toutes ces "dépendances" dans un fichier unique contenant également une description, ainsi que le fichier de programme binaire prêt à être exécuté. Le gestionnaire de paquets s'occupe d'extraire toutes les dépendances nécessaires et gère également la configuration initiale du nouveau logiciel.

Bien que les deux types de gestionnaires différents fassent essentiellement le même travail, leurs fichiers ne sont pas directement interchangeables. Il existe un utilitaire permettant de convertir les fichiers RPM au format DEB, mais rien ne garantit qu’un fichier RPM converti configurera automatiquement les éléments correctement pour les normes Debian en matière d’emplacement de fichier (qui diffèrent considérablement, à certains égards, de celles de Red Hat et de ses fichiers. descendance).

J'espère que cela aide un peu; toutes les distributions n’utilisent pas les gestionnaires de paquets, alors si vous voulez en savoir plus sur les "vieilles méthodes", vous pouvez essayer des choses comme Slackware ou GenToo! Cela peut vous en dire plus que vous ne serez à l'aise d'apprendre

8
kirchberger

Vraiment, parce que le la question est fausse.

Est-ce que je voudrais demander "pourquoi je peux acheter des gâteaux et de la farine, des œufs, du sucre aussi? C'est tellement plus facile de manger le gâteau, pourquoi quelqu'un vend aussi toutes ces autres choses?"

.deb sont des paquets avec des programmes (normalement) compilés qu'une personne a compilés, installés, configurés et adaptés à un système d'exploitation spécifique. Une personne s’est occupée des dépendances, des effets secondaires, etc. Notez que le format .deb est utilisé par Ubuntu et plusieurs autres distributions, comme debian, Mint, etc. souvent cela fonctionnera, ce n'est pas garanti. D'autres distributions ont différents systèmes d'empaquetage (rpm, pacman, voire .tar.gz pour slackware).

.tar.gz est un ensemble de fichiers compressé et archivé. Pensez .Zip. Ce pourrait être n'importe quoi. Un logiciel, une collection de photos, un code source, un code compilé, voire un package pour une distribution, vous l'appelez.

7
Rmano

Comme expliqué dans le FAQ Debian :

Les packages contiennent généralement tous les fichiers nécessaires à la mise en œuvre d'un ensemble de commandes ou de fonctionnalités associées. Il existe deux types de paquets Debian:

Les packages binaires, qui contiennent des exécutables, des fichiers de configuration, des pages man/info, des informations de copyright et toute autre documentation. Ces paquets sont distribués dans un format d'archive spécifique à Debian. Ils se distinguent généralement par une extension de fichier '.deb'. Les paquets binaires peuvent être décompressés à l'aide de l'utilitaire Debian dpkg et éventuellement via une interface comme aptitude.

Les packages source, qui consistent en un fichier .dsc décrivant le package source (y compris les noms des fichiers suivants), un fichier .orig.tar.gz contenant la source non modifiée d'origine au format tar compressé au format gzip et généralement un fichier .diff. Fichier gz contenant les modifications spécifiques à Debian de la source d'origine. L'utilitaire dpkg-source compresse et décompresse les archives source Debian. Le programme apt-get peut être utilisé comme interface pour dpkg-source.

4
Tasos

Cela est dû au fait que le .tar.gz inclut le code source, de sorte que vous pouvez fouiller, si vous le souhaitez. De plus, cela donne également aux développeurs une chance de vous donner un README

Ne les laissez pas vous faire peur - tout ce que vous avez à faire est de lire le fichier INSTALL qui est généralement fourni (ou qui se trouve dans le fichier README) -

généralement, c'est simplement:

./configure
make
make install

et le tour est joué!

2
rm-vanda