Soyez très prudent concernant la sécurité: ce qui est nécessaire pour s'assurer que les modules n'ont pas été modifiés doit être téléchargé de manière sécurisée depuis un site de confiance. Voir ma réponse sur l'utilisation de cpan.
vinc17
Réponses:
226
Sous Unix :
généralement vous démarrez cpan dans votre shell:
# cpan
et tapez
install Chocolate::Belgian
ou sous forme courte:
cpan Chocolate::Belgian
Sous Windows :
Si vous utilisez ActivePerl sous Windows, le PPM (Perl Package Manager) a en grande partie les mêmes fonctionnalités que CPAN.pm.
De nombreuses distributions proposent de nombreux modules Perl sous forme de packages.
Debian / Ubuntu: apt-cache search 'perl$'
Arch Linux: pacman -Ss '^perl-'
Gentoo: catégorie dev-perl
Vous devriez toujours les préférer car vous bénéficiez des mises à jour automatiques (de sécurité) et de la facilité de suppression . Cela peut être assez délicat avec le cpan outil lui-même.
Pour Gentoo, il existe un bel outil appelé g-cpan qui construit / installe le module à partir du CPAN et crée un paquet Gentoo ( ebuild ) pour vous.
La forme courte est juste "cpan Chocolate :: Belgian" de la ligne de commande :)
brian d foy
3
IIRC le dernier ActivePerl n'a plus de ppm de ligne de commande, il ouvre maintenant une interface graphique sophistiquée.
Kev
6
Juste "ppm" ouvre l'interface graphique, mais suivi des commandes, il reste sur la ligne de commande. Donc, "ppm help", "ppm install ...", etc.
Bill Ruppert
Notez que ppm utilise des tirets pour le séparateur de chemin du module et non les doubles deux points habituels. (Peut-être parce que les deux points signifient des lecteurs dans dos?) Cela m'a eu plusieurs fois;)
Matthew Lock
3
@MatthewLock: ppmutilise des traits d'union -parce que vous spécifiez la distribution que vous souhaitez installer, ce qui est beaucoup plus honnête. Par exemple, si vous utilisez cpanpour installer LWP, LWP::Simpleou LWP::UserAgentil installera la distribution libwww-perlpour vous. La majorité des distributions contiennent un seul module avec un nom équivalent, mais il y a plusieurs exceptions comme ça
C'est génial pour simplement installer des éléments. Il ne fournit aucune des fonctionnalités les plus complexes de CPAN ou CPANPLUS, il est donc facile à utiliser, à condition que vous sachiez quel module vous souhaitez installer. Si vous n'avez pas encore cpanminus, tapez simplement:
# cpan App::cpanminus
pour l'installer.
Il est également possible de l'installer sans utiliser du tout cpan. La procédure d'amorçage de base est,
Utiliser cpanpour installer App::cpanminusest un peu étrange. Les instructions d'installation normales impliquent une procédure d'amorçage consistant à télécharger une partie de celui-ci à partir de cpanmin.us et à l'utiliser pour installer le reste. Cela évite la configuration cpanet la création d'un .cpanrépertoire (par la suite) inutile .
Chas. Owens
Sur Ubuntu, vous pouvez simplement installer à cpanminuspartir du terminal. Je trouve cpanmmieux que cpanparce qu'il ne met pas les journaux d'erreurs à l'écran plutôt que les stocke dans des fichiers journaux temporaires et donne le chemin en cas d'erreurs.
user13107
J'obtiens
IgorGanapolsky
29
Je note que certaines personnes suggèrent une exécution de cpan sous sudo. Cela était nécessaire pour installer dans le répertoire système, mais les versions modernes du shell CPAN vous permettent de le configurer pour utiliser simplement sudo pour l'installation. C'est beaucoup plus sûr, car cela signifie que les tests ne s'exécutent pas en tant que root.
Si vous avez un ancien shell CPAN, installez simplement le nouveau cpan ("install CPAN") et lorsque vous rechargez le shell, il devrait vous inviter à configurer ces nouvelles directives.
De nos jours, quand je suis sur un système avec un ancien CPAN, la première chose que je fais est de mettre à jour le shell et de le configurer pour le faire afin que je puisse faire la plupart de mon travail cpan en tant qu'utilisateur normal.
De plus, je suggère fortement aux utilisateurs de Windows d'étudier Perl à la fraise . Il s'agit d'une version de Perl fournie avec un shell CPAN préconfiguré ainsi qu'un compilateur. Il inclut également des modules Perl difficiles à compiler avec leurs dépendances de bibliothèque C externes, notamment XML :: Parser. Cela signifie que vous pouvez faire la même chose que tous les autres utilisateurs de Perl quand il s'agit d'installer des modules, et les choses ont tendance à "juste fonctionner" beaucoup plus souvent.
@Lao Tzu: non, car CPAN est un module de base Perl et n'est pas disponible en tant que package DEB séparé. Je pense que dans la plupart des situations, il est encore mieux d'utiliser App::cpanminus, c'est une telle joie de l'utiliser. Philip Potter le suggère dans sa réponse ici et vous pourriez essayer ce Chas. Réponse d'Owens .
sem.22
25
Si vous êtes sur Ubuntu et que vous souhaitez installer le module perl pré-packagé (par exemple, geo :: ipfree), essayez ceci:
$ apt-cache recherche perl geo :: ipfree
libgeo-ipfree-perl - Une recherche de pays du module Perl d'adresse IP
$ sudo apt-get install libgeo-ipfree-perl
Quelques personnes ont mentionné l'utilitaire cpan, mais il ne s'agit pas seulement de démarrer un shell. Donnez-lui simplement les modules que vous souhaitez installer et laissez-le faire son travail.
$prompt> cpan Foo::Bar
Si vous ne lui donnez aucun argument, il démarre le shell CPAN.pm. Cela fonctionne sous Unix, Mac et devrait être parfait sous Windows (en particulier Strawberry Perl).
Il y a plusieurs autres choses que vous pouvez faire avec l'outil cpan. Voici un résumé des fonctionnalités actuelles (qui peuvent être plus récentes que celles fournies avec CPAN.pm et perl):
-a
Creates the CPAN.pm autobundle with CPAN::Shell->autobundle.
-A module [ module ... ]
Shows the primary maintainers for the specified modules
-C module [ module ... ]
Show the Changes files for the specified modules
-D module [ module ... ]
Show the module details. This prints one line for each out-of-date module (meaning,
modules locally installed but have newer versions on CPAN). Each line has three columns:
module name, local version, and CPAN version.
-L author [ author ... ]
List the modules by the specified authors.
-h
Prints a help message.
-O
Show the out-of-date modules.
-r
Recompiles dynamically loaded modules with CPAN::Shell->recompile.
-v
Print the script version and CPAN.pm version.
Otto a fait une bonne suggestion . Cela fonctionne aussi pour Debian, ainsi que pour tout autre dérivé Debian. La pièce manquante est ce qu'il faut faire lorsque la recherche apt-cache ne trouve pas quelque chose.
Cela vous donnera un package deb que vous pouvez installer pour obtenir Some :: Random :: Module. L'un des grands avantages ici est que les pages de manuel et les exemples de scripts en plus du module lui-même seront placés à l'emplacement de choix de votre distribution. Si la distribution sort un jour avec un package officiel pour une version plus récente de Some :: Random :: Module, il sera automatiquement installé lorsque vous aurez apt-get upgrade.
Ce qui précède consiste à installer le "programme d'installation des modules CPAN à configuration zéro" appelé cpanm. (L'installation peut prendre plusieurs minutes - ne pas interrompre le processus)
Beaucoup de recommandations pour CPAN.pm, ce qui est excellent, mais si vous utilisez, Perl 5.10vous avez également accès à CPANPLUS.pmce qui est comme CPAN.pmmais meilleur.
Et, bien sûr, il est disponible CPANpour les personnes utilisant encore des versions plus anciennes de Perl. Pourquoi ne pas essayer:
Heh, c'est mignon. Utilisez CPAN.pm pour se remplacer par CPANPLUS. :)
brian d foy
5
Plusieurs fois, il arrive que la commande cpan install échoue avec le message du type
"make test avait renvoyé un mauvais état, ne sera pas installé sans forcer"
Dans ce cas, voici la manière d'installer le module:
Malheureusement, cela donne: Impossible de localiser CPAN.pm dans @INC (vous devrez peut-être installer le module CPAN) (@INC contient: / etc / perl
IgorGanapolsky
4
Sur ubuntu, la plupart des modules perl sont déjà fournis, l'installation est donc beaucoup plus rapide que la plupart des autres systèmes qui doivent compiler.
Pour installer Foo::Barà une invite de commande par exemple, il vous suffit généralement de faire:
sudo apt-get install libfoo-bar-perl
Malheureusement, tous les modules ne suivent pas cette convention de dénomination.
Vous pouvez aussi simplement dire "$ cpan Foo :: Bar" pour installer directement à partir de la ligne de commande. Pas besoin d'une doublure fantaisie ou d'une coque CPAN. :)
brian d foy
3
Sur Fedora, vous pouvez utiliser
# yum install foo
tant que Fedora a un package existant pour le module.
On Fedora Linuxou Enterprise Linux, yumsuit également les dépendances de la bibliothèque Perl. Donc, si le module perl est disponible et que certains packages rpm exportent cette dépendance, il installera le bon package pour vous.
yum install 'perl(Chocolate::Belgian)'
(probablement un paquet perl-chocolat-belge, ou même un paquet ChocolateFactory)
Si vous souhaitez placer le nouveau module dans un emplacement personnalisé que votre shell cpan n'est pas configuré pour utiliser, alors peut-être que ce qui suit sera pratique.
#wget <URL to the module.tgz>##unpack
perl Build.PL
./Build destdir=$HOME install_base=$HOME
./Build destdir=$HOME install_base=$HOME install
De nombreuses réponses mentionnent l'utilisation de l' cpanutilitaire (qui utilise CPAN.pm) sans un mot sur la sécurité. Par défaut, la version CPAN2.27 et les versions antérieures se configurent urllistpour utiliser une URL http (à savoir, http://www.cpan.org/ ), qui autorise les attaques MITM, n'est donc pas sécurisée. C'est ce qui est utilisé pour télécharger les CHECKSUMSfichiers, de sorte qu'il doit être changé en une URL sécurisée (par exemple https://www.cpan.org/ ).
Ainsi, après avoir exécuté cpan et accepté la configuration par défaut, vous devez modifier le MyConfig.pmfichier généré (le chemin complet est sorti) de la manière suivante. Remplacer
'urllist'=>[q[http://www.cpan.org/]],
par
'urllist'=>[q[https://www.cpan.org/]],
Remarque: https n'est pas suffisant; vous avez également besoin d'un site Web fiable. Alors, soyez prudent si vous voulez choisir un miroir arbitraire.
Ensuite, vous pouvez utiliser cpan de la manière habituelle.
Mon rapport de bogue sur rt.cpan.org à propos de l'URL non sécurisée.
@DaveEveritt La redirection de http vers https n'est utile que pour la confidentialité, par exemple contre quelqu'un qui ne peut regarder que les données transitant sur le réseau. Mais si un attaquant contrôle le réseau (par exemple un hotspot wifi public ou un réseau local non protégé), une attaque de type " man-in-the-middle" peut être possible, et l'attaquant utilisera son propre serveur (évidemment pas https://www.cpan.org/).
vinc17
1
Sous Windows avec la distribution ActiveState de Perl, utilisez la commande ppm .
On dirait que vous avez déjà votre réponse, mais j'ai pensé que j'interviendrais. C'est ce que je fais dans certains scripts sur un serveur Ubuntu (ou serveur Debian)
#!/usr/bin/perluse warnings;use strict;#I've gotten into the habit of setting this on all my scripts, prevents weird path issues if the script is not being run by root
$ENV{'PATH'}='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin';#Fill this with the perl modules required for your projectmy@perl= qw(LWP::Simple XML::LibXML MIME::Lite DBI DateTimeConfig::TinyProc::ProcessTable);
chomp(my $curl =`which curl`);if(!$curl){ system('apt-get install curl -y > /dev/null');}
chomp(my $cpanm = system('/bin/bash','-c','which cpanm &>/dev/null'));#installs cpanm if missingif($cpanm){ system('curl -s -L http://cpanmin.us | perl - --sudo App::cpanminus');}#loops through required modules and installs them if missingforeachmy $x (@perl){eval"use $x";if($@){
system("cpanm $x");eval"use $x";}}
Cela fonctionne bien pour moi, il y a peut-être quelque chose que vous pouvez utiliser ici.
cpan
.Réponses:
Sous Unix :
généralement vous démarrez cpan dans votre shell:
# cpan
et tapez
install Chocolate::Belgian
ou sous forme courte:
cpan Chocolate::Belgian
Sous Windows :
Exemple:
# ppm
ppm> search net-smtp
ppm> install Net-SMTP-Multipart
voir Comment installer des modules Perl? dans la FAQ CPAN
De nombreuses distributions proposent de nombreux modules Perl sous forme de packages.
apt-cache search 'perl$'
pacman -Ss '^perl-'
dev-perl
Vous devriez toujours les préférer car vous bénéficiez des mises à jour automatiques (de sécurité) et de la facilité de suppression . Cela peut être assez délicat avec le cpan outil lui-même.
Pour Gentoo, il existe un bel outil appelé g-cpan qui construit / installe le module à partir du CPAN et crée un paquet Gentoo ( ebuild ) pour vous.
la source
ppm
utilise des traits d'union-
parce que vous spécifiez la distribution que vous souhaitez installer, ce qui est beaucoup plus honnête. Par exemple, si vous utilisezcpan
pour installerLWP
,LWP::Simple
ouLWP::UserAgent
il installera la distributionlibwww-perl
pour vous. La majorité des distributions contiennent un seul module avec un nom équivalent, mais il y a plusieurs exceptions comme çaEssayez App :: cpanminus :
C'est génial pour simplement installer des éléments. Il ne fournit aucune des fonctionnalités les plus complexes de CPAN ou CPANPLUS, il est donc facile à utiliser, à condition que vous sachiez quel module vous souhaitez installer. Si vous n'avez pas encore cpanminus, tapez simplement:
pour l'installer.
Il est également possible de l'installer sans utiliser du tout cpan. La procédure d'amorçage de base est,
Pour plus d'informations, rendez-vous sur la page App :: cpanminus et consultez la section sur l'installation.
la source
cpan
pour installerApp::cpanminus
est un peu étrange. Les instructions d'installation normales impliquent une procédure d'amorçage consistant à télécharger une partie de celui-ci à partir de cpanmin.us et à l'utiliser pour installer le reste. Cela évite la configurationcpan
et la création d'un.cpan
répertoire (par la suite) inutile .cpanminus
partir du terminal. Je trouvecpanm
mieux quecpan
parce qu'il ne met pas les journaux d'erreurs à l'écran plutôt que les stocke dans des fichiers journaux temporaires et donne le chemin en cas d'erreurs.Je note que certaines personnes suggèrent une exécution de cpan sous sudo. Cela était nécessaire pour installer dans le répertoire système, mais les versions modernes du shell CPAN vous permettent de le configurer pour utiliser simplement sudo pour l'installation. C'est beaucoup plus sûr, car cela signifie que les tests ne s'exécutent pas en tant que root.
Si vous avez un ancien shell CPAN, installez simplement le nouveau cpan ("install CPAN") et lorsque vous rechargez le shell, il devrait vous inviter à configurer ces nouvelles directives.
De nos jours, quand je suis sur un système avec un ancien CPAN, la première chose que je fais est de mettre à jour le shell et de le configurer pour le faire afin que je puisse faire la plupart de mon travail cpan en tant qu'utilisateur normal.
De plus, je suggère fortement aux utilisateurs de Windows d'étudier Perl à la fraise . Il s'agit d'une version de Perl fournie avec un shell CPAN préconfiguré ainsi qu'un compilateur. Il inclut également des modules Perl difficiles à compiler avec leurs dépendances de bibliothèque C externes, notamment XML :: Parser. Cela signifie que vous pouvez faire la même chose que tous les autres utilisateurs de Perl quand il s'agit d'installer des modules, et les choses ont tendance à "juste fonctionner" beaucoup plus souvent.
la source
install CPAN
d'où?$sudo apt-get install cpan
?App::cpanminus
, c'est une telle joie de l'utiliser. Philip Potter le suggère dans sa réponse ici et vous pourriez essayer ce Chas. Réponse d'Owens .Si vous êtes sur Ubuntu et que vous souhaitez installer le module perl pré-packagé (par exemple, geo :: ipfree), essayez ceci:
la source
Quelques personnes ont mentionné l'utilitaire cpan, mais il ne s'agit pas seulement de démarrer un shell. Donnez-lui simplement les modules que vous souhaitez installer et laissez-le faire son travail.
Si vous ne lui donnez aucun argument, il démarre le shell CPAN.pm. Cela fonctionne sous Unix, Mac et devrait être parfait sous Windows (en particulier Strawberry Perl).
Il y a plusieurs autres choses que vous pouvez faire avec l'outil cpan. Voici un résumé des fonctionnalités actuelles (qui peuvent être plus récentes que celles fournies avec CPAN.pm et perl):
la source
sudo perl -MCPAN -e 'install Foo'
la source
Voir également Oui, même vous pouvez utiliser CPAN . Il montre comment utiliser CPAN sans avoir d'accès root ou sudo.
la source
Otto a fait une bonne suggestion . Cela fonctionne aussi pour Debian, ainsi que pour tout autre dérivé Debian. La pièce manquante est ce qu'il faut faire lorsque la recherche apt-cache ne trouve pas quelque chose.
Ensuite, chaque fois que vous avez un module aléatoire que vous souhaitez installer:
Cela vous donnera un package deb que vous pouvez installer pour obtenir Some :: Random :: Module. L'un des grands avantages ici est que les pages de manuel et les exemples de scripts en plus du module lui-même seront placés à l'emplacement de choix de votre distribution. Si la distribution sort un jour avec un package officiel pour une version plus récente de Some :: Random :: Module, il sera automatiquement installé lorsque vous aurez apt-get upgrade.
la source
Déjà répondu et réponse acceptée - mais quand même:
À mon humble avis, le moyen le plus simple d'installer des modules CPAN (sur des systèmes de type Unix, et je n'ai aucune idée des merveilles) est:
Ce qui précède consiste à installer le "programme d'installation des modules CPAN à configuration zéro" appelé
cpanm
. (L'installation peut prendre plusieurs minutes - ne pas interrompre le processus)et après - simplement:
la source
Beaucoup de recommandations pour
CPAN.pm
, ce qui est excellent, mais si vous utilisez,Perl 5.10
vous avez également accès àCPANPLUS.pm
ce qui est commeCPAN.pm
mais meilleur.Et, bien sûr, il est disponible
CPAN
pour les personnes utilisant encore des versions plus anciennes de Perl. Pourquoi ne pas essayer:la source
Plusieurs fois, il arrive que la commande cpan install échoue avec le message du type "make test avait renvoyé un mauvais état, ne sera pas installé sans forcer"
Dans ce cas, voici la manière d'installer le module:
la source
Sur ubuntu, la plupart des modules perl sont déjà fournis, l'installation est donc beaucoup plus rapide que la plupart des autres systèmes qui doivent compiler.
Pour installer
Foo::Bar
à une invite de commande par exemple, il vous suffit généralement de faire:Malheureusement, tous les modules ne suivent pas cette convention de dénomination.
la source
Même cela devrait fonctionner:
la source
Utilisez la commande cpan comme
cpan Modulename
Pour installer automatiquement les dépendances, suivez les instructions ci-dessous
Je préfère App :: cpanminus , il installe automatiquement les dépendances. Fais juste
la source
2 façons dont je connais:
UTILISATION DE PPM:
Avec Windows (ActivePerl), j'ai utilisé ppm
à partir du type de ligne de commande ppm. À l'invite ppm ...
ou
pour obtenir une liste des modules toto disponibles. Tapez help pour toutes les commandes
UTILISATION DU CPAN:
vous pouvez également utiliser CPAN comme ceci ( systèmes * nix ):
vous reçoit une invite
à l'invite ...
tapez h pour obtenir une liste de commandes pour cpan
la source
Sur Fedora, vous pouvez utiliser
tant que Fedora a un package existant pour le module.
la source
On
Fedora Linux
ouEnterprise Linux
,yum
suit également les dépendances de la bibliothèque Perl. Donc, si le module perl est disponible et que certains packages rpm exportent cette dépendance, il installera le bon package pour vous.(probablement un paquet perl-chocolat-belge, ou même un paquet ChocolateFactory)
la source
Le moyen le plus simple pour moi est le suivant:
a) détection / résolution / installation de dépendances récursives automatiques
b) c'est un shell onliner, bon pour les scripts de configuration
la source
Si vous souhaitez placer le nouveau module dans un emplacement personnalisé que votre shell cpan n'est pas configuré pour utiliser, alors peut-être que ce qui suit sera pratique.
la source
Parfois, vous pouvez utiliser le
yum search foo
pour rechercher le module perl relatif, puis utiliseryum install xxx
pour installer.la source
Solution sécurisée
De nombreuses réponses mentionnent l'utilisation de l'
cpan
utilitaire (qui utiliseCPAN.pm
) sans un mot sur la sécurité. Par défaut, la versionCPAN
2.27 et les versions antérieures se configurenturllist
pour utiliser une URL http (à savoir, http://www.cpan.org/ ), qui autorise les attaques MITM, n'est donc pas sécurisée. C'est ce qui est utilisé pour télécharger lesCHECKSUMS
fichiers, de sorte qu'il doit être changé en une URL sécurisée (par exemple https://www.cpan.org/ ).Ainsi, après avoir exécuté cpan et accepté la configuration par défaut, vous devez modifier le
MyConfig.pm
fichier généré (le chemin complet est sorti) de la manière suivante. Remplacerpar
Remarque: https n'est pas suffisant; vous avez également besoin d'un site Web fiable. Alors, soyez prudent si vous voulez choisir un miroir arbitraire.
Ensuite, vous pouvez utiliser
cpan
de la manière habituelle.Mon rapport de bogue sur rt.cpan.org à propos de l'URL non sécurisée.
la source
https://www.cpan.org/
).Sous Windows avec la distribution ActiveState de Perl, utilisez la commande ppm .
la source
Le simple fait d'exécuter
cpan Foo::Bar
sur le shell servirait le but.la source
On dirait que vous avez déjà votre réponse, mais j'ai pensé que j'interviendrais. C'est ce que je fais dans certains scripts sur un serveur Ubuntu (ou serveur Debian)
Cela fonctionne bien pour moi, il y a peut-être quelque chose que vous pouvez utiliser ici.
la source