Pessoal, O perlbrew não ajudaria não?
Porque ele já cuida automagicamente de toda a complicação. Seriam apenas os comandos: $ curl -L http://install.perlbrew.pl | bash $ echo "source ~/perl5/perlbrew/etc/bashrc" >> .bashrc $ perlbrew install perl-5.18.2 $ perlbrew switch perl-5.18.2 $ perlbrew install-cpanm $ cpanm My::Incredible::Module []'s 2014-01-30 Stanislaw Pusep <[email protected]> > Isso mesmo; na primeira vez em que "perl -Mlocal::lib" roda ele cria os > diretórios necessários. Se salvar as variáveis de ambiente, não precisa > rodar nunca mais. > Entretanto, as variáveis serão diferentes para cada usuário. Para melhorar > a automação, basta colocar no final do /etc/profile (sim, o do sistema): > "eval $(perl -Mlocal::lib)". Desse jeito os usuários automagicamente terão > local::lib configurado ao fazer o login :) > > > 2014-01-30 Nicole Scherer <[email protected]> > > Obrigada, Stanislaw! >> >> Então o usuário só precisará rodar o "perl -Mlocal::lib" uma única vez e >> colocar este output no .bashrc ou .profile, certo? Tendo feito isso, ele >> nunca mais precisará invocar o local::lib, ou terá que fazer isto toda vez >> que for instalar novos pacotes? Com as variáveis de ambiente definidas >> ainda preciso do local::lib? >> >> Abraços, >> Nicole >> >> >> >> >> Em Quinta-feira, 30 de Janeiro de 2014 11:06, Stanislaw Pusep < >> [email protected]> escreveu: >> Olá Nicole! O processo que eu descrevi é o de bootstrapping; se o Perl >> do seu /opt/perl já tiver local::lib instalado como root, não precisa dessa >> etapa. >> O que acontece se você rodar "perl -Mlocal::lib"? >> Aqui, por exemplo, aparece: >> >> PATH="/Users/stas/perl5/bin${PATH+:}$PATH"; >> export PATH; >> PERL5LIB="/Users/stas/perl5/lib/perl5${PERL5LIB+:}$PERL5LIB"; >> export PERL5LIB; >> >> PERL_LOCAL_LIB_ROOT="/Users/stas/perl5${PERL_LOCAL_LIB_ROOT+:}$PERL_LOCAL_LIB_ROOT"; >> export PERL_LOCAL_LIB_ROOT; >> PERL_MB_OPT="--install_base \"/Users/stas/perl5\""; >> export PERL_MB_OPT; >> PERL_MM_OPT="INSTALL_BASE=/Users/stas/perl5"; >> export PERL_MM_OPT; >> >> Se você colar o output produzido no seu sistema para o .bashrc/.profile, >> o Perl "se sentirá em casa" no $HOME :) >> O cpanminus é opcional; única coisa absolutamente necessária é que "perl >> -Mlocal::lib" seja rodado para inicializar o $HOME/perl5, e que as >> variáveis de ambiente estejam definidas do jeito que o "perl -Mlocal::lib" >> diz. >> >> >> 2014-01-30 Nicole Scherer <[email protected]> >> >> Obrigada Stanislaw e Aureliano! >> >> Aureliano, a bioinformática está tomada por mulheres :-) Já foste no >> X-Meeting? >> >> Stanislaw, >> >> como gestora do cluster, meu objetivo é deixar para o usuário o sistema >> pronto para que ele possa instalar seus módulos localmente sem ter que >> fazer acrobacias. Eu já instalei o local::lib no sistema como root, então >> não seria necessário que o usuário instalasse novamente, correto? Ou ele >> precisaria fazer sua própria instalação? >> >> Quando o usuário faz sua primeira incursão no cpan e realiza a >> configuração, aparece a seguinte mensagem: >> >> >> --------------------------------------------------------------------------------------------------------------- >> local::lib is installed. You must now add the following environment >> variables >> to your shell configuration files (or registry, if you are on Windows) and >> then restart your command line shell and CPAN before installing modules: >> >> >> Would you like me to append that to /home/hpcst06/.bashrc now? [yes] >> >> >> --------------------------------------------------------------------------------------------------------------- >> >> Porém, como podes ver, o "following environment variables" está vazio e >> nenhuma modificação é feita no .bashrc >> >> Esta etapa é que deveria definir as tais variáveis de ambiente. Não >> entendo por que não está funcionando. >> Desta forma, a única solução seria mesmo acrescentar estas linhas ao >> .profile a força. >> >> Uma opção que tenho é criar toda a árvore de diretórios do perl e do cpan >> e colocar no /etc/skel para ser criada junto com o usuário, mas talvez isso >> seja demais, não? >> >> Qual o objetivo de instalar o App::cpanminus? >> A partir daí o usuário deve usar cpanm ao invés de cpan? >> >> Outra dúvida, se eu não instalar o local::lib nos nós do cluster (só >> instalei no frontend), pode dar problema na hora de executar os programas >> em paralelo? Digo, o local::lib só é chamado na instalação de módulos e na >> configuração do ambiente local, não é usado na execução dos módulos, certo? >> O home do usuário é montado em cada nó durante a execução, então o perl vai >> executar com as variáveis de ambiente já definidas pelo usuário, então não >> vai precisar executar o local::lib, certo? >> >> >> Obrigada pela ajuda! >> >> >> Abraços, >> Nicole >> >> >> Em Quinta-feira, 30 de Janeiro de 2014 8:38, Aureliano Guedes < >> [email protected]> escreveu: >> Caraca. Complexo. >> O melhor, foi ver a pela primeira vez uma mulher na bioinformatica. >> Hello colega bioinformata. >> >> Stanislaw Pusep <[email protected]> escreveu: >> >> Olá Nicole! >> Já passei por situação semelhante à sua, quando não podia atualizar o >> Perl default do sistema e a opção foi instalar um Perl mais atualizado >> avulso no /usr/local. Para sempre usar o Perl do /usr/local, 3 medidas >> foram tomadas: >> >> 1. export PATH=/usr/local/bin:$PATH >> >> 2. Os shebangs de todos os scripts executáveis do projeto foram >> modificados de: >> >> #!/usr/bin/perl >> >> para: >> >> #!/usr/bin/env perl >> >> 3. local::lib foi utilizado para CPAN "desovar" no $HOME. O local::lib >> requer uma intervenção do .profile do sistema, para inicializar o >> environment apropriadamente. Seguem os passos para instalar o local::lib >> dessa forma. >> >> 3.1. Download do local::lib: >> >> $ wget >> http://cpan.metacpan.org/authors/id/H/HA/HAARG/local-lib-2.000004.tar.gz >> $ tar xzvf local-lib-2.000004.tar.gz >> $ cd local-lib-2.000004/ >> >> 3.2. Instalação do local::lib: >> >> $ perl Makefile.PL --bootstrap=$HOME/perl5 >> $ make >> $ make test >> $ make install >> >> 3.3. Ativando local::lib na inicialização da shell (Bash): >> >> $ cat << PROFILE >> $HOME/.profile >> eval \$(perl -I\$HOME/perl5/lib/perl5/ -Mlocal::lib) >> PROFILE >> $ >> >> A idéia aqui é que rodar "perl -I$HOME/perl5/lib/perl5/ -Mlocal::lib" >> retorna para STDOUT as tais das variáveis de ambiente que fazem o Perl >> buscar instalação dos módulos em um lugar específico ($HOME). Pode >> simplesmente colar essas variáveis direto no .profile, ou (como demonstrado >> acima) rodar eval do output do Perl. >> >> 3.4. Carregar a configuração: >> >> . $HOME/.profile >> >> 3.5. Prosseguindo com a configuração/teste do CPAN e do cpanm (essa >> configuração faz as dependências serem instaladas automaticamente): >> >> $ cpan >> >> cpan[1]> o conf prerequisites_policy follow >> cpan[2]> o conf commit >> cpan[3]> install App::cpanminus >> cpan[4]> quit >> >> Boa sorte! >> >> >> 2014-01-29 Nicole Scherer <[email protected]> >> >> Boa tarde, queridos Mongers, >> >> eu não queria importuná-los com problemas simples, mas após três dias >> batendo a cabeça e vasculhando fóruns na internet sem solução para algumas >> das perguntas, recorro a vocês. Vou tentar explicar a novela. >> >> Montamos um cluster HPC para pesquisa usando o Rocks 6.1 ( >> http://www.rocksclusters.org/) -- um tipo de linux que instala outro >> linux em todos os nós do cluster e gerencia tudo isso. Novidade pra mim, >> mas funciona. Esse Rocks instala os chamados Rolls, entre eles o próprio SO >> (neste caso o RHEL6) e outros Rolls úteis, como SGE, Ganglia, Web-Server, >> Bio, Perl (4.14.2) entre outros. Estes Rolls são instalados em /opt/ e as >> vezes coexistem com os binários do SO. Desta forma, tenho duas versões de >> Perl: >> >> - a do sistema (RHEL6): >> $ /usr/bin/perl -v >> This is perl, v5.10.1 (*) built for x86_64-linux-thread-multi >> >> - e a do Rocks: >> $ /opt/perl/bin/perl -v >> This is perl 5, version 14, subversion 2 (v5.14.2) built for >> x86_64-linux-thread-multi >> >> Cada qual com as suas bibliotecas. >> >> @INC: >> /usr/local/lib64/perl5 >> /usr/local/share/perl5 >> /usr/lib64/perl5/vendor_perl >> /usr/share/perl5/vendor_perl >> /usr/lib64/perl5 >> /usr/share/perl5 >> . >> @INC: >> /opt/perl/lib/site_perl/5.14.2/x86_64-linux-thread-multi >> /opt/perl/lib/site_perl/5.14.2 >> /opt/perl/lib/5.14.2/x86_64-linux-thread-multi >> /opt/perl/lib/5.14.2 >> . >> >> >> Agora é que começam meus problemas... >> >> Primeiro: Alguém já teve experiência com duas instalações coexistentes >> de Perl? Posso ter problemas de funcionamento no SO se eu mover o >> /usr/bin/perl e criar um link do /opt/perl/bin/perl para /usr/bin/perl >> (uma vez que as shebang dos scripts costuma ter este endereço). Colocar >> simplesmente /opt/perl/bin no início do $PATH pode não ser a solução. >> >> >> O CPAN só está instalado na versão do Rocks, o que me motiva mais a >> deixá-lo como default. >> Como a maioria dos usuários não terão privilégios de root e além disso, >> qualquer instalação no sistema operacional tem que ser espelhada para todos >> os nós, a melhor opção para instalar pacotes é na home dos usuários, >> concordam? Então eu quero deixar tudo o mais fácil possível para que os >> usuários instalem os pacotes desejados. Como não teremos acesso direto à >> internet usei o minicpan para criar um mirror em uma pasta compartilhada >> com minha máquina local. Configurei o urllist do cpan pra ela e ficou tudo >> ok. >> Agora esbarrei em um problema que não estou achando resposta fácil. >> >> Quando executo o cpan pela primeira vez como usuário comum, da forma >> mais automática possível, ele cria, como esperado o arquivo MyConfig.pm e >> toda a estrutura de diretórios no home do usuário. Ele executa quase tudo >> com perfeição, substituindo o endereço default pelo do usuário em QUASE >> todos os itens, menos em prefs_dir. >> >> [hpcst06@crab ~]$ grep cpan .cpan/CPAN/MyConfig.pm >> 'build_dir' => q[/home/hpcst06/.cpan/build], >> 'cpan_home' => q[/home/hpcst06/.cpan], >> 'histfile' => q[/home/hpcst06/.cpan/histfile], >> 'keep_source_where' => q[/home/hpcst06/.cpan/sources], >> 'prefs_dir' => q[/export/cpan/cpan/prefs], >> >> >> (O default cpan_home é /export/cpan/cpan ) >> [hpcst06@crab ~]$ grep cpan /opt/perl/lib/5.14.2/CPAN/Config.pm >> 'build_dir' => q[/export/cpan/cpan/build], >> 'cpan_home' => q[/export/cpan/cpan], >> 'histfile' => q[/export/cpan/cpan/histfile], >> 'keep_source_where' => q[/export/cpan/cpan/sources], >> 'prefs_dir' => q[/export/cpan/cpan/prefs], >> >> >> Claro que o usuário pode executar >> >o conf prefs_dir /home/hpcst06/.cpan/prefs >> para alterar esta variável, mas concordam que deveria ter sido >> automático. >> Alguém já passou por isto? >> >> Procurei o erro em FirstTime.pm, mas não consegui localizar algo que me >> chamasse a atenção. >> Exatamente igual ao que tenho no Ubuntu, e que funciona normalmente. >> >> >> - Tendo corrigido manualmente o prefs_dir, segui tentando instalar >> localmente algum pacote. >> Aí eu admito uma grande falta de conhecimento da minha parte, mas tentei >> entender o que os tutoriais na internet e fiquei perdida. Devo usar direto >> o cpan? (já que na configuração ele me pergunta se eu quero que use >> local::lib) >> What approach do you want? (Choose 'local::lib', 'sudo' or 'manual') >> [local::lib] >> Ou devo usar sempre >> $ perl -MCPAN -Mlocal::lib -e 'CPAN::install(Acme::Time::Baby)' >> ? >> (tudo bem, posso colocar esta linha no tutorial, vai assustar os >> usuários, mas funciona) >> >> >> - Rodando >> [hpcst06@crab ~]$ perl -MCPAN -Mlocal::lib -e >> 'CPAN::install(Acme::Time::Baby)' >> >> - deu tudo certo. >> [...] >> Result: PASS >> ABIGAIL/Acme-Time-Baby-2010090301.tar.gz >> /usr/bin/make test -- OK >> Running make install >> Prepending >> /home/hpcst06/.cpan/build/Acme-Time-Baby-2010090301-wJGXda/blib/arch >> /home/hpcst06/.cpan/build/Acme-Time-Baby-2010090301-wJGXda/blib/lib to >> PERL5LIB for 'install' >> Installing /home/hpcst06/perl5/lib/perl5/Acme/Time/Baby.pm >> Installing /home/hpcst06/perl5/man/man3/Acme::Time::Baby.3 >> Appending installation info to >> /home/hpcst06/perl5/lib/perl5/x86_64-linux-thread-multi/perllocal.pod >> ABIGAIL/Acme-Time-Baby-2010090301.tar.gz >> /usr/bin/make install -- OK >> >> >> - Agora, tentei instalar o Data::Printer (Oi Breno!) pela mesma >> estratégia e não consegui. Pode ser que não tenha a ver com a estratégia. >> >> Test Summary Report >> ------------------- >> t/05-obj.t (Wstat: 512 Tests: 0 Failed: 0) >> Non-zero exit status: 2 >> Parse errors: No plan found in TAP output >> t/06-obj2.t (Wstat: 512 Tests: 0 Failed: 0) >> Non-zero exit status: 2 >> Parse errors: No plan found in TAP output >> t/07-sort.t (Wstat: 512 Tests: 1 Failed: 0) >> Non-zero exit status: 2 >> Parse errors: No plan found in TAP output >> t/25-weak.t (Wstat: 512 Tests: 8 Failed: 0) >> Non-zero exit status: 2 >> Parse errors: No plan found in TAP output >> Files=54, Tests=258, 4 wallclock secs ( 0.19 usr 0.09 sys + 2.82 cusr >> 0.40 csys = 3.50 CPU) >> Result: FAIL >> Failed 4/54 test programs. 0/258 subtests failed. >> make: *** [test_dynamic] Error 255 >> GARU/Data-Printer-0.35.tar.gz >> /usr/bin/make test -- NOT OK >> //hint// to see the cpan-testers results for installing this module, try: >> reports GARU/Data-Printer-0.35.tar.gz >> Running make install >> make test had returned bad status, won't install without force >> >> >> >> Desculpem a postagem tão longa. Acabei até solucionando algumas outras >> dúvidas enquanto tentava descrevê-las aqui. >> >> Abraços a todos, >> Nicole Scherer >> >> >> >> _______________________________________________ >> Rio-pm mailing list >> [email protected] >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> >> _______________________________________________ >> Rio-pm mailing list >> [email protected] >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> _______________________________________________ >> Rio-pm mailing list >> [email protected] >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> >> _______________________________________________ >> Rio-pm mailing list >> [email protected] >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> >> >> >> _______________________________________________ >> Rio-pm mailing list >> [email protected] >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > _______________________________________________ > Rio-pm mailing list > [email protected] > http://mail.pm.org/mailman/listinfo/rio-pm >
_______________________________________________ Rio-pm mailing list [email protected] http://mail.pm.org/mailman/listinfo/rio-pm
