Comment puis-je dire quels modules ont été fournis à l'origine de l'installation Perl spécifique sur une machine? P>
(c'est pas em> un duplicata de:
Comment puis-je dire si un module PERL est noyau ou une partie de l'installation standard?
("Comment puis-je dire si un module Perl est noyau ou une partie de l'installation standard?")
- C'est en fait une question de retournement) p>
Je cherche ce qui est venu avec l'installation à l'origine em>, quels modules ont été fournis dans le cadre de cette installation, ce qui a été intégré. Pas ce qui a été installé depuis. p>
J'aimerais que cela fonctionne avec toute version em> perl. p>
Je veux pouvoir faire ceci: p>
Les raisons pour lesquelles je veux faire ceci est: p>
La raison pour laquelle je pose cette question est parce que, pour toute version PERL, il semble de ne pas être un moyen automatisé de déterminer l'installation globale de la norme définissant quels modules vous pouvez vous attendre à être présents dans votre installation par défaut sur votre ordinateur - Voir la question:
Comment puis-je dire si un module PERL est noyau ou une partie de l'installation standard?
("Comment puis-je dire si un module PERL est noyau ou une partie de l'installation standard?") P>
Les versions PERL ne peuvent pas être invoquées à vous dire quels modules sont présents ou non. Bien sûr, il pourrait y avoir une documentation en ligne qui vous dit. Mais j'ai besoin d'une façon automatisée em> de faire cela sur la libération que je télécharge / installation. Même la même version Perl sur différentes distributions Linux / Unix peut être différente. P>
3 Réponses :
je cherche ce qui est venu avec le Installation à l'origine, quels modules ont été fournis dans le cadre de cette Installation, ce qui a été intégré. NE PAS Ce qui a été installé depuis. P>
Peut-être pour les modules non corporels que vous pouvez analyser Perllocal.pod, séparer le lot initial de modules installé avec l'installation Perl elle-même à partir de la part de la date de la date. Vous recherchez des lignes telles que: p>
xxx pré> afin que les premiers ne soient probablement ceux qui ont été installés avec Perl lui-même et doivent avoir la même date (bien que non au même moment. bien sûr). Ceux installés à une différence de 24 heures ou plus seraient ce que vous recherchez. P>
Je ne sais pas sur les modules de base, comme à mon avis, les réponses que vous avez obtenues dans la question précédente que vous avez liée est satisfaisante, mais Clairement, vous ne l'avez pas pensé. Il me manque probablement quelque chose :) p>
acclamations, Offre p> blockQuote>
Perllocal.Pod est toujours obligé d'échouer. Cela ne fonctionne que pour ces outils qui s'occupent de la mettre à jour, et pas du tout pour les goody the utilisateurs font à la main.
@ Solid-State: «Pas sûr des modules de base, comme à mon avis, les réponses que vous avez obtenues dans la question précédente que vous avez liée est satisfaisante" - je suis d'accord sur les réponses dans sont bons (merciangs) mais les solutions ne gèrent que des versions relativement très récentes de Perl que je pense que je devrai accepter - cela plus à faire avec la voie de la voie est plutôt que la capacité des affiches de réponse! @Michael Carman prend également ce point de vue ci-dessus dans le cadre de sa réponse.
@ROB: Les solutions traitent de la plupart des Perls libérés au cours des 15 dernières années. Ce n'est pas un porblem avec Perl. Vous continuez à manquer le fait que ceci est un problème de replanchers, que personne ne peut empêcher de briser et de faire baller de quoi ils distribuent.
Pour Debian ou Ubuntu, vous pouvez utiliser
$ rpm -ql perl | grep '\.pm$'
Sur OpenSUSE: > RPM -QL Perl Perl-Doc | Grep '\ .PM $' code>
Celles-ci vous montrent les fichiers que vous avez maintenant, pas pour une installation vierge, n'est-ce pas?
@gbacon merci. Je vais jeter un coup d'œil sur ce que cela va et reviendrai un peu plus tard pour voir s'il y a des commentaires sur la question de @brian D Foy et plus de pensées.
@brian: Non. Je ne peux pas parler de Redhat, mais dans Debian dpkg -l | --Listfiles Package CODE> Affiche les fichiers associés à seulement i> ce paquet spécifique. Et à Debian, si vous installez d'autres modules, ils viennent d'autres packages. Donc,
dpkg -l perl code> ne montrera que les fichiers de l'installation de base perl.
+1 Pour votre réponse @gbacon, j'espère que la liste résultante est destinée à une "installation vierge".
En général, vous ne pouvez pas. Vous aurez beaucoup moins de frustration si vous acceptez cela et approchez-vous du problème d'un angle différent. Module :: Corelist fournit une liste de ce que devrait être em> être Inclus dans toutes les installations comme un minimum minimum mais les fournisseurs ne sont pas tenus de respecter cela et la plupart des distributions incluent de nombreux modules qui ne font pas partie du noyau. En empêchant la construction de votre propre base de données de ce qui a été inclus dans quelle version de chaque distribution - une tâche intimidante - il n'y a pas beaucoup d'espoir. Notez que même pour les modules fournis avec une distribution, la version installée peut être différente. P>
Je peux voir quelques façons différentes d'aborder ceci: p>
nécessite une section code> du script build.pl. Le CPAN Shell peut suivre et résoudre
dépendances automatiquement. li>
Merci +1 - ça a l'air bien. Je vais examiner un peu plus quand plus de temps et suivi avec plus de pensées / décision.
J'ai accepté cette réponse car elle donne la plus grande portée d'une réponse, encourage-moi à réfléchir au problème. Crédit et +1 à @gbacon aussi.
Avez-vous pensé à utiliser par ou maritime?
Vous avez déjà la réponse à cette question très générale. Une meilleure question, qui a une réponse, serait quelque chose comme "Comment savoir quels modules Perl Debian est venu?"
@brian D FOY: Oui Debian Certainement, mais je dois être capable de le faire sur diverses autres distributions également, comme indiqué sur la question de savoir que cela a été renvoyé de ( Stackoverflow.com/questions/2049735 )
@ALEXANDR CIORNII: Merci, je vais regarder dans le nivelier, j'ai trouvé jusqu'à présent: search.cpan.org/~sunnavy/iverwright-2.4.4 et pour le pair, j'ai trouvé: Par.Perl.org/wiki/Main_Page
@ROB: Oui, je me rends compte que vous voulez cela pour différentes plates-formes, mais chaque plate-forme (et chaque version de cette plate-forme) va avoir une réponse différente. Vous n'allez pas obtenir de meilleures réponses que vous n'avez déjà que si vous affiez votre question.
@brian D FOY. "Chaque plate-forme (et chaque version de cette plate-forme) va avoir une réponse différente" +1 pour la vérification de la réalité. Mais cette vérité est très très malheureuse: quel dîner de désordre déployant Perl est alors! Définitivement un inconvénient d'utiliser Perl parmi ses nombreux bons points. Quel est le point d'avoir des numéros de libération du tout? 5.8, 5.9, etc. et comment ils sont confus qu'ils apparaissent au point 5.008.001 pour 5.8, par exemple, etc. dans certaines situations. Je vais regarder les approches alternatives de @Michael Carman et @ Gbacon. Encore une fois, merci à tout le monde pour l'entrée.
@Rob: La situation que vous décrivez n'a rien à voir avec quoi que ce soit de Perl. Et le vendeur peut faire presque n'importe quoi à tout ce qu'ils distribuent, qu'il s'agisse d'un langage de programmation, de polices ou d'autre chose. Perl fournit une très belle norme qui fonctionnerait assez bien si les vendeurs l'utilisaient. Ils le changent, et c'est le dîner du chien que le vendeur vous donne. Je ne pense pas que vous obtenez cela peu importe combien de fois nous le disons: ce sont les vendeurs qui reconquitent des choses qui rendent votre vie difficile.