web-dev-qa-db-fra.com

Quelle est la différence entre yum, apt-get, rpm, ./configure && make install?

Je suis nouveau sur Linux et je cours avec CentOS. J'ai découvert quatre façons de mettre à jour ou d'installer un logiciel.

Jusqu'à présent, j'ai vu:

  • yum install [program]
  • apt-get install [program]
  • rpm -i [program].rpm
  • wget [program].tar.gz -> unpack -> ./configure -> make -> make install

Cette dernière est une véritable gêne, en particulier sous Windows, où l’installation du programme ne prend généralement qu’un clic et l’assistant d’installation de Nice.

Donc, mes questions sont:

  • Pourquoi existe-t-il tant de façons différentes de faire cela sous Linux?
  • Lequel recommandez-vous d'utiliser et pourquoi?
  • Existe-t-il d'autres moyens d'installer des programmes sous Linux?
118
Saif Bechan

Ces outils installent tous des logiciels sur votre système, mais travaillent à différents niveaux.

  • ./configure && make install

    Exécuter ./configure && make install construit et installe les bibliothèques ou les exécutables directement à partir du code source.

    L'étape make install ne fait que copier les fichiers finaux dans votre système. De nombreuses sources sont accompagnées d'une règle spéciale make uninstall pour les supprimer à nouveau, mais cela n'est pas garanti et ne fonctionne bien sûr que tant que vous avez les sources configurées. En outre, cela ne prend pas en charge les dépendances requises.

    Souvent, seul le code source est disponible pour un certain paquet, c'est donc la seule solution. De plus, ./configure accepte généralement de nombreuses options vous permettant de personnaliser votre paquet.

    Ne pas être en mesure de savoir quel logiciel a installé quel fichier, et l’absence d’un moyen fiable pour les supprimer du système sont des inconvénients majeurs de cette approche.

  • RPM(Gestionnaire de paquets Redhat)

    rpm installe les logiciels déjà configurés et compilés sur votre système et vient également avec une désinstallation pour vous en débarrasser. Les paquets doivent être créés par quelqu'un. Cette personne a déjà décidé des fonctionnalités à inclure et de la meilleure façon d’intégrer le package dans la structure de votre système. Il vient également avec une liste de dépendances.

    Comme les rpms sont utilisés pour de nombreuses distributions, vous voudrez souvent vous assurer que ce rpm a été écrit pour votre distribution, afin que les chemins d'installation, les dépendances et les autres tâches de maintenance s'intègrent bien.

    Sur les systèmes Debian, le format de paquet équivalent est .deb et l'installation et la base de données sont gérées par l'outil dpkg.

  • Yum

    yum est un wrapper supplémentaire autour de rpm. Il garde sa propre base de données de fichiers rpm disponible pour votre distribution, généralement dans des référentiels en ligne. Pour les versions stables de la plupart des distributions, tous les packages de cette base de données fonctionneront bien entre eux. Cette base de données peut être recherchée (par exemple avec yum search some_name).

    Cela résoudra aussi automatiquement les dépendances pour vous. Les paquetages (et avec l'aide supplémentaire de leurs dépendances) peuvent également être facilement désinstallés.

    Sur les systèmes Debian, le référentiel équivalent et les outils de résolution des dépendances sont fournis par Apt (apt-get et aptitude).

Donc, pour résumer: si vous voulez seulement un logiciel, essayez d'abord yum. S'il n'est pas disponible, vous pouvez essayer de trouver un package rpm existant. S'il n'y en a pas ou si vous avez des exigences particulières, construisez à partir des sources.

109
Benjamin Bannier

Yum are RPM est la même chose sauf que yum récupère automatiquement les paquetages sur le net et les installe (en utilisant rpm -i) en une seule étape. Il devrait être utilisé autant que possible pour faciliter la mise à jour. Utilisez rpm uniquement lorsqu'il n'y a aucun package à rechercher par yum et utilisez la méthode make uniquement lorsqu'il n'y a pas de package .rpm disponible ou que vous devez modifier certaines options de compilation.

4
marcusw