Dependendo da sua distribuição, muitos módulos perl podem já estar empacotados.
Antes de usar o CPAN, verifique se alguns / mais / todos os pacotes necessários ainda não estão disponíveis para sua distro.
Eu fui desembarcado com o trabalho de documentar como instalar um aplicativo muito complicado em um servidor limpo. Parte do aplicativo requer muitos scripts perl, cada um dos quais parece requerer muitos módulos perl diferentes.
Eu não sei muito sobre o perl, e só conheço uma maneira de instalar os módulos necessários. Isso significa que minha documentação agora parece assim:
Type each of these commands and accept all the defaults:
sudo perl -MCPAN -e 'install JSON' sudo perl -MCPAN -e 'install Date::Simple' sudo perl -MCPAN -e 'install Log::Log4perl' sudo perl -MCPAN -e 'install Email::Simple' (.... continues for 2 more pages... )
Existe alguma maneira que eu possa fazer toda essa linha como eu posso com aptidão, ou seja,
Type the following command and go get a coffee:
sudo aptitude install openssh-server libapache2-mod-perl2 build-essential ...
Obrigado (em nome das pessoas que sofrem muito tempo e que lerão meu documento)
EDIT: A melhor maneira de fazer isso é usar as versões empacotadas. Para os módulos que não foram empacotados para o Ubuntu 10.10, acabei com um pequeno script em Perl que encontrei aqui )
#!/usr/bin/perl -w
use CPANPLUS;
use strict;
CPANPLUS::Backend->new( conf => { prereqs => 1 } )->install(
modules => [ qw(
Date::Simple
File::Slurp
LWP::Simple
MIME::Base64
MIME::Parser
MIME::QuotedPrint
) ]
);
Isso significa que posso colocar um bom folheto no meu documento:
sudo perl installmodules.pl
Eu descobri que o CPAN é menos que ideal para sistemas de longa duração, já que atualizar módulos com o passar do tempo parece ser menos do que ideal.
Eu recomendaria usar o sistema integrado de gerenciamento de pacotes do seu sistema. Ao usar um repositório específico de distribuição, você deve ter menos problemas com dependências e, à medida que os módulos forem atualizados, você receberá as novas versões também. Já que você parece estar usando o Ubuntu, você pode precisar habilitar alguns dos repositórios extras como o mundo, ou metaverse, ou uber-ultra-intraverse.
Falhando nisso, existe um site relativamente novo chamado Linux Packages Search , que tenta compilar pacotes para todos os tipos de sistemas. Eu tive sorte em encontrar qualquer pacote extra que eu precisasse, se não estivesse disponível em nenhum outro lugar.
Se você precisar fazer uma instalação de origem desses módulos (como eu frequentemente preciso, já que eu os instalo como um usuário não-root em um local diferente do padrão do sistema) eu recomendo o CPANPLUS como uma atualização que vale a pena CPAN padrão - ele lida com a resolução de dependências e pode instalar automaticamente todas as dependências de um módulo enquanto você toma um café.
Além disso, se este grande aplicativo complicado que você está instalando também for distribuído no CPAN (vou adivinhar que é RT, o pesadelo de dependência perl preferido de todos), geralmente há um pacote Bundle::AppName
no CPAN também, que acumula tudo o que é necessário para uma determinada versão do aplicativo.
Espero que ajude; boa sorte!
Eu criaria um módulo de estilo de tarefa que agrupasse todas as suas listagens de dependência em um módulo de estilo CPAN. Dessa forma, você pode usar ferramentas cpan padrão para gerenciá-lo. Por exemplo, aqui está um pacote que costumo usar (plugue sem vergonha)
Você provavelmente poderia simplesmente pegar algo assim e modificar conforme necessário.
Considere também o uso de local :: lib em vez do caminho de inclusão global perl. Dessa forma, você obtém melhor gerenciamento de seus deps e não precisa de root. Aqui está um link para um livro bom e gratuito que cobre isso (entre outras coisas)
use a função do sistema e use & & operador após cada instalação do módulo como
system("sudo apt-get install 1 && sudo apt-get install 2 &&....");
Tags perl