On m'a donné quelques scripts Perl à déployer. P>
Quel est le moyen le plus simple de trouver et d'installer tous les modules utilisés par ces scripts? p>
de ce que je peux trouver, il n'y a pas de conditionnel inclut ni inclut dans les points d'expansion. P>
4 Réponses :
Eh bien c'est la voie très simpliste em> j'ai résolu ceci. dans une coquille bash: p> Cela m'a donné un fichier avec Seuls les noms de module, un sur chaque ligne. p> I Utilisé ensuite cette p> pour invoquer la CPAN à chaque nom de module dans le fichier. Puis assister là-bas répondant au oui aux questions de CPAN pour installer des dépendances, le cas échéant. P> Pas jolie mais cette fois, il a eu le travail effectué. P> P>
Que diriez-vous des modules qui ne sont pas utilisés mais ont besoin?
J'adore le grep dans la première ligne en conséquence
Qu'en est-il des lignes où utiliser code> n'est-ce pas la première chose sur la ligne? Il n'autorise même pas les espaces facultatifs.
Vous pouvez bien sûr rendre la déclaration GREP aussi compliquée que vous le souhaitez. I dit b> que c'était une de manière très simpliste i> je faisais ce travail particulier b>
J'étais en espérant Module :: Scandeps qui fournit l'utilitaire de ligne de commande < Un href = "http://search.cpan.org/perldoc/scandeps.pl" rel = "Nofollow NOREFERRER"> SCANDEPS.PL serait utile ici, mais à ma consternation, Voici un script Quick'n'Dirty Perl qui tente d'exécuter le script à l'aide de faire jusqu'à ce qu'il réussisse: p> Si vous ne voulez pas que le script soit exécuté, vous pouvez exécuter < Code> Perl -c $ Script CODE>, Capture Vous risquez de manquer des dépendances chargées au moment de l'exécution en utilisant cette technique. p> p> module :: Scandeps CODE> n'est apparemment pas destiné à ce que
scandeps.pl code> ignore les modules manquants ou (avec
-c code> ou
-x code> ) Croaks Lorsque le script utilise un module qui n'est pas installé.
STREDR CODE> SORTIE DE CETTE ET PAR PAYERE POUR LES MESSAGES DE MODURE manquants et appelez
CPAN CODE> pour chaque module de ce type trouvé jusqu'à ce que
PERL -c $ script code> Sortie "Syntaxe OK". Cela vous donne une boucle plus propre aussi. Je vais regarder cela plus tard. P>
N'est-ce pas un peu dangereux? Le script $ pourrait faire quelque chose de perturbateur.
N'essayez-vous pas d'exécuter le script? À ce stade, vous devez avoir décidé que le script vaut la peine d'être exécuté et que vous avez juste besoin des dépendances.
On m'a dit de les courir tous les jours à 3 heures du matin (ils font de la maintenance de la DB). Ce n'est pas pour moi de décider si c'est bien de les exécuter pendant la journée juste pour obtenir les dépendances installées. (Et je ne veux pas attendre 33 heures du matin). Je conviens que la plupart des temps, ce n'est probablement pas un problème. C'est pourquoi j'ai souligné que cela pourrait être un peu b> dangereux.
@Nifle Run Qu'est-ce que i> Chaque jour à 3 heures du matin? Sont un tas de personnes qui mettent des scripts sur la machine et votre script est-il censé comprendre les modules dont ils dépendent? Si tel est le cas, je voudrais simplement demander aux utilisateurs de soumettre un ensemble de modules dont leurs scripts ont besoin. Je pensais que c'était une chose une chose.
Comme ma question dit On m'a donné quelques scripts Perl à déployer. Quel est le moyen le plus simple de trouver et d'installer tous les modules utilisés par ces scripts? I> donc oui ma solution i> était une chose unique. Tu es beaucoup mieux. Mais je voulais toujours simplement souligner que l'utilisation de votre solution exécutera le script au moins une fois. Et cela pourrait ne pas être toujours une bonne chose.
@Nifle Nous allons dans des cercles. Il n'est pas possible de comprendre toutes les dépendances b> d'un script arbitraire sans l'exécuter. Mais de côté, disons que votre solution grep code> a toujours fonctionné et vous avez installé tous les modules trouvés. Je pensais que toute la raison pour laquelle vous avez fait c'était ainsi le (s) script (s) que vous avez donné pourrait être couru. D'une manière ou d'une autre, ces scripts vont être courus. S'il y a une chance que les scripts puissent être néfastes, vous ne devriez pas vous inquiéter des dépendances en premier lieu.
ou laisser PP de la PP Faites le travail pour vous rassembler tout ce dont vous avez besoin dans un exécutable unique. P>
Je ne pense pas pp code> installe des dépendances manquantes. Est-ce que je manque quelque chose.
Est-ce que mon module :: extrait :: Utilisez Aide? Il y a un extrayant_modules em> programme Dans le répertoire > em>: Vous pouvez tuyer cette liste sur Une fois que vous avez cette liste, ce qui n'est que le premier niveau de dépendances, vous pouvez créer un script Distribution qui permet aux personnes d'utiliser la boîte à outils CPAN normale pour tout installer. P> S'il y a quelque chose qui ne fonctionne pas pour vous, modifiez le programme pour gérer cela. Si vous pensez que cela serait utile aux autres personnes, envoyez une demande de traction. :) p> p> cpan code>. p>