1POD2::PT_BR::local::libU(s3e)r Contributed Perl DocumentaPtOiDo2n::PT_BR::local::lib(3)
2
3
4

NAME

6       local::lib~[pt_br] - crie e use um diretorio lib/ local para modulos
7       perl com PERL5LIB
8

SINOPSE

10       No codigo -
11
12         use local::lib; # configura um lib local em ~/perl5
13
14         use local::lib '~/foo'; # idem, mas ~/foo
15
16         # Ou...
17         use FindBin;
18         use local::lib "$FindBin::Bin/../suporte";  # bibliotecas de suporte locais a aplicaca~o
19
20       Pela linha de comando (shell) -
21
22         # Instala o LWP e suas dependencias na~o encontradas no diretorio '~/perl5'
23         perl -MCPAN -Mlocal::lib -e 'CPAN::install(LWP)'
24
25         # Apenas exibe alguns comandos uteis para a shell
26         $ perl -Mlocal::lib
27         export PERL_MB_OPT='--install_base /home/username/perl5'
28         export PERL_MM_OPT='INSTALL_BASE=/home/username/perl5'
29         export PERL5LIB='/home/username/perl5/lib/perl5/i386-linux:/home/username/perl5/lib/perl5'
30         export PATH="/home/username/perl5/bin:$PATH"
31
32   A tecnica de 'bootstrapping'
33       Uma forma comum de instalar o local::lib e usando o que e conhecido
34       como tecnica de "bootstrapping". E uma boa abordagem caso seu
35       administrador de sistemas na~o tenha instalado o local::lib. Nesse
36       caso, voce precisara instalar o local::lib em seu diretorio de usuario.
37
38       Caso voce tenha privilegios de administrador, ainda assim devera
39       configurar suas variaveis de ambiente, como discutido no passo 4,
40       abaixo.  Sem elas, voce ainda instalara modulos no CPAN do sistema e
41       seus scripts Perl na~o utilizara~o o caminho para o lib/ que voce
42       definiu com o local::lib.
43
44       Por padra~o, o local::lib instala os modulos do CPAN e a si proprio em
45       ~/perl5.
46
47       Usuarios do Windows devem ler "Diferencas ao usar esse modulo em
48       Win32".
49
50       1. Baixe e descompacte o local::lib do CPAN (procure por "Download" na
51       pagina do CPAN sobre o local::lib). Faca isso como um usuario comum,
52       na~o como root ou administrador. Descompacte o arquivo em seu diretorio
53       de usuario ou em qualquer outro local conveniente.
54
55       2. Execute isso:
56
57         perl Makefile.PL --bootstrap
58
59       Caso o sistema pergunte se deve configurar tudo que puder
60       automaticamente, voce provavelmente deve responder que sim (yes).
61
62       Para instalar o local::lib em um diretorio que na~o o padra~o, voce
63       precisara especifica-lo ao chamar o bootstrap, da seguinte forma:
64
65         perl Makefile.PL --bootstrap=~/foo
66
67       3. Execute isso: (local::lib assume que voce possui o comando 'make'
68       instalado em seu sistema)
69
70         make test && make install
71
72       4. Agora precisamos configurar as variaveis de ambiente apropriadas
73       para que o Perl use nosso recem-criado diretorio lib/. Caso esteja
74       usando bash ou outra shell Bourne, voce pode fazer isso adicionando a
75       seguinte linha em seu script de inicializaca~o da shell:
76
77         echo 'eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)' >>~/.bashrc
78
79       Caso esteja usando a shell C, pode fazer da seguinte forma:
80
81         /bin/csh
82         echo $SHELL
83         /bin/csh
84         perl -I$HOME/perl5/lib/perl5 -Mlocal::lib >> ~/.cshrc
85
86       Caso tenha passado para o bootstrap um diretorio que na~o o padra~o,
87       voce precisara indica-lo na chamada ao local::lib, dessa forma:
88
89         echo 'eval $(perl -I$HOME/foo/lib/perl5 -Mlocal::lib=$HOME/foo)' >>~/.bashrc
90
91       Apos atualizar seu arquivo de configuraca~o da shell, certifique-se de
92       processa-lo novamente para obter as modificaco~es em sua shell atual.
93       Shells Bourne usam ". ~/.bashrc" para isso, enquanto shells C usam
94       "source ~/.cshrc".
95
96       Se estiver em uma maquina lenta ou operando com grandes limitaco~es de
97       espaco em disco, voce pode desativar a geraca~o automatica de manpages
98       a partir do POD ao instalar modulos. Para isso, basta passar o
99       argumento "--no-manpages" durante o bootstrap:
100
101         perl Makefile.PL --bootstrap --no-manpages
102
103       Para evitar ter que fazer varios bootstraps para varios ambientes de
104       modulos Perl na mesma conta de usuario - por exemplo se voce usa o
105       local::lib para desenvolver diferentes aplicativos independentes - voce
106       pode utilizar uma unica instalaca~o bootstrap do local::lib para
107       instalar modulos em diretorios diferentes da seguinte forma:
108
109         cd ~/meudir1
110         perl -Mlocal::lib=./
111         eval $(perl -Mlocal::lib=./)  ### Para configurar o ambiente apenas nessa shell
112         printenv                      ### Veja que o ~/meudir1 esta na PERL5LIB
113         perl -MCPAN -e install ...    ### Os modulos que quiser
114         cd ../meudir2
115         ... REPITA ...
116
117       Para multiplos ambientes destinados a multiplos aplicativos, voce pode
118       precisar incluir uma versa~o modificada das instruco~es de "use
119       FindBin" no exemplo "No codigo" acima. Caso tenha feito algo como o que
120       foi descrito acima, tera um conjunto de modulos Perl em
121       "~/meudir1/lib". Caso tenha um script em
122       "~/meudir1/scripts/meuscript.pl", voce precisara indicar a ele onde
123       encontrar os modulos que instalou para ele em "~/meudir1/lib".
124
125       Em "~/meudir1/scripts/meuscript.pl":
126
127         use strict;
128         use warnings;
129         use local::lib "$FindBin::Bin/..";  ### aponta para ~/meudir1 e o local::lib acha o lib/
130         use lib "$FindBin::Bin/../lib";     ### aponta para ~/meudir1/lib
131
132       Coloque isso antes de qualquer bloco BEGIN { ... } que precise dos
133       modulos instalados.
134
135   Diferencas ao usar esse modulo em Win32
136       Para configurar as variaveis de ambiente apropriadas para sua sessa~o
137       atual do "CMD.exe", voce pode fazer assim:
138
139         C:\>perl -Mlocal::lib
140         set PERL_MB_OPT=--install_base C:\DOCUME~1\ADMINI~1\perl5
141         set PERL_MM_OPT=INSTALL_BASE=C:\DOCUME~1\ADMINI~1\perl5
142         set PERL5LIB=C:\DOCUME~1\ADMINI~1\perl5\lib\perl5;C:\DOCUME~1\ADMINI~1\perl5\lib\perl5\MSWin32-x86-multi-thread
143         set PATH=C:\DOCUME~1\ADMINI~1\perl5\bin;%PATH%
144
145         ### Para configurar o ambiente apenas dessa shell
146         C:\>perl -Mlocal::lib > %TEMP%\tmp.bat && %TEMP%\tmp.bat && del %TEMP%\temp.bat
147         ### em vez de $(perl -Mlocal::lib=./)
148
149       Caso queira que as configuraco~es do ambiente persistam, voce precisara
150       adiciona-las em Painel de Controle -> Sistema, ou usar o
151       App::local::lib::Win32Helper.
152
153       O "~" e transformado no diretorio do perfil do usuario (o diretorio com
154       o nome do usuario dentro de "Documents and Settings" (Windows XP ou
155       anterior) ou "Usuarios" (Windows Vista e mais recentes)) a menos que
156       $ENV{HOME} exista.  Apos isso, o nome do diretorio e encurtado e os
157       subdiretorios sa~o criados (o que significa que o diretorio deve
158       existir).
159

MOTIVACA~O

161       A versa~o de um pacote Perl na sua maquina nem sempre e a que voce
162       precisa.  Obviamente, a melhor coisa a fazer seria atualiza-la para a
163       versa~o desejada.  No entanto, voce pode estar em uma situaca~o que o
164       impede de fazer isso.  Talvez voce na~o tenha privilegios de
165       administrador do sistema; ou talvez esteja usando um sistema de
166       gerenciamento de pacotes como o do Debian, e ainda na~o exista um
167       pacote disponivel na versa~o desejada.
168
169       local::lib resolve esse problema possibilitando a criaca~o de seu
170       proprio diretorio de pacotes Perl obtidos do CPAN (em sistemas
171       multi-usuario, isso normalmente fica dentro do diretorio de seu
172       usuario). A instalaca~o do Perl no sistema permanece inalterada; voce
173       simplesmente chama o Perl com opco~es especiais para que ele use os
174       pacotes em seu diretorio local em vez dos pacotes do sistema. O
175       local::lib organiza as coisas para que verso~es dos pacotes Perl
176       instalados localmente tenham precedencia sobre as do sistema.
177
178       Caso esteja usando um sistema de gerenciamento de pacote (como em
179       sistemas Debian), na~o precisara se preocupar com conflitos entre o
180       Debian e o CPAN.  Sua versa~o local dos pacotes sera instalada em um
181       diretorio completamente diferente das verso~es instaladas pelo
182       gerenciador de pacotes do sistema.
183

DESCRICA~O

185       Este modulo oferece uma forma rapida e conveniente para criar um
186       repositorio de modulos locais ao usuario, dentro do diretorio do mesmo.
187       Ele tambem monta e exibe para o usuario uma lista de variaveis de
188       ambiente utilizando a sintaxe da shell atual do usuario (conforme
189       especificado pela variavel de ambiente "SHELL"), pronta para ser
190       adicionada diretamente no arquivo de configuraca~o da shell.
191
192       Generalizando, o local::lib permite a criaca~o e uso de um diretorio
193       contendo modulos Perl fora do @INC do Perl. Isso facilita a produca~o
194       de aplicaco~es com uma versa~o especifica de determinado modulo, ou
195       coleca~o de modulos.  Tambem e util quando o mantenedor de um modulo
196       na~o aplicou determinado patch que voce precisa para seu aplicativo.
197
198       Durante o "import", o local::lib define valores apropriados para as
199       seguintes variaveis de ambiente:
200
201       PERL_MB_OPT
202       PERL_MM_OPT
203       PERL5LIB
204       PATH
205           valores sera~o anexados ao PATH, em vez de substitui-lo.
206
207       Esses valores sa~o enta~o disponibilizados para referencia por qualquer
208       outro codigo apos o "import".
209

CRIANDO UM CONJUNTO AUTO-CONTIDO DE MODULOS

211       Veja lib::core::only para uma maneira de fazer isso - mas note que ha
212       uma serie de ressalvas na abordagem, e a melhor forma e sempre fazer o
213       'build' contra uma versa~o limpa do perl (i.e. com 'site' e 'vendor' o
214       mais vazios possivel).
215

METODOS

217   ensure_dir_structure_for
218       Argumentos: $caminho_do_diretorio
219       Valor de Retorno: Nenhum
220
221       Tenta criar o caminho fornecido, e todos os diretorios superiores
222       necessarios. Gera uma exceca~o em caso de falha.
223
224   print_environment_vars_for
225       Argumentos: $caminho_do_diretorio
226       Valor de Retorno: Nenhum
227
228       Exibe na saida padra~o as variaveis listadas acima, devidamente
229       ajustadas para utilizar o caminho fornecido como diretorio base.
230
231   build_environment_vars_for
232       Argumentos: $caminho_do_diretorio, $interpolar
233       Valor de Retorno: %variaveis_de_ambiente
234
235       Retorna hash contendo as variaveis de ambiente listadas acima,
236       devidamente ajustadas para utilizar o caminho fornecido como diretorio
237       base.
238
239   setup_env_hash_for
240       Argumentos: $caminho_do_diretorio
241       Valor de Retorno: Nenhum
242
243       Constroi as chaves no %ENV para o caminho fornecido, chamando
244       "build_environment_vars_for".
245
246   install_base_perl_path
247       Argumentos: $caminho_do_diretorio
248       Valor de Retorno: $caminho_base_de_instalacao
249
250       Retorna um caminho de diretorio indicando onde instalar os modulos Perl
251       para essa instalaca~o local de bibliotecas. Adiciona os diretorios
252       "lib" e "perl5" ao final do caminho fornecido.
253
254   install_base_arch_path
255       Argumentos: $caminho_do_diretorio
256       Valor de Retorno: $caminho_base_de_instalacao_arch
257
258       Retorna um caminho de diretorio indicando onde instalar os modulos Perl
259       de arquiteturas especificas para essa instalaca~o local de bibliotecas.
260       Baseia-se no valor de retorno do metodo "install_base_perl_path",
261       adicionando o valor de $Config{archname}.
262
263   install_base_bin_path
264       Argumentos: $caminho_do_diretorio
265       Valor de Retorno: $caminho_base_de_instalacao_bin
266
267       Retorna um caminho de diretorio indicando onde instalar programas
268       executaveis para essa instalaca~o local de bibliotecas. Baseia-se no
269       valor de retorno do metodo "install_base_perl_path", adicionando o
270       diretorio "bin".
271
272   resolve_empty_path
273       Argumentos: $caminho_do_diretorio
274       Valor de Retorno: $caminho_base_de_instalacao
275
276       Cria e retorna o caminho de diretorio raiz em que a instalaca~o local
277       de modulos deve ser feita. O padra~o e "~/perl5".
278
279   resolve_home_path
280       Argumentos: $caminho_do_diretorio
281       Valor de Retorno: $caminho_para_home
282
283       Procura pelo diretorio padra~o (home) do usuario. Caso esteja
284       instalado, utiliza o "File::HomeDir" para isso. Gera uma exceca~o caso
285       na~o encontre resultado definitivo.
286
287   resolve_relative_path
288       Argumentos: $caminho_do_diretorio
289       Valor de Retorno: $caminho_absoluto
290
291       Transforma o caminho fornecido em um caminho absoluto.
292
293   resolve_path
294       Argumentos: $caminho_do_diretorio
295       Valor de Retorno: $caminho_absoluto
296
297       Invoca os seguintes metodos em sequencia, passando o resultado do
298       metodo anterior para o seguinte, na tentativa de descobrir onde
299       configurar o ambiente para a instalaca~o local de bibliotecas:
300       "resolve_empty_path", "resolve_home_path", "resolve_relative_path".
301       Passa o caminho de diretorio fornecido para "resolve_empty_path" que
302       retorna um resultado que e passado para "resolve_home_path", que enta~o
303       tem seu resultado passado para "resolve_relative_path". O resultado
304       dessa chamada final e enta~o retornado pelo "resolve_path".
305

UM AVISO SOBRE UNINST=1

307       Tenha cuidado ao usar o local::lib em conjunto com "make install
308       UNINST=1".  A ideia dessa opca~o e desinstalar a versa~o anterior de um
309       modulo antes de instalar a mais recente. No entanto ela na~o possui uma
310       verificaca~o de seguranca de que a versa~o antiga e a nova referem-se
311       ao mesmo diretorio.  Usada em combinaca~o com o local::lib, voce pode
312       potencialmente apagar uma versa~o globalmente acessivel de um modulo e
313       instalar a versa~o mais nova no diretorio local. Apenas utilize "make
314       install UNINST=1" junto com o local::lib se voce entende essas
315       possiveis consequencias.
316

LIMITACO~ES

318       As ferramentas auxiliares do perl na~o conseguem lidar com nomes de
319       diretorios contendo espacos, enta~o na~o e possivel fazer seu bootstrap
320       do local::lib em um diretorio com espacos. O que voce pode fazer e
321       mover seu local::lib para um diretorio com espacos apos ter instalado
322       todos os modulos dentro dele. Mas esteja ciente que voce na~o podera
323       atualizar ou instalar outros modulos do CPAN nesse diretorio local apos
324       a mudanca.
325
326       A detecca~o da shell e relativamente basica. Neste momento, qualquer
327       coisa com csh no nome sera tratada como a C shell ou compativel, e todo
328       o resto sera tratado como Bourne, exceto em sistemas Win32. Caso a
329       variavel de ambiente "SHELL" na~o esteja disponivel, assumiremos
330       tratar-se de uma shell compativel com a Bourne.
331
332       A tecnica de bootstrap e um hack e usara o CPAN.pm para o
333       ExtUtils::MakeMaker mesmo que voce tenha o CPANPLUS instalado.
334
335       Destroi qualquer valor pre-existente nas variaveis de ambiente
336       PERL5LIB, PERL_MM_OPT e PERL_MB_OPT.
337
338       Provavelmente deveria auto-configurar o CPAN caso isso ainda na~o tenha
339       sido feito.
340
341       Correco~es (patches) sa~o muito bem-vindos para quaisquer dos itens
342       acima.
343
344       Em sistemas Win32, na~o ha uma forma de escrever no registro as
345       variaveis de ambiente criadas, para que elas persistam a uma
346       reinicializaca~o.
347

SOLUCA~O DE PROBLEMAS

349       Se voce configurou o local::lib para instalar modulos do CPAN em algum
350       lugar do seu 'home', e mais tarde tentou instalar um modulo fazendo
351       "cpan -i Foo::Bar", mas ele falhou com um erro como: "Warning: You do
352       not have permissions to install into
353       /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux at
354       /usr/lib64/perl5/5.8.8/Foo/Bar.pm" e em algum lugar no seu log de
355       instalaca~o houver um erro dizendo "'INSTALL_BASE' is not a known
356       MakeMaker parameter name", enta~o voce de alguma forma perdeu seu
357       ExtUtils::MakeMaker atualizado.
358
359       Para remediar a situaca~o, execute novamente o procedimento de
360       bootstrap descrito acima.
361
362       Enta~o, execute "rm -r ~/.cpan/build/Foo-Bar*"
363
364       Finalmente, execute novamente o "cpan -i Foo::Bar" e ele deve instalar
365       sem problemas.
366

AMBIENTE

368       SHELL
369       COMSPEC
370           O local::lib procura pela variavel de ambiente "SHELL" do usuario
371           ao processar e exibir os comandos a serem adicionados no arquivo de
372           configuraca~o da shell.
373
374           Em sistemas Win32, "COMSPEC" tambem sera examinado.
375

SUPORTE

377       IRC:
378
379           Acesse #local-lib em irc.perl.org.
380

AUTOR DA TRADUCA~O

382       Breno G. de Oliveira, "<garu at cpan.org>", apos ter perdido uma aposta
383       para o Getty <http://search.cpan.org/~getty/> durante a Copa de 2010.
384
386       Copyright (c) 2007 - 2010 "AUTHOR" in local::lib e "CONTRIBUTORS" in
387       local::lib do local::lib como listados em local::lib.
388

LICENCA

390       Esta biblioteca e software livre e pode ser distribuida sob os mesmo
391       termos do perl.
392
393
394
395perl v5.16.3                      2013-02-12        POD2::PT_BR::local::lib(3)
Impressum