Tenha muito cuidado com a segurança: o que é necessário para garantir que os módulos não foram modificados deve ser baixado de forma segura a partir de um site confiável. Veja minha resposta sobre o uso de cpan.
vinc17
Respostas:
226
No Unix :
Normalmente você inicia o cpan no seu shell:
# cpan
e tipo
install Chocolate::Belgian
ou em forma abreviada:
cpan Chocolate::Belgian
No Windows :
Se você estiver usando o ActivePerl no Windows, o PPM (Perl Package Manager) possui praticamente a mesma funcionalidade do CPAN.pm.
Muitas distribuições entregam muitos módulos perl como pacotes.
Debian / Ubuntu: apt-cache search 'perl$'
Arch Linux: pacman -Ss '^perl-'
Gentoo: categoria dev-perl
Você sempre deve preferi-los, pois se beneficia das atualizações automáticas (de segurança) e da facilidade de remoção . Isso pode ser bastante complicado com a própria ferramenta cpan .
Para o Gentoo, existe uma boa ferramenta chamada g-cpan que constrói / instala o módulo a partir do CPAN e cria um pacote Gentoo ( ebuild ) para você.
A forma curta é apenas "cpan Chocolate :: belga" na linha de comando :)
Brian D Foy
3
O IIRC, o ActivePerl mais recente, não possui mais ppm de linha de comando, agora abre uma GUI sofisticada.
Kev
6
Apenas "ppm" abre a GUI, mas seguido pelos comandos, ele permanece na linha de comando. Assim, "ppm ajuda", "ppm instalar ...", etc.
Bill Ruppert
Observe que o ppm usa traços no separador de caminho do módulo, e não nos dois pontos comuns. (Talvez porque dois pontos signifiquem unidades em dos?) Isso me pegou algumas vezes;)
Matthew Bloqueio
3
@ MatthewLock: ppmusa hífens -porque você especifica a distribuição que deseja instalar, o que é muito mais honesto. Por exemplo, se você usa cpana instalação LWP, LWP::Simpleou LWP::UserAgentela instalará a distribuição libwww-perlpara você. A maioria das distribuições contém um único módulo com um nome equivalente, mas existem várias exceções como essa
É ótimo apenas para instalar coisas. Ele não fornece nenhuma das funcionalidades mais complexas do CPAN ou CPANPLUS, por isso é fácil de usar, desde que você saiba qual módulo deseja instalar. Se você ainda não possui o cpanminus, digite:
# cpan App::cpanminus
para instalá-lo.
Também é possível instalá-lo sem usar o cpan. O procedimento básico de inicialização é,
Usar cpanpara instalar App::cpanminusé um pouco estranho. As instruções normais de instalação envolvem um procedimento de inicialização para baixar uma parte do cpanmin.us e usá-lo para instalar o restante. Isso evita a configuração cpane a criação de um .cpandiretório (posteriormente) inútil .
Chas. Owens
No Ubuntu, você pode simplesmente instalar a cpanminuspartir do terminal. Acho cpanmmelhor do que cpanporque ele não coloca os logs de erros na tela, mas os armazena em arquivos de log temporários e fornece o caminho em caso de erros.
User13107
Estou recebendo este erro ao tentar o seu comando: Não é possível localizar strict.pm em @INC (pode ser necessário instalar o módulo estrito) (@INC contém: / etc / perl
IgorGanapolsky
29
Observo algumas pessoas sugerindo uma execução cpan no sudo. Isso costumava ser necessário para instalar no diretório do sistema, mas as versões modernas do shell do CPAN permitem que você o configure para usar o sudo apenas para instalação. Isso é muito mais seguro, pois significa que os testes não são executados como raiz.
Se você possui um shell CPAN antigo, basta instalar o novo cpan ("install CPAN") e, quando recarregar o shell, ele deverá solicitar que você configure essas novas diretivas.
Atualmente, quando estou em um sistema com um CPAN antigo, a primeira coisa que faço é atualizar o shell e configurá-lo para fazer isso para que eu possa fazer a maior parte do meu trabalho cpan como um usuário normal.
Além disso, eu sugiro fortemente que os usuários do Windows investiguem o Perl de morango . Esta é uma versão do Perl que vem com um shell de CPAN pré-configurado, além de um compilador. Ele também inclui alguns módulos Perl difíceis de compilar com suas dependências externas da biblioteca C, principalmente XML :: Parser. Isso significa que você pode fazer o mesmo que qualquer outro usuário do Perl quando se trata de instalar módulos, e as coisas tendem a "simplesmente funcionar" com muito mais frequência.
@Lao Tzu: não, pois o CPAN é o módulo principal do Perl e não está disponível como pacote DEB separado. Eu acho que na maioria das situações é ainda melhor usar App::cpanminus, é uma alegria usá-lo. Philip Potter sugere isso em sua resposta aqui e você pode tentar este Chas. Owens responde .
semana
25
Se você está no Ubuntu e deseja instalar o módulo perl pré-empacotado (por exemplo, geo :: ipfree), tente o seguinte:
$ apt-cache search perl geo :: ipfree
libgeo-ipfree-perl - Um país de consulta do módulo Perl do endereço IP
$ sudo apt-get install libgeo-ipfree-perl
Algumas pessoas mencionaram o utilitário cpan, mas é mais do que apenas iniciar um shell. Basta fornecer os módulos que você deseja instalar e deixar que funcione.
$prompt> cpan Foo::Bar
Se você não fornecer argumentos, ele iniciará o shell CPAN.pm. Isso funciona no Unix, Mac e deve funcionar bem no Windows (especialmente no Strawberry Perl).
Existem várias outras coisas que você pode fazer com a ferramenta cpan também. Aqui está um resumo dos recursos atuais (que podem ser mais novos que o fornecido com o CPAN.pm e o 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 fez uma boa sugestão . Isso funciona para o Debian também, assim como qualquer outro derivado do Debian. A parte que falta é o que fazer quando a pesquisa do apt-cache não encontrar algo.
Isso lhe dará um pacote deb que você pode instalar para obter o Some :: Random :: Module. Um dos grandes benefícios aqui são as páginas de manual e os scripts de amostra, além do próprio módulo, serão colocados no local de sua distribuição preferido. Se a distro sair com um pacote oficial para uma versão mais recente do Some :: Random :: Module, ela será automaticamente instalada quando você atualizar o apt.
O acima está instalando o "instalador de módulos CPAN de configuração zero" chamado cpanm. (Pode demorar alguns minutos para instalar - não interrompa o processo)
Muitas recomendações para CPAN.pm, o que é ótimo, mas se você estiver usando Perl 5.10, também terá acesso ao CPANPLUS.pmque é semelhante, CPAN.pmmas melhor.
E, é claro, está disponível CPANpara pessoas que ainda usam versões mais antigas do Perl. Por que nao tentar:
Infelizmente, este rendimento: Não é possível localizar CPAN.pm em @INC (pode ser necessário instalar o módulo CPAN) (@INC contém: / etc / perl
IgorGanapolsky
4
No ubuntu, a maioria dos módulos perl já está empacotada; portanto, a instalação é muito mais rápida do que a maioria dos outros sistemas que precisam compilar.
Para instalar Foo::Barem um prompt de comando, por exemplo, geralmente você apenas faz:
sudo apt-get install libfoo-bar-perl
Infelizmente, nem todos os módulos seguem essa convenção de nomenclatura.
Você também pode dizer "$ cpan Foo :: Bar" para instalar diretamente a partir da linha de comando. Não é necessário um one-liner sofisticado ou shell CPAN. :)
Brian d foy
3
No Fedora você pode usar
# yum install foo
desde que o Fedora possua um pacote existente para o módulo.
Em Fedora Linuxou Enterprise Linux, yumtambém faixas perl dependências da biblioteca. Portanto, se o módulo perl estiver disponível e algum pacote rpm exportar essa dependência, ele instalará o pacote certo para você.
yum install 'perl(Chocolate::Belgian)'
(provavelmente pacote perl-Chocolate-belga, ou mesmo pacote ChocolateFactory)
Muitas respostas mencionam o uso do cpanutilitário (que usa CPAN.pm) sem uma palavra sobre segurança. Por padrão, a CPANversão 2.27 e anterior configura urllistpara usar um URL http (ou seja, http://www.cpan.org/ ), que permite ataques MITM, portanto, é inseguro. É o que é usado para baixar os CHECKSUMSarquivos, para que ele precise ser alterado para um URL seguro (por exemplo, https://www.cpan.org/ ).
Portanto, depois de executar o cpan e aceitar a configuração padrão, é necessário modificar o MyConfig.pmarquivo gerado (o caminho completo é gerado) da seguinte maneira. Substituir
'urllist'=>[q[http://www.cpan.org/]],
de
'urllist'=>[q[https://www.cpan.org/]],
Nota: https não é suficiente; você também precisa de um site em que possa confiar. Portanto, tenha cuidado se quiser escolher algum espelho arbitrário.
@DaveEveritt O redirecionamento de http para https é útil apenas para privacidade, por exemplo, contra alguém que pode apenas ver os dados em trânsito na rede. Mas se um invasor controla a rede (por exemplo, um ponto de acesso Wi-Fi público ou alguma rede local não protegida), um ataque do tipo intermediário pode ser possível e o atacante usará seu próprio servidor (obviamente não https://www.cpan.org/).
vinc17 13/04
1
No Windows com a distribuição ActiveState do Perl, use o comando ppm .
Parece que você já recebeu sua resposta, mas imaginei que participaria. Isto é o que faço em alguns scripts em um Ubuntu (ou servidor 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";}}
Isso funciona bem para mim, talvez haja algo aqui que você possa usar.
cpan
.Respostas:
No Unix :
Normalmente você inicia o cpan no seu shell:
# cpan
e tipo
install Chocolate::Belgian
ou em forma abreviada:
cpan Chocolate::Belgian
No Windows :
Exemplo:
# ppm
ppm> search net-smtp
ppm> install Net-SMTP-Multipart
consulte Como instalo os módulos Perl? nas perguntas frequentes do CPAN
Muitas distribuições entregam muitos módulos perl como pacotes.
apt-cache search 'perl$'
pacman -Ss '^perl-'
dev-perl
Você sempre deve preferi-los, pois se beneficia das atualizações automáticas (de segurança) e da facilidade de remoção . Isso pode ser bastante complicado com a própria ferramenta cpan .
Para o Gentoo, existe uma boa ferramenta chamada g-cpan que constrói / instala o módulo a partir do CPAN e cria um pacote Gentoo ( ebuild ) para você.
fonte
ppm
usa hífens-
porque você especifica a distribuição que deseja instalar, o que é muito mais honesto. Por exemplo, se você usacpan
a instalaçãoLWP
,LWP::Simple
ouLWP::UserAgent
ela instalará a distribuiçãolibwww-perl
para você. A maioria das distribuições contém um único módulo com um nome equivalente, mas existem várias exceções como essaExperimente o App :: cpanminus :
É ótimo apenas para instalar coisas. Ele não fornece nenhuma das funcionalidades mais complexas do CPAN ou CPANPLUS, por isso é fácil de usar, desde que você saiba qual módulo deseja instalar. Se você ainda não possui o cpanminus, digite:
para instalá-lo.
Também é possível instalá-lo sem usar o cpan. O procedimento básico de inicialização é,
Para mais informações, acesse a página App :: cpanminus e consulte a seção sobre instalação.
fonte
cpan
para instalarApp::cpanminus
é um pouco estranho. As instruções normais de instalação envolvem um procedimento de inicialização para baixar uma parte do cpanmin.us e usá-lo para instalar o restante. Isso evita a configuraçãocpan
e a criação de um.cpan
diretório (posteriormente) inútil .cpanminus
partir do terminal. Achocpanm
melhor do quecpan
porque ele não coloca os logs de erros na tela, mas os armazena em arquivos de log temporários e fornece o caminho em caso de erros.Observo algumas pessoas sugerindo uma execução cpan no sudo. Isso costumava ser necessário para instalar no diretório do sistema, mas as versões modernas do shell do CPAN permitem que você o configure para usar o sudo apenas para instalação. Isso é muito mais seguro, pois significa que os testes não são executados como raiz.
Se você possui um shell CPAN antigo, basta instalar o novo cpan ("install CPAN") e, quando recarregar o shell, ele deverá solicitar que você configure essas novas diretivas.
Atualmente, quando estou em um sistema com um CPAN antigo, a primeira coisa que faço é atualizar o shell e configurá-lo para fazer isso para que eu possa fazer a maior parte do meu trabalho cpan como um usuário normal.
Além disso, eu sugiro fortemente que os usuários do Windows investiguem o Perl de morango . Esta é uma versão do Perl que vem com um shell de CPAN pré-configurado, além de um compilador. Ele também inclui alguns módulos Perl difíceis de compilar com suas dependências externas da biblioteca C, principalmente XML :: Parser. Isso significa que você pode fazer o mesmo que qualquer outro usuário do Perl quando se trata de instalar módulos, e as coisas tendem a "simplesmente funcionar" com muito mais frequência.
fonte
install CPAN
de onde?$sudo apt-get install cpan
?App::cpanminus
, é uma alegria usá-lo. Philip Potter sugere isso em sua resposta aqui e você pode tentar este Chas. Owens responde .Se você está no Ubuntu e deseja instalar o módulo perl pré-empacotado (por exemplo, geo :: ipfree), tente o seguinte:
fonte
Algumas pessoas mencionaram o utilitário cpan, mas é mais do que apenas iniciar um shell. Basta fornecer os módulos que você deseja instalar e deixar que funcione.
Se você não fornecer argumentos, ele iniciará o shell CPAN.pm. Isso funciona no Unix, Mac e deve funcionar bem no Windows (especialmente no Strawberry Perl).
Existem várias outras coisas que você pode fazer com a ferramenta cpan também. Aqui está um resumo dos recursos atuais (que podem ser mais novos que o fornecido com o CPAN.pm e o perl):
fonte
sudo perl -MCPAN -e 'install Foo'
fonte
Veja também Sim, mesmo você pode usar o CPAN . Ele mostra como você pode usar o CPAN sem ter acesso root ou sudo.
fonte
Otto fez uma boa sugestão . Isso funciona para o Debian também, assim como qualquer outro derivado do Debian. A parte que falta é o que fazer quando a pesquisa do apt-cache não encontrar algo.
Então, sempre que você tiver um módulo aleatório, você deseja instalar:
Isso lhe dará um pacote deb que você pode instalar para obter o Some :: Random :: Module. Um dos grandes benefícios aqui são as páginas de manual e os scripts de amostra, além do próprio módulo, serão colocados no local de sua distribuição preferido. Se a distro sair com um pacote oficial para uma versão mais recente do Some :: Random :: Module, ela será automaticamente instalada quando você atualizar o apt.
fonte
Já respondi e aceitei a resposta - mas mesmo assim:
IMHO, a maneira mais fácil de instalar os módulos CPAN (em sistemas como o Unix e sem ter idéia das maravilhas) é:
O acima está instalando o "instalador de módulos CPAN de configuração zero" chamado
cpanm
. (Pode demorar alguns minutos para instalar - não interrompa o processo)e depois - simplesmente:
fonte
Muitas recomendações para
CPAN.pm
, o que é ótimo, mas se você estiver usandoPerl 5.10
, também terá acesso aoCPANPLUS.pm
que é semelhante,CPAN.pm
mas melhor.E, é claro, está disponível
CPAN
para pessoas que ainda usam versões mais antigas do Perl. Por que nao tentar:fonte
Muitas vezes acontece que o comando cpan install falha com a mensagem "make test retornou um status ruim, não será instalado sem força"
Nesse caso, a seguir é a maneira de instalar o módulo:
fonte
No ubuntu, a maioria dos módulos perl já está empacotada; portanto, a instalação é muito mais rápida do que a maioria dos outros sistemas que precisam compilar.
Para instalar
Foo::Bar
em um prompt de comando, por exemplo, geralmente você apenas faz:Infelizmente, nem todos os módulos seguem essa convenção de nomenclatura.
fonte
Mesmo deve funcionar:
fonte
Use o comando cpan como
cpan Modulename
Para instalar dependências, siga as instruções abaixo
Eu prefiro App :: cpanminus , instala dependências automaticamente. Apenas faça
fonte
2 maneiras que eu conheço:
USANDO PPM:
Com Windows (ActivePerl), usei ppm
na linha de comando, digite ppm. No prompt do ppm ...
ou
para obter uma lista de módulos foo disponíveis. Digite ajuda para todos os comandos
USANDO CPAN:
você também pode usar o CPAN assim ( * nix systems ):
recebe um aviso
no prompt ...
digite h para obter uma lista de comandos para o cpan
fonte
No Fedora você pode usar
desde que o Fedora possua um pacote existente para o módulo.
fonte
Em
Fedora Linux
ouEnterprise Linux
,yum
também faixas perl dependências da biblioteca. Portanto, se o módulo perl estiver disponível e algum pacote rpm exportar essa dependência, ele instalará o pacote certo para você.(provavelmente pacote perl-Chocolate-belga, ou mesmo pacote ChocolateFactory)
fonte
A maneira mais fácil para mim é esta:
a) detecção / resolução / instalação de dependência recursiva automática
b) é um shell onliner, bom para scripts de instalação
fonte
Se você deseja colocar o novo módulo em um local personalizado que seu shell cpan não está configurado para usar, talvez seja útil o seguinte.
fonte
Às vezes, você pode usar o
yum search foo
para pesquisar o módulo perl relativo e usaryum install xxx
para instalar.fonte
Solução segura
Muitas respostas mencionam o uso do
cpan
utilitário (que usaCPAN.pm
) sem uma palavra sobre segurança. Por padrão, aCPAN
versão 2.27 e anterior configuraurllist
para usar um URL http (ou seja, http://www.cpan.org/ ), que permite ataques MITM, portanto, é inseguro. É o que é usado para baixar osCHECKSUMS
arquivos, para que ele precise ser alterado para um URL seguro (por exemplo, https://www.cpan.org/ ).Portanto, depois de executar o cpan e aceitar a configuração padrão, é necessário modificar o
MyConfig.pm
arquivo gerado (o caminho completo é gerado) da seguinte maneira. Substituirde
Nota: https não é suficiente; você também precisa de um site em que possa confiar. Portanto, tenha cuidado se quiser escolher algum espelho arbitrário.
Então você pode usar
cpan
da maneira usual.Meu relatório de erros no site rt.cpan.org sobre o URL não seguro.
fonte
https://www.cpan.org/
).No Windows com a distribuição ActiveState do Perl, use o comando ppm .
fonte
Simplesmente executar
cpan Foo::Bar
no shell serviria ao propósito.fonte
Parece que você já recebeu sua resposta, mas imaginei que participaria. Isto é o que faço em alguns scripts em um Ubuntu (ou servidor debian)
Isso funciona bem para mim, talvez haja algo aqui que você possa usar.
fonte