6 votes

Pourquoi ne devrais-je pas mettre à jour tous mes modules CPAN ?

J'ai pensé que ce serait une bonne idée en général de mettre à jour régulièrement tous les logiciels de mon ordinateur. Comme les modules CPAN ne sont pas gérés par mon gestionnaire de paquets, je me suis dit que je devais faire cpan -u de temps en temps. C'est seulement après avoir exécuté cette opération que j'ai lu la note de la page de manuel à ce sujet :

-u  Upgrade all installed modules. Blindly doing this can really break
   things, so keep a backup.
  1. Pourquoi ça devrait casser quelque chose ? Et comment dois-je maintenir mes modules CPAN à jour autrement ; dois-je garder la trace de tous les modules installés manuellement ( cpan ne semble pas le faire) et ne les mettre à jour que régulièrement ? Qu'en est-il des dépendances de mes modules installés manuellement ?
  2. Pourquoi est-ce que cpan -u mettre à jour des trucs pendant ~15min alors que je n'ai pas installé un seul module CPAN ?
  3. Puis-je revenir sur la cpan -u ? Est-il suffisant de supprimer ~/.cpan pour ça ?

14voto

Quentin Points 325526

Pourquoi ça devrait casser quelque chose ?

Il ne devrait pas, mais les systèmes complexes sont complexes et parfois les choses se cassent (par exemple si un module est mis à jour avec un changement non rétro-compatible, ou dépend d'une bibliothèque C qui a des bogues qui n'apparaissent qu'en combinaison avec des dépendances spécifiques).

Et comment maintenir mes modules CPAN à jour autrement ;

Gardez juste des sauvegardes au cas où les choses se cassent.

Pourquoi cpan -u a mis à jour des trucs pendant ~15min alors que je n'ai pas installé un seul module CPAN ?

Perl est distribué avec un grande collection de modules et d'autres modules peuvent avoir été installés par votre distribution.

Puis-je revenir sur le cpan -u ?

Vous pouvez l'écraser avec la sauvegarde que la documentation vous a recommandé de faire.

Est-il suffisant de supprimer ~/.cpan pour cela ?

Non. Ce répertoire est utilisé par l'outil d'installation pour mettre en cache les données sur les modules disponibles, pour stocker le code source et pour contenir les artefacts de construction. Les fichiers installés sont écrits dans votre répertoire lib comme toute autre bibliothèque.

2voto

brian d foy Points 71781
  1. Le code nouveau ou mis à jour correspond à des bogues nouveaux ou mis à jour. J'ai le point de vue opposé à celui de Quentin : pourquoi le fait de changer un tas de choses ne casserait-il pas des choses ? C'est ce à quoi je m'attends avec la plupart des mises à jour. Cependant, les porteurs de Perl 5 se donnent beaucoup de mal pour tester perl les distributions contre autant de CPAN qu'elles le peuvent. Cela ne signifie pas que votre utilisation particulière d'un module (et la façon dont vous avez contourné les bogues existants) est stable.

  2. Certains modules fournis avec perl sont également sur CPAN. Ce sont des modules "à double vie" et ils peuvent être mis à jour depuis CPAN.

  3. L'outil cpan ne rétablit rien pour vous, mais vous pouvez faire ce que je fais parfois. Faites de votre installation un repo git. Faites une branche quand vous la modifiez. Essayez la branche avec votre code. Si quelque chose ne va pas, vous pouvez toujours revenir à master. Vous n'avez même pas besoin de valider les changements ! Des outils tels que Pinto vous aident à gérer des ensembles de modules Perl.


Il y a d'autres éléments à prendre en compte.

D'abord, je vous recommande de ne pas toucher au système. perl . Laissez le système s'en charger. Si vous voulez un produit plus frais perl que vous gérez vous-même, installez-en un autre. Vous pourriez aimer perlbrew pour cela (je ne le fais pas, mais ce n'est pas grave).

Vous pouvez le bousiller autant que vous voulez et le système ne commencera pas à faire des choses bizarres. Envisagez des changements majeurs comme suppression de . de @INC y Dépréciation des accolades gauches non identifiées dans les regexes . Il s'agissait de changements dans perl mais ils ont cassé des choses importantes.

Deuxièmement, vous pouvez configurer cpan pour qu'il s'installe ailleurs que dans les répertoires du système. L'adresse -I Le commutateur utilisera local::lib pour vous. En outre, vous pouvez le configurer manuellement .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X