whitespace cleanup
[p5sagit/local-lib.git] / lib / POD2 / PT_BR / local / lib.pod
1 =encoding utf8
2
3 =head1 NAME
4
5 local::lib~[pt_br] - crie e use um diretório lib/ local para módulos perl com PERL5LIB
6
7 =head1 SINOPSE
8
9 No código -
10
11   use local::lib; # configura um lib local em ~/perl5
12
13   use local::lib '~/foo'; # idem, mas ~/foo
14
15   # Ou...
16   use FindBin;
17   use local::lib "$FindBin::Bin/../suporte";  # bibliotecas de suporte locais à aplicação
18
19 Pela linha de comando (shell) -
20
21   # Instala o LWP e suas dependências não encontradas no diretório '~/perl5'
22   perl -MCPAN -Mlocal::lib -e 'CPAN::install(LWP)'
23
24   # Apenas exibe alguns comandos úteis para a shell
25   $ perl -Mlocal::lib
26   export PERL_MB_OPT='--install_base /home/username/perl5'
27   export PERL_MM_OPT='INSTALL_BASE=/home/username/perl5'
28   export PERL5LIB='/home/username/perl5/lib/perl5/i386-linux:/home/username/perl5/lib/perl5'
29   export PATH="/home/username/perl5/bin:$PATH"
30
31 =head2 A técnica de 'bootstrapping'
32
33 Uma forma comum de instalar o local::lib é usando o que é conhecido como
34 técnica de "bootstrapping". É uma boa abordagem caso seu administrador de
35 sistemas não tenha instalado o local::lib. Nesse caso, você precisará
36 instalar o local::lib em seu diretório de usuário.
37
38 Caso você tenha privilégios de administrador, ainda assim deverá
39 configurar suas variáveis de ambiente, como discutido no passo 4, abaixo.
40 Sem elas, você ainda instalará módulos no CPAN do sistema e seus scripts
41 Perl não utilizarão o caminho para o lib/ que você definiu com o local::lib.
42
43 Por padrão, o local::lib instala os módulos do CPAN e a si próprio em ~/perl5.
44
45 Usuários do Windows devem ler L</Diferenças ao usar esse módulo em Win32>.
46
47 1. Baixe e descompacte o local::lib do CPAN (procure por "Download" na página
48 do CPAN sobre o local::lib). Faça isso como um usuário comum, não como root
49 ou administrador. Descompacte o arquivo em seu diretório de usuário ou em
50 qualquer outro local conveniente.
51
52 2. Execute isso:
53
54   perl Makefile.PL --bootstrap
55
56 Caso o sistema pergunte se deve configurar tudo que puder automaticamente,
57 você provavelmente deve responder que sim (yes).
58
59 Para instalar o local::lib em um diretório que não o padrão, você precisará
60 especificá-lo ao chamar o bootstrap, da seguinte forma:
61
62   perl Makefile.PL --bootstrap=~/foo
63
64 3. Execute isso: (local::lib assume que você possui o comando 'make'
65 instalado em seu sistema)
66
67   make test && make install
68
69 4. Agora precisamos configurar as variáveis de ambiente apropriadas para
70 que o Perl use nosso recém-criado diretório lib/. Caso esteja usando bash
71 ou outra shell Bourne, você pode fazer isso adicionando a seguinte linha
72 em seu script de inicialização da shell:
73
74   echo 'eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)' >>~/.bashrc
75
76 Caso esteja usando a shell C, pode fazer da seguinte forma:
77
78   /bin/csh
79   echo $SHELL
80   /bin/csh
81   perl -I$HOME/perl5/lib/perl5 -Mlocal::lib >> ~/.cshrc
82
83 Caso tenha passado para o bootstrap um diretório que não o padrão, você
84 precisará indicá-lo na chamada ao local::lib, dessa forma:
85
86   echo 'eval $(perl -I$HOME/foo/lib/perl5 -Mlocal::lib=$HOME/foo)' >>~/.bashrc
87
88 Após atualizar seu arquivo de configuração da shell, certifique-se de
89 processá-lo novamente para obter as modificações em sua shell atual.
90 Shells Bourne usam C<. ~/.bashrc> para isso, enquanto shells C
91 usam C<source ~/.cshrc>.
92
93 Se estiver em uma máquina lenta ou operando com grandes limitações de
94 espaço em disco, você pode desativar a geração automática de manpages a
95 partir do POD ao instalar módulos. Para isso, basta passar o argumento
96 C<--no-manpages> durante o bootstrap:
97
98   perl Makefile.PL --bootstrap --no-manpages
99
100 Para evitar ter que fazer vários bootstraps para vários ambientes de
101 módulos Perl na mesma conta de usuário - por exemplo se você usa o
102 local::lib para desenvolver diferentes aplicativos independentes -
103 você pode utilizar uma única instalação bootstrap do local::lib para
104 instalar módulos em diretórios diferentes da seguinte forma:
105
106   cd ~/meudir1
107   perl -Mlocal::lib=./
108   eval $(perl -Mlocal::lib=./)  ### Para configurar o ambiente apenas nessa shell
109   printenv                      ### Veja que o ~/meudir1 está na PERL5LIB
110   perl -MCPAN -e install ...    ### Os módulos que quiser
111   cd ../meudir2
112   ... REPITA ...
113
114 Para múltiplos ambientes destinados a múltiplos aplicativos, você pode
115 precisar incluir uma versão modificada das instruções de C<< use FindBin >>
116 no exemplo "No código" acima. Caso tenha feito algo como o que foi descrito
117 acima, terá um conjunto de módulos Perl em C<< ~/meudir1/lib >>. Caso
118 tenha um script em C<< ~/meudir1/scripts/meuscript.pl >>, você precisará
119 indicar a ele onde encontrar os módulos que instalou para ele
120 em C<< ~/meudir1/lib >>.
121
122 Em C<< ~/meudir1/scripts/meuscript.pl >>:
123
124   use strict;
125   use warnings;
126   use local::lib "$FindBin::Bin/..";  ### aponta para ~/meudir1 e o local::lib acha o lib/
127   use lib "$FindBin::Bin/../lib";     ### aponta para ~/meudir1/lib
128
129 Coloque isso antes de qualquer bloco BEGIN { ... } que precise dos módulos instalados.
130
131 =head2 Diferenças ao usar esse módulo em Win32
132
133 Para configurar as variáveis de ambiente apropriadas para sua sessão atual
134 do C<CMD.exe>, você pode fazer assim:
135
136   C:\>perl -Mlocal::lib
137   set PERL_MB_OPT=--install_base C:\DOCUME~1\ADMINI~1\perl5
138   set PERL_MM_OPT=INSTALL_BASE=C:\DOCUME~1\ADMINI~1\perl5
139   set PERL5LIB=C:\DOCUME~1\ADMINI~1\perl5\lib\perl5;C:\DOCUME~1\ADMINI~1\perl5\lib\perl5\MSWin32-x86-multi-thread
140   set PATH=C:\DOCUME~1\ADMINI~1\perl5\bin;%PATH%
141
142   ### Para configurar o ambiente apenas dessa shell
143   C:\>perl -Mlocal::lib > %TEMP%\tmp.bat && %TEMP%\tmp.bat && del %TEMP%\temp.bat
144   ### em vez de $(perl -Mlocal::lib=./)
145
146 Caso queira que as configurações do ambiente persistam, você precisará
147 adicioná-las em Painel de Controle -> Sistema, ou usar o L<App::local::lib::Win32Helper>.
148
149 O "~" é transformado no diretório do perfil do usuário (o diretório com o
150 nome do usuário dentro de "Documents and Settings" (Windows XP ou anterior)
151 ou "Usuários" (Windows Vista e mais recentes)) a menos que $ENV{HOME} exista.
152 Após isso, o nome do diretório é encurtado e os subdiretórios são criados
153 (o que significa que o diretório deve existir).
154
155 =head1 MOTIVAÇÃO
156
157 A versão de um pacote Perl na sua máquina nem sempre é a que você precisa.
158 Obviamente, a melhor coisa a fazer seria atualizá-la para a versão desejada.
159 No entanto, você pode estar em uma situação que o impede de fazer isso.
160 Talvez você não tenha privilégios de administrador do sistema; ou talvez
161 esteja usando um sistema de gerenciamento de pacotes como o do Debian,
162 e ainda não exista um pacote disponível na versão desejada.
163
164 local::lib resolve esse problema possibilitando a criação de seu próprio
165 diretório de pacotes Perl obtidos do CPAN (em sistemas multi-usuário, isso
166 normalmente fica dentro do diretório de seu usuário). A instalação do Perl
167 no sistema permanece inalterada; você simplesmente chama o Perl com opções
168 especiais para que ele use os pacotes em seu diretório local em vez dos
169 pacotes do sistema. O local::lib organiza as coisas para que versões dos
170 pacotes Perl instalados localmente tenham precedência sobre as do sistema.
171
172 Caso esteja usando um sistema de gerenciamento de pacote (como em sistemas
173 Debian), não precisará se preocupar com conflitos entre o Debian e o CPAN.
174 Sua versão local dos pacotes será instalada em um diretório completamente
175 diferente das versões instaladas pelo gerenciador de pacotes do sistema.
176
177 =head1 DESCRIÇÃO
178
179 Este módulo oferece uma forma rápida e conveniente para criar um repositório
180 de módulos locais ao usuário, dentro do diretório do mesmo. Ele também monta
181 e exibe para o usuário uma lista de variáveis de ambiente utilizando a
182 sintaxe da shell atual do usuário (conforme especificado pela variável
183 de ambiente C<SHELL>), pronta para ser adicionada diretamente no arquivo
184 de configuração da shell.
185
186 Generalizando, o local::lib permite a criação e uso de um diretório contendo
187 módulos Perl fora do C<@INC> do Perl. Isso facilita a produção de aplicações
188 com uma versão específica de determinado módulo, ou coleção de módulos.
189 Também é útil quando o mantenedor de um módulo não aplicou determinado patch
190 que você precisa para seu aplicativo.
191
192 Durante o C<import>, o local::lib define valores apropriados para as
193 seguintes variáveis de ambiente:
194
195 =over 4
196
197 =item PERL_MB_OPT
198
199 =item PERL_MM_OPT
200
201 =item PERL5LIB
202
203 =item PATH
204
205 valores serão anexados ao PATH, em vez de substituí-lo.
206
207 =back
208
209 Esses valores são então disponibilizados para referência por qualquer
210 outro código após o C<import>.
211
212 =head1 CRIANDO UM CONJUNTO AUTO-CONTIDO DE MÓDULOS
213
214 Veja L<lib::core::only|lib::core::only> para uma maneira de fazer isso - mas
215 note que há uma série de ressalvas na abordagem, e a melhor forma é sempre
216 fazer o 'build' contra uma versão limpa do perl (i.e. com 'site' e 'vendor'
217 o mais vazios possível).
218
219 =head1 MÉTODOS
220
221 =head2 ensure_dir_structure_for
222
223 =over 4
224
225 =item Argumentos: $caminho_do_diretorio
226
227 =item Valor de Retorno: Nenhum
228
229 =back
230
231 Tenta criar o caminho fornecido, e todos os diretórios superiores necessários. Gera uma exceção em caso de falha.
232
233 =head2 print_environment_vars_for
234
235 =over 4
236
237 =item Argumentos: $caminho_do_diretorio
238
239 =item Valor de Retorno: Nenhum
240
241 =back
242
243 Exibe na saída padrão as variáveis listadas acima, devidamente ajustadas
244 para utilizar o caminho fornecido como diretório base.
245
246 =head2 build_environment_vars_for
247
248 =over 4
249
250 =item Argumentos: $caminho_do_diretorio, $interpolar
251
252 =item Valor de Retorno: %variaveis_de_ambiente
253
254 =back
255
256 Retorna hash contendo as variáveis de ambiente listadas acima, devidamente
257 ajustadas para utilizar o caminho fornecido como diretório base.
258
259 =head2 setup_env_hash_for
260
261 =over 4
262
263 =item Argumentos: $caminho_do_diretorio
264
265 =item Valor de Retorno: Nenhum
266
267 =back
268
269 Constrói as chaves no C<%ENV> para o caminho fornecido, chamando
270 C<build_environment_vars_for>.
271
272 =head2 install_base_perl_path
273
274 =over 4
275
276 =item Argumentos: $caminho_do_diretorio
277
278 =item Valor de Retorno: $caminho_base_de_instalacao
279
280 =back
281
282 Retorna um caminho de diretório indicando onde instalar os módulos Perl
283 para essa instalação local de bibliotecas. Adiciona os diretórios C<lib>
284 e C<perl5> ao final do caminho fornecido.
285
286 =head2 install_base_arch_path
287
288 =over 4
289
290 =item Argumentos: $caminho_do_diretorio
291
292 =item Valor de Retorno: $caminho_base_de_instalacao_arch
293
294 =back
295
296 Retorna um caminho de diretório indicando onde instalar os módulos Perl
297 de arquiteturas específicas para essa instalação local de bibliotecas.
298 Baseia-se no valor de retorno do método L</install_base_perl_path>,
299 adicionando o valor de C<$Config{archname}>.
300
301 =head2 install_base_bin_path
302
303 =over 4
304
305 =item Argumentos: $caminho_do_diretorio
306
307 =item Valor de Retorno: $caminho_base_de_instalacao_bin
308
309 =back
310
311 Retorna um caminho de diretório indicando onde instalar programas executáveis
312 para essa instalação local de bibliotecas. Baseia-se no valor de retorno do
313 método L</install_base_perl_path>, adicionando o diretório C<bin>.
314
315 =head2 resolve_empty_path
316
317 =over 4
318
319 =item Argumentos: $caminho_do_diretorio
320
321 =item Valor de Retorno: $caminho_base_de_instalacao
322
323 =back
324
325 Cria e retorna o caminho de diretório raiz em que a instalação local de
326 módulos deve ser feita. O padrão é C<~/perl5>.
327
328 =head2 resolve_home_path
329
330 =over 4
331
332 =item Argumentos: $caminho_do_diretorio
333
334 =item Valor de Retorno: $caminho_para_home
335
336 =back
337
338 Procura pelo diretório padrão (home) do usuário. Caso esteja instalado,
339 utiliza o C<File::HomeDir> para isso. Gera uma exceção caso não encontre
340 resultado definitivo.
341
342 =head2 resolve_relative_path
343
344 =over 4
345
346 =item Argumentos: $caminho_do_diretorio
347
348 =item Valor de Retorno: $caminho_absoluto
349
350 =back
351
352 Transforma o caminho fornecido em um caminho absoluto.
353
354 =head2 resolve_path
355
356 =over 4
357
358 =item Argumentos: $caminho_do_diretorio
359
360 =item Valor de Retorno: $caminho_absoluto
361
362 =back
363
364 Invoca os seguintes métodos em sequência, passando o resultado do método
365 anterior para o seguinte, na tentativa de descobrir onde configurar o
366 ambiente para a instalação local de bibliotecas: L</resolve_empty_path>,
367 L</resolve_home_path>, L</resolve_relative_path>. Passa o caminho de
368 diretório fornecido para L</resolve_empty_path> que retorna um resultado
369 que é passado para L</resolve_home_path>, que então tem seu resultado
370 passado para L</resolve_relative_path>. O resultado dessa chamada final
371 é então retornado pelo L</resolve_path>.
372
373 =head1 UM AVISO SOBRE UNINST=1
374
375 Tenha cuidado ao usar o local::lib em conjunto com "make install UNINST=1".
376 A idéia dessa opção é desinstalar a versão anterior de um módulo antes de
377 instalar a mais recente. No entanto ela não possui uma verificação de
378 segurança de que a versão antiga e a nova referem-se ao mesmo diretório.
379 Usada em combinação com o local::lib, você pode potencialmente apagar uma
380 versão globalmente acessível de um módulo e instalar a versão mais nova
381 no diretório local. Apenas utilize "make install UNINST=1" junto com o
382 local::lib se você entende essas possíveis consequências.
383
384 =head1 LIMITAÇÕES
385
386 As ferramentas auxiliares do perl não conseguem lidar com nomes de
387 diretórios contendo espaços, então não é possível fazer seu bootstrap
388 do local::lib em um diretório com espaços. O que você pode fazer é mover
389 seu local::lib para um diretório com espaços B<após> ter instalado todos
390 os módulos dentro dele. Mas esteja ciente que você não poderá atualizar
391 ou instalar outros módulos do CPAN nesse diretório local após a mudança.
392
393 A detecção da shell é relativamente básica. Neste momento, qualquer coisa
394 com csh no nome será tratada como a C shell ou compatível, e todo o resto
395 será tratado como Bourne, exceto em sistemas Win32. Caso a variável de
396 ambiente C<SHELL> não esteja disponível, assumiremos tratar-se de uma
397 shell compatível com a Bourne.
398
399 A técnica de bootstrap é um hack e usará o CPAN.pm para o ExtUtils::MakeMaker
400 mesmo que você tenha o CPANPLUS instalado.
401
402 Destrói qualquer valor pré-existente nas variáveis de ambiente PERL5LIB,
403 PERL_MM_OPT e PERL_MB_OPT.
404
405 Provavelmente deveria auto-configurar o CPAN caso isso ainda não tenha
406 sido feito.
407
408 Correções (patches) são muito bem-vindos para quaisquer dos itens acima.
409
410 Em sistemas Win32, não há uma forma de escrever no registro as variáveis
411 de ambiente criadas, para que elas persistam a uma reinicialização.
412
413 =head1 SOLUÇÃO DE PROBLEMAS
414
415 Se você configurou o local::lib para instalar módulos do CPAN em algum lugar
416 do seu 'home', e mais tarde tentou instalar um módulo fazendo C<cpan -i
417 Foo::Bar>, mas ele falhou com um erro como: C<Warning: You do not have
418 permissions to install into /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux at
419 /usr/lib64/perl5/5.8.8/Foo/Bar.pm> e em algum lugar no seu log de instalação
420 houver um erro dizendo C<'INSTALL_BASE' is not a known MakeMaker parameter
421 name>, então você de alguma forma perdeu seu ExtUtils::MakeMaker atualizado.
422
423 Para remediar a situação, execute novamente o procedimento de bootstrap
424 descrito acima.
425
426 Então, execute C<rm -r ~/.cpan/build/Foo-Bar*>
427
428 Finalmente, execute novamente o C<cpan -i Foo::Bar> e ele deve instalar
429 sem problemas.
430
431 =head1 AMBIENTE
432
433 =over 4
434
435 =item SHELL
436
437 =item COMSPEC
438
439 O local::lib procura pela variável de ambiente C<SHELL> do usuário ao
440 processar e exibir os comandos a serem adicionados no arquivo de
441 configuração da shell.
442
443 Em sistemas Win32, C<COMSPEC> também será examinado.
444
445 =back
446
447 =head1 SUPORTE
448
449 IRC:
450
451     Acesse #local-lib em irc.perl.org.
452
453 =head1 AUTOR DA TRADUÇÃO
454
455 Breno G. de Oliveira, C<< <garu at cpan.org> >>, após ter perdido uma aposta
456 para o L<Getty|http://search.cpan.org/~getty/> durante a Copa de 2010.
457
458
459 =head1 COPYRIGHT
460
461 Copyright (c) 2007 - 2010 L<local::lib/"AUTHOR">
462 e L<local::lib/"CONTRIBUTORS"> do local::lib como listados em L<local::lib>.
463
464 =head1 LICENÇA
465
466 Esta biblioteca é software livre e pode ser distribuída sob os mesmo termos
467 do perl.
468