web-dev-qa-db-fra.com

Quand utiliser des packages dans aptitude versus CPAN / Gems / PyPI?

Quelle est la règle générale pour savoir quand installer un package à partir des référentiels officiels .deb, Par rapport à quand installer avec le gestionnaire de packages de la langue? Ceux dans les dépôts en amont sont souvent au moins légèrement obsolètes, mais je ne veux pas non plus que mes paquets entrent en collision avec ceux "officiels", et il semble que l'aptitude va me forcer à installer le logiciel officiel ceux dans de nombreux cas de toute façon.

5
Benjamin Pollack

C'est une question difficile à répondre en général.

Les packages officiels .deb vous offrent une stabilité et un support complet par la communauté Ubuntu. Si vous n'avez pas besoin de la dernière version, vous pourriez être mieux avec cette solution. Vous avez également le support du gestionnaire de paquets pour les mises à jour, la suppression, etc.

Si vous avez besoin d'une assistance en amont ou avez besoin des dernières fonctionnalités, vous feriez mieux de l'obtenir à partir des systèmes de distribution tels que CPAN, gem, pear, etc.

6
txwikinger

D'après mon expérience (certes pas trop vaste), les gestionnaires de packages spécifiques à la langue ne font pas un aussi bon travail que .deb ceux dans le suivi des dépendances qui sont totalement extérieur la frontière du langage (je pense en particulier aux dépendances sur les bibliothèques codées C qu'un paquet enveloppe pour une utilisation en Python, Perl, Ruby, etc.).

Si (disons) un Pypi Python package 'barfoo' nécessite une bibliothèque libfoobar pour construire le _bf.so Python extension utilisée par le package et nécessitant que libfoobar soit au moins à la version 5.2, c'est à vous de déterminer quels .deb fournit des versions appropriées de libfoobar (et vous n'en trouverez peut-être pas, si le package Pypi suit de près les versions les plus récentes et les plus importantes en amont) - et gardez une trace de celui-ci au cas où vous désinstaller barfoo plus tard (donc le fournisseur libfoobar devient "orphelin" et pourrait/devrait être supprimé).

Je ne pense pas que le problème de l'intégration de Pypi/CPAN/etc avec d'autres systèmes de distribution de packages puisse encore être considéré comme "résolu". Pour un minimum de maux de tête liés à l'administration, si vous pouvez vous débrouiller avec un fonctionnaire .deb (je n'ai pas besoin du dernier et du plus grand feechurz & c), je pense que ce serait souhaitable; à l'autre extrême, bien sûr, pour un paquet que vous faites voulez être super-mis à jour (par exemple, vous êtes l'un des auteurs/mainteneurs en amont du paquet ;-), il y a la possibilité de garder un nouveau dépôt dans le système de contrôle de version que le paquet utilise (svn, hg, git, Bazaar, ...) et en le gardant construit à partir des sources. Pypi/CPAN/& c sont "au milieu". Certes, une partie du temps, cette voie médiane sera également recommandée.

Et, une option qui pourrait être envisagée est de créer votre propre .deb package (basé sur celui de Pypi/CPAN/& c, ou même sur des sources en amont) et conservez votre référentiel de ces packages (pour les packages pour lesquels vous trouvez _ .deb repos trop pauvre ou en arrière). Ce n'est pas beaucoup plus difficile que d'installer autrement (suivi manuel des dépendances en dehors de la langue) et aiderait à identifier les "packages orphelins" et autres (en plus, si vous publiez votre package, vous pouvez également aider d'autres personnes ;-).

5
Alex Martelli

Je suis vraiment contre l'utilisation d'Aptitude pour gérer les packages à partir d'un autre gestionnaire de packages. CPAN, Gems, Pecl, Pear, etc. sont des gestionnaires de packages pour leurs langues respectives. Ils sont ce que vous devriez par défaut - à mon avis - parce que c'est pour cela qu'ils sont conçus. Sans parler de la plupart de ces mises à jour et mises à jour (gestion des gemmes, mise à niveau des gemmes, etc.) Ce serait comme utiliser yum pour installer Apache sur votre machine Ubuntu.

Cela dit, il y a quelques occasions où la version Aptitude règne en maître. Par exemple, lorsqu'une installation d'un module à partir d'un gestionnaire de packages de langues échoue (cela est généralement dû à des problèmes de configuration variables), je rencontre rarement ce problème - mais lorsque je fais le package de corrélation d'Aptitude fait l'affaire.

Priorité à mon avis Language Package Manager> Aptitude.

1
Marco Ceppi