2009-04-26 7 views
1

J'essaye de déboguer un cons script, et le problème que j'ai est qu'un exécutable dans mon propre $PATH ne semble pas être localisé. En bref: Est-ce que cons peut trouver des exécutables sur mon chemin?Peut-il trouver des exécutables sur mon chemin?

Cela peut sembler une question stupide, puisque la FAQ says

Inconvénients ne passe pas l'environnement de l'utilisateur à l'enfant qui traite des fourches pour construire il le logiciel. Tout ce dont vous avez besoin ou que vous voulez transmettre de l'environnement de l'utilisateur doit l'être explicitement.

Il est pas clair pour moi, cependant, que cons ne devrait pas être en mesure de voir mon $PATH (ci-dessus est libellé de telle sorte que je n'attendre processus enfants d'avoir accès à l'une des variables d'environnement). Dans l'exécution du Construct, $PATH évalue à vide mais $ENV{PATH} contient mon chemin.

Il ne permet pas que je ne sais pas cons ni Perl, donc je ne sais pas vraiment ce que je fais, ni où commencer à chercher ce qui cause le problème :) Pour ce que ça vaut, le script cela ne fonctionne pas pour moi, mais fonctionne pour l'auteur original du script, est situé here.

Répondre

1

Pour ce que ça vaut, la ligne directrice dans la FAQ est correct que quelque chose comme cela va résoudre le problème:

# A standard construction environment. 
$env = new cons(
    ENV => { PATH => $ENV{PATH} } 
); 

qui peut ensuite être suivie, par exemple,

Command $env 'foo', qq(echo =`which tex`=); 

à Exécutez/install/build/tout ce que vous faites avec le script cons.

Questions connexes