[Rio-pm] Configuração de usuário não root no cpan & Perl Roll em Rocks Cluster

Aureliano Guedes guedes_1000 em hotmail.com
Quinta Janeiro 30 09:12:37 PST 2014


Nicole, nunca fui no x-meeting, mas gostaria. Agora se voce fala que a bioinfo esta lotada de mulher, amem senhor, mande umas pra goiania. Hahaha.
Eu tbm sou paranoico quanto a modificar o perl do sistema. Eu prefiro o perlbrew. Apesar de que 2 de 5 vezes que configurei o perlbrew deu problema.
Mas essa taxa da erro de configuracai do perlbrew de 40% e compativel com minha taxa de erros por falta da atencao na hora de programar.

Tiago Peczenyj <tiago.peczenyj em gmail.com> escreveu:

eu não gosto de alterar o perl do sistema.

mas posso estar sendo paranoico.


2014-01-30 Nicole Scherer <bionica2007-perl em yahoo.com>

> Oi Blabos,
>
> Pelo que entendi, o perlbrew (que deve ser fabuloso) cuida de novas
> instalações, tanto locais, quando no sistema, caso seja de interesse do
> admin.
> No meu caso específico, já tenho uma outra versão de perl, instalada pelo
> Rocks em /opt/perl e disponível para todos os nós do cluster. Esse "Perl
> Roll" já vem com alguns módulos especiais para cluster e para
> bioinformática, e também vem com o CPAN, que o do sistema não vem. O meu
> objetivo é preparar o cluster de tal forma, que os usuários possam utilizar
> esta versão bombada do Perl sem ter que brigar comigo :-)
> Minha primeira ideia era colocar o /opt/perl/bin no início do $PATH de
> todo mundo, forçando para ser o perl padrão, mas fiquei com receio de que
> algum programa do sistema RHEL6 dependesse da instalação do fabricante.
> Estou nesse dilema porque é uma máquina de uso compartilhado. Tenho receio
> de colocar no $PATH e o usuário ter problemas porque os scripts que usa tem
> shebang #!/usr/bin/perl e sejam chamados como executáveis. (Em
> bioinfomática usamos muitos scripts feitos por terceiros).
> Claro que se o usuário quiser usar o perlbrew, ele pode, mas não poderá
> usar o curl para fazer isto, pois a máquina está configurada para não
> acessar a internet. Para o CPAN criei um mirror local.
>
> Sei lá, devo estar fazendo tempestade em copo d'água. Tenho é que deixar
> tudo isso bem claro no guia do usuário e deixar que eles decidam.
>
> Obrigada!!!
> Nicole
>
>
>
>   Em Quinta-feira, 30 de Janeiro de 2014 12:12, Blabos de Blebe <
> blabos em gmail.com> escreveu:
>  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 <creaktive em gmail.com>
>
> 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 <bionica2007-perl em yahoo.com>
>
> 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 <
> creaktive em gmail.com> 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 <bionica2007-perl em yahoo.com>
>
> 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 <
> guedes_1000 em hotmail.com> escreveu:
>   Caraca. Complexo.
> O melhor, foi ver a pela primeira vez uma mulher na bioinformatica.
> Hello colega bioinformata.
>
> Stanislaw Pusep <creaktive em gmail.com> 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 <bionica2007-perl em yahoo.com>
>
>          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 em 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 em 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 em 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
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
>
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
>
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
>
>
>
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
>
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
>
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
>
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>



--
Tiago B. Peczenyj
Linux User #405772

http://about.me/peczenyj
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20140130/af8b8022/attachment-0001.html>
-------------- Próxima Parte ----------
_______________________________________________
Rio-pm mailing list
Rio-pm em pm.org
http://mail.pm.org/mailman/listinfo/rio-pm


Mais detalhes sobre a lista de discussão Rio-pm