2009-10-15 4 views
1

Je suppose que je n'ai pas mis à niveau correctement, mais pendant un certain temps, je courais simultanément deux versions de Perl. Maintenant j'en ai un, mais chaque fois que je lance PPM, il recrée le dossier Perl de l'un des anciens emplacements. J'ai défini l'actif comme étant le dossier Perl actuel, mais comme l'ancien est toujours présent dans la liste (affiché quand je vais Edit-> Préférences), il le crée à chaque fois. Comment puis-je l'empêcher de faire ça? J'ai regardé dans le registre de Windows, mais je ne pense pas que c'est là que les zones sont suivies.D'où le Gestionnaire de paquets Perl obtient-il ses données de 'zones' sur Win32?

C'est ActiveState Perl 5.10.1 build 1006 sur Windows Server 2003.

+0

Avez-vous des variables d'environnement qui pointent vers le "vieux/mauvais" direcotry? – lexu

+0

Je l'habitude, mais je me suis débarrassé d'eux récemment et réinitialiser le serveur hier soir. – Kev

+0

Merci quand même, et pour l'aide de tous les autres aussi. C'était un méchant à la fin. – Kev

Répondre

0

Remplacez toutes les références dans .packlists (et éventuellement tous les autres fichiers sous le chemin Perl), puis supprimez les fichiers .db dans etc/et site/etc, puis exécutez ppm pour le laisser reconstruire la base de données sur les listes de mise à jour mises à jour. La réponse est donc une combinaison de Config.pm, lib \ Config_heavy.pl, lib \ CORE \ config.h, éventuellement d'autres fichiers, les fichiers .dbs et les .packlists. Bien que, qui a dit si j'avais laissé les entrées de registre de Windows là aussi il ne les aurait pas trouvées?

+0

Sauf maintenant PPM se plaint de la zone 'utilisateur' manquante ... – Kev

+1

Solution: "ppm config gui.install_area site" – Kev

+0

Fonctionnement complet maintenant. – Kev

1

Ma nouvelle conjecture est que ppm regarde dans Config.pm (qui est généré lors de l'installation) pour les emplacements. Encore une fois, si vous utilisez le bon ppm, il ramassera les chemins corrects.

+0

Hmm ... Config.pm ne fonctionne pas, mais il y a Config.pm ~, ce qui est le cas. Bizarre, laisse-moi essayer de le chanter. – Kev

+0

Non, malheureusement, cela ne semblait pas l'affecter. – Kev

+0

@Kev: 'Config.pm ~' est probablement un fichier de sauvegarde restant. Si vous avez une installation Perl valide, ** a ** pour être un 'Config.pm' dans le répertoire' lib' de cette installation. Tout comme il doit y avoir un fichier 'ppm.bat' valide dans le répertoire' bin'. –

1

Cela pourrait être façon hors sujet, mais j'ai dû déplacer l'installation Perl de notre groupe d'un lecteur réseau/serveur (W :) à un autre (Z :). J'ai eu lots des problèmes avec les choses du site PPM aussi (surtout parce que je voulais changer à une zone "utilisateur" non standard) donc j'ai tout écrit (au cas où je devais le faire à nouveau).

Espérons que cela soit utile à Kev, ou à d'autres qui le regardent.


1) Installer la dernière distribution ActivePerl. Dans ce cas, c'était 5.8.8 build 820. J'ai installé ceci dans Z: \ Software \ Perl \ 5.8.8, avec l'intention que Z: \ Software \ Perl \ site \ lib soit la zone "utilisateur" pour l'installation Paquets, au lieu de la valeur par défaut Z: \ Software \ Perl \ 5.8.8 \ site \ lib.

2) Réglez le nouveau répertoire Perl "bin" pour être le premier sur mon PATH et ouvrez une invite DOS. Tapez « ppm zone » et vous devriez voir les domaines suivants:

┌────────────┬──────┬─────────────────────────────────┐ 
│ name  │ pkgs │ lib        │ 
├────────────┼──────┼─────────────────────────────────┤ 
│ (Software) │ n/a │ Z:/Software/Perl/site/lib  │ 
│ perl  │ 0 │ Z:/Software/Perl/5.8.8/lib  │ 
│ site*  │ 0 │ Z:/Software/Perl/5.8.8/site/lib │ 
└────────────┴──────┴─────────────────────────────────┘ 

3) Je avais besoin pour obtenir « site » tourné vers « (site) » (lecture seule) et « (Software) "Tourné à la zone PPM inscriptible par défaut. De plus, je n'ai pas aimé le nom "Software" (ramassé depuis le début du chemin sur Z :, je suppose), donc je voulais aussi le renommer en "user". 4) Exécutez l'interface graphique PPM complète (tapez «ppm» sous DOS) et définissez Logiciel comme zone par défaut (Édition -> Préférences) et installez quelque chose de facile (je choisis habituellement MP3-Info).

5) Sortir de l'interface graphique et exécutez « ppm zone » pour obtenir:

┌──────────┬──────┬─────────────────────────────────┐ 
│ name  │ pkgs │ lib        │ 
├──────────┼──────┼─────────────────────────────────┤ 
│ Software │ 1 │ Z:/Software/Perl/site/lib  │ 
│ perl  │ 0 │ Z:/Software/Perl/5.8.8/lib  │ 
│ site* │ 0 │ Z:/Software/Perl/5.8.8/site/lib │ 
└──────────┴──────┴─────────────────────────────────┘ 

6) Pour une raison quelconque, « ppm zone » est pas à l'affiche du logiciel comme la zone par défaut, même si je l'ai sélectionné par défaut dans la préférence de PPM. Ne vous inquiétez pas pour le moment.

7) Accédez à Z: \ Software \ Perl \ site \ lib \ etc et renommez le fichier DB en "ppm-user-area.db" Allez à Z: \ Software \ Perl \ 5.8.8 et supprimez . toutes les radiations autorisations dans le dossier « site » et tous les sous-dossiers Run « ppm zone » à nouveau et vous devriez voir:

┌────────┬──────┬─────────────────────────────────┐ 
│ name │ pkgs │ lib        │ 
├────────┼──────┼─────────────────────────────────┤ 
│ user* │ 1 │ Z:/Software/Perl/site/lib  │ 
│ perl │ 42 │ Z:/Software/Perl/5.8.8/lib  │ 
│ (site) │ 0 │ Z:/Software/Perl/5.8.8/site/lib │ 
└────────┴──────┴─────────────────────────────────┘ 

8) vous devriez maintenant être tous ensemble!La zone PPM par défaut est "utilisateur" (Z: \ Software \ Perl \ site \ lib) et la zone "site" (Z: \ Software \ Perl \ 5.8.8 \ site \ lib) n'est pas accessible en écriture (ceci est important car ce n'est pas sur le chemin de recherche de Perl - si quelqu'un installait des paquets là-bas, Perl ne serait pas capable de les trouver!).

J'ai eu quelques problèmes pour que PPM reconnaisse tous les paquetages installés dans la zone "perl". Il a continué à répertorier cette zone comme étant verrouillée dans les préférences de l'interface graphique PPM. Finalement, j'ai supprimé le fichier de base de données PPM dans Z: \ Software \ Perl \ 5.8.8 \ etc et l'interface graphique de PPM pourrait tout trouver par magie!

+0

Cela ne l'a pas résolu, mais 7 était utile, je n'avais pas remarqué que l'un des répertoires etc avait deux fichiers. Cela ne l'a pas vraiment réglé non plus, mais votre remarque sur l'exécution à partir de la ligne de commande a mis en évidence quelque chose pour moi, cela dit quelque chose sur la synchronisation avec .packlists. Je suppose que je dois rechercher et remplacer dans toutes les listes de paquets pour le réparer. – Kev

Questions connexes