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 diretório lib/ local para módulos
7       perl com PERL5LIB
8

SINOPSE

10       No código -
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 à aplicação
19
20       Pela linha de comando (shell) -
21
22         # Instala o LWP e suas dependências não encontradas no diretório '~/perl5'
23         perl -MCPAN -Mlocal::lib -e 'CPAN::install(LWP)'
24
25         # Apenas exibe alguns comandos úteis 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 técnica de 'bootstrapping'
33       Uma forma comum de instalar o local::lib é usando o que é conhecido
34       como técnica de "bootstrapping". É uma boa abordagem caso seu
35       administrador de sistemas não tenha instalado o local::lib. Nesse caso,
36       você precisará 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,
40       abaixo.  Sem elas, você ainda instalará módulos no CPAN do sistema e
41       seus scripts Perl não utilizarão o caminho para o lib/ que você definiu
42       com o local::lib.
43
44       Por padrão, o local::lib instala os módulos do CPAN e a si próprio em
45       ~/perl5.
46
47       Usuários do Windows devem ler "Diferenças ao usar esse módulo em
48       Win32".
49
50       1. Baixe e descompacte o local::lib do CPAN (procure por "Download" na
51       página do CPAN sobre o local::lib). Faça isso como um usuário comum,
52       não como root ou administrador. Descompacte o arquivo em seu diretório
53       de usuário 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, você provavelmente deve responder que sim (yes).
61
62       Para instalar o local::lib em um diretório que não o padrão, você
63       precisará especificá-lo ao chamar o bootstrap, da seguinte forma:
64
65         perl Makefile.PL --bootstrap=~/foo
66
67       3. Execute isso: (local::lib assume que você possui o comando 'make'
68       instalado em seu sistema)
69
70         make test && make install
71
72       4. Agora precisamos configurar as variáveis de ambiente apropriadas
73       para que o Perl use nosso recém-criado diretório lib/. Caso esteja
74       usando bash ou outra shell Bourne, você pode fazer isso adicionando a
75       seguinte linha em seu script de inicializaçã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 diretório que não o padrão, você
87       precisará indicá-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       Após atualizar seu arquivo de configuração da shell, certifique-se de
92       processá-lo novamente para obter as modificaçõ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 máquina lenta ou operando com grandes limitações de
97       espaço em disco, você pode desativar a geração automática de manpages a
98       partir do POD ao instalar módulos. Para isso, basta passar o argumento
99       "--no-manpages" durante o bootstrap:
100
101         perl Makefile.PL --bootstrap --no-manpages
102
103       Para evitar ter que fazer vários bootstraps para vários ambientes de
104       módulos Perl na mesma conta de usuário - por exemplo se você usa o
105       local::lib para desenvolver diferentes aplicativos independentes - você
106       pode utilizar uma única instalação bootstrap do local::lib para
107       instalar módulos em diretórios 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 está na PERL5LIB
113         perl -MCPAN -e install ...    ### Os módulos que quiser
114         cd ../meudir2
115         ... REPITA ...
116
117       Para múltiplos ambientes destinados a múltiplos aplicativos, você pode
118       precisar incluir uma versão modificada das instruções de "use FindBin"
119       no exemplo "No código" acima. Caso tenha feito algo como o que foi
120       descrito acima, terá um conjunto de módulos Perl em "~/meudir1/lib".
121       Caso tenha um script em "~/meudir1/scripts/meuscript.pl", você
122       precisará indicar a ele onde encontrar os módulos que instalou para ele
123       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       módulos instalados.
134
135   Diferenças ao usar esse módulo em Win32
136       Para configurar as variáveis de ambiente apropriadas para sua sessão
137       atual do "CMD.exe", você 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 configurações do ambiente persistam, você precisará
150       adicioná-las em Painel de Controle -> Sistema, ou usar o
151       App::local::lib::Win32Helper.
152
153       O "~" é transformado no diretório do perfil do usuário (o diretório com
154       o nome do usuário dentro de "Documents and Settings" (Windows XP ou
155       anterior) ou "Usuários" (Windows Vista e mais recentes)) a menos que
156       $ENV{HOME} exista.  Após isso, o nome do diretório é encurtado e os
157       subdiretórios são criados (o que significa que o diretório deve
158       existir).
159

MOTIVAÇÃO

161       A versão de um pacote Perl na sua máquina nem sempre é a que você
162       precisa.  Obviamente, a melhor coisa a fazer seria atualizá-la para a
163       versão desejada.  No entanto, você pode estar em uma situação que o
164       impede de fazer isso.  Talvez você não tenha privilégios de
165       administrador do sistema; ou talvez esteja usando um sistema de
166       gerenciamento de pacotes como o do Debian, e ainda não exista um pacote
167       disponível na versão desejada.
168
169       local::lib resolve esse problema possibilitando a criação de seu
170       próprio diretório de pacotes Perl obtidos do CPAN (em sistemas
171       multi-usuário, isso normalmente fica dentro do diretório de seu
172       usuário). A instalação do Perl no sistema permanece inalterada; você
173       simplesmente chama o Perl com opções especiais para que ele use os
174       pacotes em seu diretório local em vez dos pacotes do sistema. O
175       local::lib organiza as coisas para que versões dos pacotes Perl
176       instalados localmente tenham precedência sobre as do sistema.
177
178       Caso esteja usando um sistema de gerenciamento de pacote (como em
179       sistemas Debian), não precisará se preocupar com conflitos entre o
180       Debian e o CPAN.  Sua versão local dos pacotes será instalada em um
181       diretório completamente diferente das versões instaladas pelo
182       gerenciador de pacotes do sistema.
183

DESCRIÇÃO

185       Este módulo oferece uma forma rápida e conveniente para criar um
186       repositório de módulos locais ao usuário, dentro do diretório do mesmo.
187       Ele também monta e exibe para o usuário uma lista de variáveis de
188       ambiente utilizando a sintaxe da shell atual do usuário (conforme
189       especificado pela variável de ambiente "SHELL"), pronta para ser
190       adicionada diretamente no arquivo de configuração da shell.
191
192       Generalizando, o local::lib permite a criação e uso de um diretório
193       contendo módulos Perl fora do @INC do Perl. Isso facilita a produção de
194       aplicações com uma versão específica de determinado módulo, ou coleção
195       de módulos.  Também é útil quando o mantenedor de um módulo não aplicou
196       determinado patch que você precisa para seu aplicativo.
197
198       Durante o "import", o local::lib define valores apropriados para as
199       seguintes variáveis de ambiente:
200
201       PERL_MB_OPT
202       PERL_MM_OPT
203       PERL5LIB
204       PATH
205           valores serão anexados ao PATH, em vez de substituí-lo.
206
207       Esses valores são então disponibilizados para referência por qualquer
208       outro código após o "import".
209

CRIANDO UM CONJUNTO AUTO-CONTIDO DE MÓDULOS

211       Veja lib::core::only para uma maneira de fazer isso - mas note que há
212       uma série de ressalvas na abordagem, e a melhor forma é sempre fazer o
213       'build' contra uma versão limpa do perl (i.e. com 'site' e 'vendor' o
214       mais vazios possível).
215

MÉTODOS

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 diretórios superiores
222       necessários. Gera uma exceçã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 saída padrão as variáveis listadas acima, devidamente
229       ajustadas para utilizar o caminho fornecido como diretório 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 variáveis de ambiente listadas acima,
236       devidamente ajustadas para utilizar o caminho fornecido como diretório
237       base.
238
239   setup_env_hash_for
240       Argumentos: $caminho_do_diretorio
241       Valor de Retorno: Nenhum
242
243       Constrói 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 diretório indicando onde instalar os módulos Perl
251       para essa instalação local de bibliotecas. Adiciona os diretórios "lib"
252       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 diretório indicando onde instalar os módulos Perl
259       de arquiteturas específicas para essa instalação local de bibliotecas.
260       Baseia-se no valor de retorno do método "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 diretório indicando onde instalar programas
268       executáveis para essa instalação local de bibliotecas. Baseia-se no
269       valor de retorno do método "install_base_perl_path", adicionando o
270       diretório "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 diretório raiz em que a instalação local de
277       módulos deve ser feita. O padrão é "~/perl5".
278
279   resolve_home_path
280       Argumentos: $caminho_do_diretorio
281       Valor de Retorno: $caminho_para_home
282
283       Procura pelo diretório padrão (home) do usuário. Caso esteja instalado,
284       utiliza o "File::HomeDir" para isso. Gera uma exceção caso não encontre
285       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 métodos em sequência, passando o resultado do
298       método anterior para o seguinte, na tentativa de descobrir onde
299       configurar o ambiente para a instalação local de bibliotecas:
300       "resolve_empty_path", "resolve_home_path", "resolve_relative_path".
301       Passa o caminho de diretório fornecido para "resolve_empty_path" que
302       retorna um resultado que é passado para "resolve_home_path", que então
303       tem seu resultado passado para "resolve_relative_path". O resultado
304       dessa chamada final é entã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 idéia dessa opção é desinstalar a versão anterior de um
309       módulo antes de instalar a mais recente. No entanto ela não possui uma
310       verificação de segurança de que a versão antiga e a nova referem-se ao
311       mesmo diretório.  Usada em combinação com o local::lib, você pode
312       potencialmente apagar uma versão globalmente acessível de um módulo e
313       instalar a versão mais nova no diretório local. Apenas utilize "make
314       install UNINST=1" junto com o local::lib se você entende essas
315       possíveis consequências.
316

LIMITAÇÕES

318       As ferramentas auxiliares do perl não conseguem lidar com nomes de
319       diretórios contendo espaços, então não é possível fazer seu bootstrap
320       do local::lib em um diretório com espaços. O que você pode fazer é
321       mover seu local::lib para um diretório com espaços após ter instalado
322       todos os módulos dentro dele. Mas esteja ciente que você não poderá
323       atualizar ou instalar outros módulos do CPAN nesse diretório local após
324       a mudança.
325
326       A detecção da shell é relativamente básica. Neste momento, qualquer
327       coisa com csh no nome será tratada como a C shell ou compatível, e todo
328       o resto será tratado como Bourne, exceto em sistemas Win32. Caso a
329       variável de ambiente "SHELL" não esteja disponível, assumiremos tratar-
330       se de uma shell compatível com a Bourne.
331
332       A técnica de bootstrap é um hack e usará o CPAN.pm para o
333       ExtUtils::MakeMaker mesmo que você tenha o CPANPLUS instalado.
334
335       Destrói qualquer valor pré-existente nas variáveis de ambiente
336       PERL5LIB, PERL_MM_OPT e PERL_MB_OPT.
337
338       Provavelmente deveria auto-configurar o CPAN caso isso ainda não tenha
339       sido feito.
340
341       Correções (patches) são muito bem-vindos para quaisquer dos itens
342       acima.
343
344       Em sistemas Win32, não há uma forma de escrever no registro as
345       variáveis de ambiente criadas, para que elas persistam a uma
346       reinicialização.
347

SOLUÇÃO DE PROBLEMAS

349       Se você configurou o local::lib para instalar módulos do CPAN em algum
350       lugar do seu 'home', e mais tarde tentou instalar um módulo 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       instalação houver um erro dizendo "'INSTALL_BASE' is not a known
356       MakeMaker parameter name", então você de alguma forma perdeu seu
357       ExtUtils::MakeMaker atualizado.
358
359       Para remediar a situação, execute novamente o procedimento de bootstrap
360       descrito acima.
361
362       Entã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 variável de ambiente "SHELL" do usuário
371           ao processar e exibir os comandos a serem adicionados no arquivo de
372           configuração da shell.
373
374           Em sistemas Win32, "COMSPEC" também será examinado.
375

SUPORTE

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

AUTOR DA TRADUÇÃO

382       Breno G. de Oliveira, "<garu at cpan.org>", após 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

LICENÇA

390       Esta biblioteca é software livre e pode ser distribuída sob os mesmo
391       termos do perl.
392
393
394
395perl v5.32.1                      2021-01-27        POD2::PT_BR::local::lib(3)
Impressum