PERL : “Can’t locate feature.pm in @INC” suite à mise jour …

Vous aussi, suite à une mise à jour de votre distribution Linux (apt-get, aptitude, yum ou autre), vous vous êtes retrouvés avec des erreurs PERL du type “Can’t locate feature.pm in @IN” ???

Dans mon cas de figure, ma Debian était encore basée sur des repositories SQUEEZE. Suite à l’arrêt du suivi de SQUEEZE, j’ai du modifier mon “/etc/apt/sources.list” pour faire pointer les repos vers WHEEZY.

La suite logique étant un “aptitude update” (ou apt-get update), j’ai donc tenté un “aptitude full-upgrade” …. et là … Catastrophe , je me suis retrouvé avec des tonnes d’erreurs comme citées en titre de ce post 🙁 (feature.pm, Basename.pm, etc …)

Après plusieurs recherches sur le Net, je n’ai pu trouver un post clair, simple, précis et efficace qui me permettrait d’arriver à mes fins …

Dans mon cas de figure, la version de Perl installée avec SQUEEZE était la 5.10.1 et celle que WHEEZY installe est la 5.14.2. Mais pour une raison inconnue, à un moment, dans le process de mise à  jour, Perl s’est retrouvé à vouloir utiliser les librairies du Perl 5.10.1 alors que le Perl 5.14.2 était installé. La version 5.10.1 ayant été purgée par le process de mise à jour, Perl pointait donc (la fameuse suite de répertoires inclus via la directive @INC) vers la mauvaise installation de Perl 🙁

Et comment modifie-t-on la liste des répertoires listés via la directive @INC ?
Alors il existe des solutions mais franchement je n’ai rien trouvé de clair, simple, précis et efficace …

La seule solution trouvée qui fut clair, simple, précise et efficace : exporter la variable PERL5LIB valorisée avec le chemin exact des librairies de la bonne version de Perl, soit quelque chose du style :

PERL5LIB=/home/path/lib:/usr/another/path/lib; export PERL5LIB

Une fois ceci effectué, la commande “perl -v” me donnait bien la bonne version attendue de Perl.
J’ai ainsi pu relancer un “aptitude update” puis un “aptitude full-upgrade”

Sans cette “bidouille”, aptitude me proposait une fulltitude de solutions, toutes plus destructrices les unes que les autres.

 

On dit quoi ? Merci Perl 🙁