.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.13)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\" ========================================================================
.\"
.IX Title "POD2::PT_BR::local::lib 3"
.TH POD2::PT_BR::local::lib 3 "2014-01-20" "perl v5.10.1" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
local::lib~[pt_br] \- crie e use um diretório lib/ local para módulos perl com PERL5LIB
.SH "SINOPSE"
.IX Header "SINOPSE"
No código \-
.PP
.Vb 1
\& use local::lib; # configura um lib local em ~/perl5
\&
\& use local::lib \*(Aq~/foo\*(Aq; # idem, mas ~/foo
\&
\& # Ou...
\& use FindBin;
\& use local::lib "$FindBin::Bin/../suporte"; # bibliotecas de suporte locais à aplicação
.Ve
.PP
Pela linha de comando (shell) \-
.PP
.Vb 2
\& # Instala o LWP e suas dependências não encontradas no diretório \*(Aq~/perl5\*(Aq
\& perl \-MCPAN \-Mlocal::lib \-e \*(AqCPAN::install(LWP)\*(Aq
\&
\& # Apenas exibe alguns comandos úteis para a shell
\& $ perl \-Mlocal::lib
\& export PERL_MB_OPT=\*(Aq\-\-install_base /home/username/perl5\*(Aq
\& export PERL_MM_OPT=\*(AqINSTALL_BASE=/home/username/perl5\*(Aq
\& export PERL5LIB=\*(Aq/home/username/perl5/lib/perl5/i386\-linux:/home/username/perl5/lib/perl5\*(Aq
\& export PATH="/home/username/perl5/bin:$PATH"
.Ve
.SS "A técnica de 'bootstrapping'"
.IX Subsection "A técnica de 'bootstrapping'"
Uma forma comum de instalar o local::lib é usando o que é conhecido como
técnica de \*(L"bootstrapping\*(R". É uma boa abordagem caso seu administrador de
sistemas não tenha instalado o local::lib. Nesse caso, você precisará
instalar o local::lib em seu diretório de usuário.
.PP
Caso você tenha privilégios de administrador, ainda assim deverá
configurar suas variáveis de ambiente, como discutido no passo 4, abaixo.
Sem elas, você ainda instalará módulos no \s-1CPAN\s0 do sistema e seus scripts
Perl não utilizarão o caminho para o lib/ que você definiu com o local::lib.
.PP
Por padrão, o local::lib instala os módulos do \s-1CPAN\s0 e a si próprio em ~/perl5.
.PP
Usuários do Windows devem ler \*(L"Diferenças ao usar esse módulo em Win32\*(R".
.PP
1. Baixe e descompacte o local::lib do \s-1CPAN\s0 (procure por \*(L"Download\*(R" na página
do \s-1CPAN\s0 sobre o local::lib). Faça isso como um usuário comum, não como root
ou administrador. Descompacte o arquivo em seu diretório de usuário ou em
qualquer outro local conveniente.
.PP
2. Execute isso:
.PP
.Vb 1
\& perl Makefile.PL \-\-bootstrap
.Ve
.PP
Caso o sistema pergunte se deve configurar tudo que puder automaticamente,
você provavelmente deve responder que sim (yes).
.PP
Para instalar o local::lib em um diretório que não o padrão, você precisará
especificá\-lo ao chamar o bootstrap, da seguinte forma:
.PP
.Vb 1
\& perl Makefile.PL \-\-bootstrap=~/foo
.Ve
.PP
3. Execute isso: (local::lib assume que você possui o comando 'make'
instalado em seu sistema)
.PP
.Vb 1
\& make test && make install
.Ve
.PP
4. Agora precisamos configurar as variáveis de ambiente apropriadas para
que o Perl use nosso recém\-criado diretório lib/. Caso esteja usando bash
ou outra shell Bourne, você pode fazer isso adicionando a seguinte linha
em seu script de inicialização da shell:
.PP
.Vb 1
\& echo \*(Aqeval $(perl \-I$HOME/perl5/lib/perl5 \-Mlocal::lib)\*(Aq >>~/.bashrc
.Ve
.PP
Caso esteja usando a shell C, pode fazer da seguinte forma:
.PP
.Vb 4
\& /bin/csh
\& echo $SHELL
\& /bin/csh
\& perl \-I$HOME/perl5/lib/perl5 \-Mlocal::lib >> ~/.cshrc
.Ve
.PP
Caso tenha passado para o bootstrap um diretório que não o padrão, você
precisará indicá\-lo na chamada ao local::lib, dessa forma:
.PP
.Vb 1
\& echo \*(Aqeval $(perl \-I$HOME/foo/lib/perl5 \-Mlocal::lib=$HOME/foo)\*(Aq >>~/.bashrc
.Ve
.PP
Após atualizar seu arquivo de configuração da shell, certifique-se de
processá\-lo novamente para obter as modificações em sua shell atual.
Shells Bourne usam \f(CW\*(C`. ~/.bashrc\*(C'\fR para isso, enquanto shells C
usam \f(CW\*(C`source ~/.cshrc\*(C'\fR.
.PP
Se estiver em uma máquina lenta ou operando com grandes limitações de
espaço em disco, você pode desativar a geração automática de manpages a
partir do \s-1POD\s0 ao instalar módulos. Para isso, basta passar o argumento
\&\f(CW\*(C`\-\-no\-manpages\*(C'\fR durante o bootstrap:
.PP
.Vb 1
\& perl Makefile.PL \-\-bootstrap \-\-no\-manpages
.Ve
.PP
Para evitar ter que fazer vários bootstraps para vários ambientes de
módulos Perl na mesma conta de usuário \- por exemplo se você usa o
local::lib para desenvolver diferentes aplicativos independentes \-
você pode utilizar uma única instalação bootstrap do local::lib para
instalar módulos em diretórios diferentes da seguinte forma:
.PP
.Vb 7
\& cd ~/meudir1
\& perl \-Mlocal::lib=./
\& eval $(perl \-Mlocal::lib=./) ### Para configurar o ambiente apenas nessa shell
\& printenv ### Veja que o ~/meudir1 está na PERL5LIB
\& perl \-MCPAN \-e install ... ### Os módulos que quiser
\& cd ../meudir2
\& ... REPITA ...
.Ve
.PP
Para múltiplos ambientes destinados a múltiplos aplicativos, você pode
precisar incluir uma versão modificada das instruções de \f(CW\*(C`use FindBin\*(C'\fR
no exemplo \*(L"No código\*(R" acima. Caso tenha feito algo como o que foi descrito
acima, terá um conjunto de módulos Perl em \f(CW\*(C`~/meudir1/lib\*(C'\fR. Caso
tenha um script em \f(CW\*(C`~/meudir1/scripts/meuscript.pl\*(C'\fR, você precisará
indicar a ele onde encontrar os módulos que instalou para ele
em \f(CW\*(C`~/meudir1/lib\*(C'\fR.
.PP
Em \f(CW\*(C`~/meudir1/scripts/meuscript.pl\*(C'\fR:
.PP
.Vb 4
\& use strict;
\& use warnings;
\& use local::lib "$FindBin::Bin/.."; ### aponta para ~/meudir1 e o local::lib acha o lib/
\& use lib "$FindBin::Bin/../lib"; ### aponta para ~/meudir1/lib
.Ve
.PP
Coloque isso antes de qualquer bloco \s-1BEGIN\s0 { ... } que precise dos módulos instalados.
.SS "Diferenças ao usar esse módulo em Win32"
.IX Subsection "Diferenças ao usar esse módulo em Win32"
Para configurar as variáveis de ambiente apropriadas para sua sessão atual
do \f(CW\*(C`CMD.exe\*(C'\fR, você pode fazer assim:
.PP
.Vb 5
\& C:\e>perl \-Mlocal::lib
\& set PERL_MB_OPT=\-\-install_base C:\eDOCUME~1\eADMINI~1\eperl5
\& set PERL_MM_OPT=INSTALL_BASE=C:\eDOCUME~1\eADMINI~1\eperl5
\& set PERL5LIB=C:\eDOCUME~1\eADMINI~1\eperl5\elib\eperl5;C:\eDOCUME~1\eADMINI~1\eperl5\elib\eperl5\eMSWin32\-x86\-multi\-thread
\& set PATH=C:\eDOCUME~1\eADMINI~1\eperl5\ebin;%PATH%
\&
\& ### Para configurar o ambiente apenas dessa shell
\& C:\e>perl \-Mlocal::lib > %TEMP%\etmp.bat && %TEMP%\etmp.bat && del %TEMP%\etemp.bat
\& ### em vez de $(perl \-Mlocal::lib=./)
.Ve
.PP
Caso queira que as configurações do ambiente persistam, você precisará
adicioná\-las em Painel de Controle \-> Sistema, ou usar o App::local::lib::Win32Helper.
.PP
O \*(L"~\*(R" é transformado no diretório do perfil do usuário (o diretório com o
nome do usuário dentro de \*(L"Documents and Settings\*(R" (Windows \s-1XP\s0 ou anterior)
ou \*(L"Usuários\*(R" (Windows Vista e mais recentes)) a menos que \f(CW$ENV\fR{\s-1HOME\s0} exista.
Após isso, o nome do diretório é encurtado e os subdiretórios são criados
(o que significa que o diretório deve existir).
.SH "MOTIVAÇÃO"
.IX Header "MOTIVAÇÃO"
A versão de um pacote Perl na sua máquina nem sempre é a que você precisa.
Obviamente, a melhor coisa a fazer seria atualizá\-la para a versão desejada.
No entanto, você pode estar em uma situação que o impede de fazer isso.
Talvez você não tenha privilégios de administrador do sistema; ou talvez
esteja usando um sistema de gerenciamento de pacotes como o do Debian,
e ainda não exista um pacote disponível na versão desejada.
.PP
local::lib resolve esse problema possibilitando a criação de seu próprio
diretório de pacotes Perl obtidos do \s-1CPAN\s0 (em sistemas multi\-usuário, isso
normalmente fica dentro do diretório de seu usuário). A instalação do Perl
no sistema permanece inalterada; você simplesmente chama o Perl com opções
especiais para que ele use os pacotes em seu diretório local em vez dos
pacotes do sistema. O local::lib organiza as coisas para que versões dos
pacotes Perl instalados localmente tenham precedência sobre as do sistema.
.PP
Caso esteja usando um sistema de gerenciamento de pacote (como em sistemas
Debian), não precisará se preocupar com conflitos entre o Debian e o \s-1CPAN\s0.
Sua versão local dos pacotes será instalada em um diretório completamente
diferente das versões instaladas pelo gerenciador de pacotes do sistema.
.SH "DESCRIÇÃO"
.IX Header "DESCRIÇÃO"
Este módulo oferece uma forma rápida e conveniente para criar um repositório
de módulos locais ao usuário, dentro do diretório do mesmo. Ele também monta
e exibe para o usuário uma lista de variáveis de ambiente utilizando a
sintaxe da shell atual do usuário (conforme especificado pela variável
de ambiente \f(CW\*(C`SHELL\*(C'\fR), pronta para ser adicionada diretamente no arquivo
de configuração da shell.
.PP
Generalizando, o local::lib permite a criação e uso de um diretório contendo
módulos Perl fora do \f(CW@INC\fR do Perl. Isso facilita a produção de aplicações
com uma versão específica de determinado módulo, ou coleção de módulos.
Também é útil quando o mantenedor de um módulo não aplicou determinado patch
que você precisa para seu aplicativo.
.PP
Durante o \f(CW\*(C`import\*(C'\fR, o local::lib define valores apropriados para as
seguintes variáveis de ambiente:
.IP "\s-1PERL_MB_OPT\s0" 4
.IX Item "PERL_MB_OPT"
.PD 0
.IP "\s-1PERL_MM_OPT\s0" 4
.IX Item "PERL_MM_OPT"
.IP "\s-1PERL5LIB\s0" 4
.IX Item "PERL5LIB"
.IP "\s-1PATH\s0" 4
.IX Item "PATH"
.PD
valores serão anexados ao \s-1PATH\s0, em vez de substituí\-lo.
.PP
Esses valores são então disponibilizados para referência por qualquer
outro código após o \f(CW\*(C`import\*(C'\fR.
.SH "CRIANDO UM CONJUNTO AUTO-CONTIDO DE MÓDULOS"
.IX Header "CRIANDO UM CONJUNTO AUTO-CONTIDO DE MÓDULOS"
Veja lib::core::only para uma maneira de fazer isso \- mas
note que há uma série de ressalvas na abordagem, e a melhor forma é sempre
fazer o 'build' contra uma versão limpa do perl (i.e. com 'site' e 'vendor'
o mais vazios possível).
.SH "MÉTODOS"
.IX Header "MÉTODOS"
.SS "ensure_dir_structure_for"
.IX Subsection "ensure_dir_structure_for"
.ie n .IP "Argumentos: $caminho_do_diretorio" 4
.el .IP "Argumentos: \f(CW$caminho_do_diretorio\fR" 4
.IX Item "Argumentos: $caminho_do_diretorio"
.PD 0
.IP "Valor de Retorno: Nenhum" 4
.IX Item "Valor de Retorno: Nenhum"
.PD
.PP
Tenta criar o caminho fornecido, e todos os diretórios superiores necessários. Gera uma exceção em caso de falha.
.SS "print_environment_vars_for"
.IX Subsection "print_environment_vars_for"
.ie n .IP "Argumentos: $caminho_do_diretorio" 4
.el .IP "Argumentos: \f(CW$caminho_do_diretorio\fR" 4
.IX Item "Argumentos: $caminho_do_diretorio"
.PD 0
.IP "Valor de Retorno: Nenhum" 4
.IX Item "Valor de Retorno: Nenhum"
.PD
.PP
Exibe na saída padrão as variáveis listadas acima, devidamente ajustadas
para utilizar o caminho fornecido como diretório base.
.SS "build_environment_vars_for"
.IX Subsection "build_environment_vars_for"
.ie n .IP "Argumentos: $caminho_do_diretorio, $interpolar" 4
.el .IP "Argumentos: \f(CW$caminho_do_diretorio\fR, \f(CW$interpolar\fR" 4
.IX Item "Argumentos: $caminho_do_diretorio, $interpolar"
.PD 0
.ie n .IP "Valor de Retorno: %variaveis_de_ambiente" 4
.el .IP "Valor de Retorno: \f(CW%variaveis_de_ambiente\fR" 4
.IX Item "Valor de Retorno: %variaveis_de_ambiente"
.PD
.PP
Retorna hash contendo as variáveis de ambiente listadas acima, devidamente
ajustadas para utilizar o caminho fornecido como diretório base.
.SS "setup_env_hash_for"
.IX Subsection "setup_env_hash_for"
.ie n .IP "Argumentos: $caminho_do_diretorio" 4
.el .IP "Argumentos: \f(CW$caminho_do_diretorio\fR" 4
.IX Item "Argumentos: $caminho_do_diretorio"
.PD 0
.IP "Valor de Retorno: Nenhum" 4
.IX Item "Valor de Retorno: Nenhum"
.PD
.PP
Constrói as chaves no \f(CW%ENV\fR para o caminho fornecido, chamando
\&\f(CW\*(C`build_environment_vars_for\*(C'\fR.
.SS "install_base_perl_path"
.IX Subsection "install_base_perl_path"
.ie n .IP "Argumentos: $caminho_do_diretorio" 4
.el .IP "Argumentos: \f(CW$caminho_do_diretorio\fR" 4
.IX Item "Argumentos: $caminho_do_diretorio"
.PD 0
.ie n .IP "Valor de Retorno: $caminho_base_de_instalacao" 4
.el .IP "Valor de Retorno: \f(CW$caminho_base_de_instalacao\fR" 4
.IX Item "Valor de Retorno: $caminho_base_de_instalacao"
.PD
.PP
Retorna um caminho de diretório indicando onde instalar os módulos Perl
para essa instalação local de bibliotecas. Adiciona os diretórios \f(CW\*(C`lib\*(C'\fR
e \f(CW\*(C`perl5\*(C'\fR ao final do caminho fornecido.
.SS "install_base_arch_path"
.IX Subsection "install_base_arch_path"
.ie n .IP "Argumentos: $caminho_do_diretorio" 4
.el .IP "Argumentos: \f(CW$caminho_do_diretorio\fR" 4
.IX Item "Argumentos: $caminho_do_diretorio"
.PD 0
.ie n .IP "Valor de Retorno: $caminho_base_de_instalacao_arch" 4
.el .IP "Valor de Retorno: \f(CW$caminho_base_de_instalacao_arch\fR" 4
.IX Item "Valor de Retorno: $caminho_base_de_instalacao_arch"
.PD
.PP
Retorna um caminho de diretório indicando onde instalar os módulos Perl
de arquiteturas específicas para essa instalação local de bibliotecas.
Baseia-se no valor de retorno do método \*(L"install_base_perl_path\*(R",
adicionando o valor de \f(CW$Config{archname}\fR.
.SS "install_base_bin_path"
.IX Subsection "install_base_bin_path"
.ie n .IP "Argumentos: $caminho_do_diretorio" 4
.el .IP "Argumentos: \f(CW$caminho_do_diretorio\fR" 4
.IX Item "Argumentos: $caminho_do_diretorio"
.PD 0
.ie n .IP "Valor de Retorno: $caminho_base_de_instalacao_bin" 4
.el .IP "Valor de Retorno: \f(CW$caminho_base_de_instalacao_bin\fR" 4
.IX Item "Valor de Retorno: $caminho_base_de_instalacao_bin"
.PD
.PP
Retorna um caminho de diretório indicando onde instalar programas executáveis
para essa instalação local de bibliotecas. Baseia-se no valor de retorno do
método \*(L"install_base_perl_path\*(R", adicionando o diretório \f(CW\*(C`bin\*(C'\fR.
.SS "resolve_empty_path"
.IX Subsection "resolve_empty_path"
.ie n .IP "Argumentos: $caminho_do_diretorio" 4
.el .IP "Argumentos: \f(CW$caminho_do_diretorio\fR" 4
.IX Item "Argumentos: $caminho_do_diretorio"
.PD 0
.ie n .IP "Valor de Retorno: $caminho_base_de_instalacao" 4
.el .IP "Valor de Retorno: \f(CW$caminho_base_de_instalacao\fR" 4
.IX Item "Valor de Retorno: $caminho_base_de_instalacao"
.PD
.PP
Cria e retorna o caminho de diretório raiz em que a instalação local de
módulos deve ser feita. O padrão é \f(CW\*(C`~/perl5\*(C'\fR.
.SS "resolve_home_path"
.IX Subsection "resolve_home_path"
.ie n .IP "Argumentos: $caminho_do_diretorio" 4
.el .IP "Argumentos: \f(CW$caminho_do_diretorio\fR" 4
.IX Item "Argumentos: $caminho_do_diretorio"
.PD 0
.ie n .IP "Valor de Retorno: $caminho_para_home" 4
.el .IP "Valor de Retorno: \f(CW$caminho_para_home\fR" 4
.IX Item "Valor de Retorno: $caminho_para_home"
.PD
.PP
Procura pelo diretório padrão (home) do usuário. Caso esteja instalado,
utiliza o \f(CW\*(C`File::HomeDir\*(C'\fR para isso. Gera uma exceção caso não encontre
resultado definitivo.
.SS "resolve_relative_path"
.IX Subsection "resolve_relative_path"
.ie n .IP "Argumentos: $caminho_do_diretorio" 4
.el .IP "Argumentos: \f(CW$caminho_do_diretorio\fR" 4
.IX Item "Argumentos: $caminho_do_diretorio"
.PD 0
.ie n .IP "Valor de Retorno: $caminho_absoluto" 4
.el .IP "Valor de Retorno: \f(CW$caminho_absoluto\fR" 4
.IX Item "Valor de Retorno: $caminho_absoluto"
.PD
.PP
Transforma o caminho fornecido em um caminho absoluto.
.SS "resolve_path"
.IX Subsection "resolve_path"
.ie n .IP "Argumentos: $caminho_do_diretorio" 4
.el .IP "Argumentos: \f(CW$caminho_do_diretorio\fR" 4
.IX Item "Argumentos: $caminho_do_diretorio"
.PD 0
.ie n .IP "Valor de Retorno: $caminho_absoluto" 4
.el .IP "Valor de Retorno: \f(CW$caminho_absoluto\fR" 4
.IX Item "Valor de Retorno: $caminho_absoluto"
.PD
.PP
Invoca os seguintes métodos em sequência, passando o resultado do método
anterior para o seguinte, na tentativa de descobrir onde configurar o
ambiente para a instalação local de bibliotecas: \*(L"resolve_empty_path\*(R",
\&\*(L"resolve_home_path\*(R", \*(L"resolve_relative_path\*(R". Passa o caminho de
diretório fornecido para \*(L"resolve_empty_path\*(R" que retorna um resultado
que é passado para \*(L"resolve_home_path\*(R", que então tem seu resultado
passado para \*(L"resolve_relative_path\*(R". O resultado dessa chamada final
é então retornado pelo \*(L"resolve_path\*(R".
.SH "UM AVISO SOBRE UNINST=1"
.IX Header "UM AVISO SOBRE UNINST=1"
Tenha cuidado ao usar o local::lib em conjunto com \*(L"make install UNINST=1\*(R".
A idéia dessa opção é desinstalar a versão anterior de um módulo antes de
instalar a mais recente. No entanto ela não possui uma verificação de
segurança de que a versão antiga e a nova referem-se ao mesmo diretório.
Usada em combinação com o local::lib, você pode potencialmente apagar uma
versão globalmente acessível de um módulo e instalar a versão mais nova
no diretório local. Apenas utilize \*(L"make install UNINST=1\*(R" junto com o
local::lib se você entende essas possíveis consequências.
.SH "LIMITAÇÕES"
.IX Header "LIMITAÇÕES"
As ferramentas auxiliares do perl não conseguem lidar com nomes de
diretórios contendo espaços, então não é possível fazer seu bootstrap
do local::lib em um diretório com espaços. O que você pode fazer é mover
seu local::lib para um diretório com espaços \fBapós\fR ter instalado todos
os módulos dentro dele. Mas esteja ciente que você não poderá atualizar
ou instalar outros módulos do \s-1CPAN\s0 nesse diretório local após a mudança.
.PP
A detecção da shell é relativamente básica. Neste momento, qualquer coisa
com csh no nome será tratada como a C shell ou compatível, e todo o resto
será tratado como Bourne, exceto em sistemas Win32. Caso a variável de
ambiente \f(CW\*(C`SHELL\*(C'\fR não esteja disponível, assumiremos tratar-se de uma
shell compatível com a Bourne.
.PP
A técnica de bootstrap é um hack e usará o \s-1CPAN\s0.pm para o ExtUtils::MakeMaker
mesmo que você tenha o \s-1CPANPLUS\s0 instalado.
.PP
Destrói qualquer valor pré\-existente nas variáveis de ambiente \s-1PERL5LIB\s0,
\&\s-1PERL_MM_OPT\s0 e \s-1PERL_MB_OPT\s0.
.PP
Provavelmente deveria auto-configurar o \s-1CPAN\s0 caso isso ainda não tenha
sido feito.
.PP
Correções (patches) são muito bem-vindos para quaisquer dos itens acima.
.PP
Em sistemas Win32, não há uma forma de escrever no registro as variáveis
de ambiente criadas, para que elas persistam a uma reinicialização.
.SH "SOLUÇÃO DE PROBLEMAS"
.IX Header "SOLUÇÃO DE PROBLEMAS"
Se você configurou o local::lib para instalar módulos do \s-1CPAN\s0 em algum lugar
do seu 'home', e mais tarde tentou instalar um módulo fazendo \f(CW\*(C`cpan \-i
Foo::Bar\*(C'\fR, mas ele falhou com um erro como: \f(CW\*(C`Warning: You do not have
permissions to install into /usr/lib64/perl5/site_perl/5.8.8/x86_64\-linux at
/usr/lib64/perl5/5.8.8/Foo/Bar.pm\*(C'\fR e em algum lugar no seu log de instalação
houver um erro dizendo \f(CW\*(C`\*(AqINSTALL_BASE\*(Aq is not a known MakeMaker parameter
name\*(C'\fR, então você de alguma forma perdeu seu ExtUtils::MakeMaker atualizado.
.PP
Para remediar a situação, execute novamente o procedimento de bootstrap
descrito acima.
.PP
Então, execute \f(CW\*(C`rm \-r ~/.cpan/build/Foo\-Bar*\*(C'\fR
.PP
Finalmente, execute novamente o \f(CW\*(C`cpan \-i Foo::Bar\*(C'\fR e ele deve instalar
sem problemas.
.SH "AMBIENTE"
.IX Header "AMBIENTE"
.IP "\s-1SHELL\s0" 4
.IX Item "SHELL"
.PD 0
.IP "\s-1COMSPEC\s0" 4
.IX Item "COMSPEC"
.PD
O local::lib procura pela variável de ambiente \f(CW\*(C`SHELL\*(C'\fR do usuário ao
processar e exibir os comandos a serem adicionados no arquivo de
configuração da shell.
.Sp
Em sistemas Win32, \f(CW\*(C`COMSPEC\*(C'\fR também será examinado.
.SH "SUPORTE"
.IX Header "SUPORTE"
\&\s-1IRC:\s0
.PP
.Vb 1
\& Acesse #local\-lib em irc.perl.org.
.Ve
.SH "AUTOR DA TRADUÇÃO"
.IX Header "AUTOR DA TRADUÇÃO"
Breno G. de Oliveira, \f(CW\*(C`<garu at cpan.org>\*(C'\fR, após ter perdido uma aposta
para o <Getty> durante a Copa de 2010.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 2007 \- 2010 \*(L"\s-1AUTHOR\s0\*(R" in local::lib
e \*(L"\s-1CONTRIBUTORS\s0\*(R" in local::lib do local::lib como listados em local::lib.
.SH "LICENÇA"
.IX Header "LICENÇA"
Esta biblioteca é software livre e pode ser distribuída sob os mesmo termos
do perl.
Copyright 2K16 - 2K18 Indonesian Hacker Rulez