[ SEA-GHOST MINI SHELL]
.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28)
.\"
.\" 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" ''
. ds C`
. ds C'
'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.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{
. if \nF \{
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. if !\nF==2 \{
. nr % 0
. nr F 2
. \}
. \}
.\}
.rr rF
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "POD2::PT_BR::local::lib 3"
.TH POD2::PT_BR::local::lib 3 "2019-11-14" "perl v5.16.3" "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 direto\*'rio lib/ local para mo\*'dulos perl com PERL5LIB
.SH "SINOPSE"
.IX Header "SINOPSE"
No co\*'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 a\*` aplicac\*,a\*~o
.Ve
.PP
Pela linha de comando (shell) \-
.PP
.Vb 2
\& # Instala o LWP e suas depende\*^ncias na\*~o encontradas no direto\*'rio \*(Aq~/perl5\*(Aq
\& perl \-MCPAN \-Mlocal::lib \-e \*(AqCPAN::install(LWP)\*(Aq
\&
\& # Apenas exibe alguns comandos u\*'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 te\*'cnica de 'bootstrapping'"
.IX Subsection "A te'cnica de 'bootstrapping'"
Uma forma comum de instalar o local::lib e\*' usando o que e\*' conhecido como
te\*'cnica de \*(L"bootstrapping\*(R". E\*' uma boa abordagem caso seu administrador de
sistemas na\*~o tenha instalado o local::lib. Nesse caso, voce\*^ precisara\*'
instalar o local::lib em seu direto\*'rio de usua\*'rio.
.PP
Caso voce\*^ tenha privile\*'gios de administrador, ainda assim devera\*'
configurar suas varia\*'veis de ambiente, como discutido no passo 4, abaixo.
Sem elas, voce\*^ ainda instalara\*' mo\*'dulos no \s-1CPAN\s0 do sistema e seus scripts
Perl na\*~o utilizara\*~o o caminho para o lib/ que voce\*^ definiu com o local::lib.
.PP
Por padra\*~o, o local::lib instala os mo\*'dulos do \s-1CPAN\s0 e a si pro\*'prio em ~/perl5.
.PP
Usua\*'rios do Windows devem ler \*(L"Diferenc\*,as ao usar esse mo\*'dulo em Win32\*(R".
.PP
1. Baixe e descompacte o local::lib do \s-1CPAN \s0(procure por \*(L"Download\*(R" na pa\*'gina
do \s-1CPAN\s0 sobre o local::lib). Fac\*,a isso como um usua\*'rio comum, na\*~o como root
ou administrador. Descompacte o arquivo em seu direto\*'rio de usua\*'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,
voce\*^ provavelmente deve responder que sim (yes).
.PP
Para instalar o local::lib em um direto\*'rio que na\*~o o padra\*~o, voce\*^ precisara\*'
especifica\*'\-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 voce\*^ possui o comando 'make'
instalado em seu sistema)
.PP
.Vb 1
\& make test && make install
.Ve
.PP
4. Agora precisamos configurar as varia\*'veis de ambiente apropriadas para
que o Perl use nosso rece\*'m\-criado direto\*'rio lib/. Caso esteja usando bash
ou outra shell Bourne, voce\*^ pode fazer isso adicionando a seguinte linha
em seu script de inicializac\*,a\*~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 direto\*'rio que na\*~o o padra\*~o, voce\*^
precisara\*' indica\*'\-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
Apo\*'s atualizar seu arquivo de configurac\*,a\*~o da shell, certifique-se de
processa\*'\-lo novamente para obter as modificac\*,o\*~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 ma\*'quina lenta ou operando com grandes limitac\*,o\*~es de
espac\*,o em disco, voce\*^ pode desativar a gerac\*,a\*~o automa\*'tica de manpages a
partir do \s-1POD\s0 ao instalar mo\*'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 va\*'rios bootstraps para va\*'rios ambientes de
mo\*'dulos Perl na mesma conta de usua\*'rio \- por exemplo se voce\*^ usa o
local::lib para desenvolver diferentes aplicativos independentes \-
voce\*^ pode utilizar uma u\*'nica instalac\*,a\*~o bootstrap do local::lib para
instalar mo\*'dulos em direto\*'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 esta\*' na PERL5LIB
\& perl \-MCPAN \-e install ... ### Os mo\*'dulos que quiser
\& cd ../meudir2
\& ... REPITA ...
.Ve
.PP
Para mu\*'ltiplos ambientes destinados a mu\*'ltiplos aplicativos, voce\*^ pode
precisar incluir uma versa\*~o modificada das instruc\*,o\*~es de \f(CW\*(C`use FindBin\*(C'\fR
no exemplo \*(L"No co\*'digo\*(R" acima. Caso tenha feito algo como o que foi descrito
acima, tera\*' um conjunto de mo\*'dulos Perl em \f(CW\*(C`~/meudir1/lib\*(C'\fR. Caso
tenha um script em \f(CW\*(C`~/meudir1/scripts/meuscript.pl\*(C'\fR, voce\*^ precisara\*'
indicar a ele onde encontrar os mo\*'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 mo\*'dulos instalados.
.SS "Diferenc\*,as ao usar esse mo\*'dulo em Win32"
.IX Subsection "Diferenc,as ao usar esse mo'dulo em Win32"
Para configurar as varia\*'veis de ambiente apropriadas para sua sessa\*~o atual
do \f(CW\*(C`CMD.exe\*(C'\fR, voce\*^ 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 configurac\*,o\*~es do ambiente persistam, voce\*^ precisara\*'
adiciona\*'\-las em Painel de Controle \-> Sistema, ou usar o App::local::lib::Win32Helper.
.PP
O \*(L"~\*(R" e\*' transformado no direto\*'rio do perfil do usua\*'rio (o direto\*'rio com o
nome do usua\*'rio dentro de \*(L"Documents and Settings\*(R" (Windows \s-1XP\s0 ou anterior)
ou \*(L"Usua\*'rios\*(R" (Windows Vista e mais recentes)) a menos que \f(CW$ENV\fR{\s-1HOME\s0} exista.
Apo\*'s isso, o nome do direto\*'rio e\*' encurtado e os subdireto\*'rios sa\*~o criados
(o que significa que o direto\*'rio deve existir).
.SH "MOTIVAC\*,A\*~O"
.IX Header "MOTIVAC,A~O"
A versa\*~o de um pacote Perl na sua ma\*'quina nem sempre e\*' a que voce\*^ precisa.
Obviamente, a melhor coisa a fazer seria atualiza\*'\-la para a versa\*~o desejada.
No entanto, voce\*^ pode estar em uma situac\*,a\*~o que o impede de fazer isso.
Talvez voce\*^ na\*~o tenha privile\*'gios de administrador do sistema; ou talvez
esteja usando um sistema de gerenciamento de pacotes como o do Debian,
e ainda na\*~o exista um pacote disponi\*'vel na versa\*~o desejada.
.PP
local::lib resolve esse problema possibilitando a criac\*,a\*~o de seu pro\*'prio
direto\*'rio de pacotes Perl obtidos do \s-1CPAN \s0(em sistemas multi\-usua\*'rio, isso
normalmente fica dentro do direto\*'rio de seu usua\*'rio). A instalac\*,a\*~o do Perl
no sistema permanece inalterada; voce\*^ simplesmente chama o Perl com opc\*,o\*~es
especiais para que ele use os pacotes em seu direto\*'rio local em vez dos
pacotes do sistema. O local::lib organiza as coisas para que verso\*~es dos
pacotes Perl instalados localmente tenham precede\*^ncia sobre as do sistema.
.PP
Caso esteja usando um sistema de gerenciamento de pacote (como em sistemas
Debian), na\*~o precisara\*' se preocupar com conflitos entre o Debian e o \s-1CPAN.\s0
Sua versa\*~o local dos pacotes sera\*' instalada em um direto\*'rio completamente
diferente das verso\*~es instaladas pelo gerenciador de pacotes do sistema.
.SH "DESCRIC\*,A\*~O"
.IX Header "DESCRIC,A~O"
Este mo\*'dulo oferece uma forma ra\*'pida e conveniente para criar um reposito\*'rio
de mo\*'dulos locais ao usua\*'rio, dentro do direto\*'rio do mesmo. Ele tambe\*'m monta
e exibe para o usua\*'rio uma lista de varia\*'veis de ambiente utilizando a
sintaxe da shell atual do usua\*'rio (conforme especificado pela varia\*'vel
de ambiente \f(CW\*(C`SHELL\*(C'\fR), pronta para ser adicionada diretamente no arquivo
de configurac\*,a\*~o da shell.
.PP
Generalizando, o local::lib permite a criac\*,a\*~o e uso de um direto\*'rio contendo
mo\*'dulos Perl fora do \f(CW@INC\fR do Perl. Isso facilita a produc\*,a\*~o de aplicac\*,o\*~es
com uma versa\*~o especi\*'fica de determinado mo\*'dulo, ou colec\*,a\*~o de mo\*'dulos.
Tambe\*'m e\*' u\*'til quando o mantenedor de um mo\*'dulo na\*~o aplicou determinado patch
que voce\*^ precisa para seu aplicativo.
.PP
Durante o \f(CW\*(C`import\*(C'\fR, o local::lib define valores apropriados para as
seguintes varia\*'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 sera\*~o anexados ao \s-1PATH,\s0 em vez de substitui\*'\-lo.
.PP
Esses valores sa\*~o enta\*~o disponibilizados para refere\*^ncia por qualquer
outro co\*'digo apo\*'s o \f(CW\*(C`import\*(C'\fR.
.SH "CRIANDO UM CONJUNTO AUTO-CONTIDO DE MO\*'DULOS"
.IX Header "CRIANDO UM CONJUNTO AUTO-CONTIDO DE MO'DULOS"
Veja lib::core::only para uma maneira de fazer isso \- mas
note que ha\*' uma se\*'rie de ressalvas na abordagem, e a melhor forma e\*' sempre
fazer o 'build' contra uma versa\*~o limpa do perl (i.e. com 'site' e 'vendor'
o mais vazios possi\*'vel).
.SH "ME\*'TODOS"
.IX Header "ME'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 direto\*'rios superiores necessa\*'rios. Gera uma excec\*,a\*~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 sai\*'da padra\*~o as varia\*'veis listadas acima, devidamente ajustadas
para utilizar o caminho fornecido como direto\*'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 varia\*'veis de ambiente listadas acima, devidamente
ajustadas para utilizar o caminho fornecido como direto\*'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
Constro\*'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 direto\*'rio indicando onde instalar os mo\*'dulos Perl
para essa instalac\*,a\*~o local de bibliotecas. Adiciona os direto\*'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 direto\*'rio indicando onde instalar os mo\*'dulos Perl
de arquiteturas especi\*'ficas para essa instalac\*,a\*~o local de bibliotecas.
Baseia-se no valor de retorno do me\*'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 direto\*'rio indicando onde instalar programas executa\*'veis
para essa instalac\*,a\*~o local de bibliotecas. Baseia-se no valor de retorno do
me\*'todo \*(L"install_base_perl_path\*(R", adicionando o direto\*'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 direto\*'rio raiz em que a instalac\*,a\*~o local de
mo\*'dulos deve ser feita. O padra\*~o e\*' \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 direto\*'rio padra\*~o (home) do usua\*'rio.
Gera uma excec\*,a\*~o caso na\*~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 me\*'todos em seque\*^ncia, passando o resultado do me\*'todo
anterior para o seguinte, na tentativa de descobrir onde configurar o
ambiente para a instalac\*,a\*~o local de bibliotecas: \*(L"resolve_empty_path\*(R",
\&\*(L"resolve_home_path\*(R", \*(L"resolve_relative_path\*(R". Passa o caminho de
direto\*'rio fornecido para \*(L"resolve_empty_path\*(R" que retorna um resultado
que e\*' passado para \*(L"resolve_home_path\*(R", que enta\*~o tem seu resultado
passado para \*(L"resolve_relative_path\*(R". O resultado dessa chamada final
e\*' enta\*~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 ide\*'ia dessa opc\*,a\*~o e\*' desinstalar a versa\*~o anterior de um mo\*'dulo antes de
instalar a mais recente. No entanto ela na\*~o possui uma verificac\*,a\*~o de
seguranc\*,a de que a versa\*~o antiga e a nova referem-se ao mesmo direto\*'rio.
Usada em combinac\*,a\*~o com o local::lib, voce\*^ pode potencialmente apagar uma
versa\*~o globalmente acessi\*'vel de um mo\*'dulo e instalar a versa\*~o mais nova
no direto\*'rio local. Apenas utilize \*(L"make install UNINST=1\*(R" junto com o
local::lib se voce\*^ entende essas possi\*'veis conseque\*^ncias.
.SH "LIMITAC\*,O\*~ES"
.IX Header "LIMITAC,O~ES"
As ferramentas auxiliares do perl na\*~o conseguem lidar com nomes de
direto\*'rios contendo espac\*,os, enta\*~o na\*~o e\*' possi\*'vel fazer seu bootstrap
do local::lib em um direto\*'rio com espac\*,os. O que voce\*^ pode fazer e\*' mover
seu local::lib para um direto\*'rio com espac\*,os \fBapo\*'s\fR ter instalado todos
os mo\*'dulos dentro dele. Mas esteja ciente que voce\*^ na\*~o podera\*' atualizar
ou instalar outros mo\*'dulos do \s-1CPAN\s0 nesse direto\*'rio local apo\*'s a mudanc\*,a.
.PP
A detecc\*,a\*~o da shell e\*' relativamente ba\*'sica. Neste momento, qualquer coisa
com csh no nome sera\*' tratada como a C shell ou compati\*'vel, e todo o resto
sera\*' tratado como Bourne, exceto em sistemas Win32. Caso a varia\*'vel de
ambiente \f(CW\*(C`SHELL\*(C'\fR na\*~o esteja disponi\*'vel, assumiremos tratar-se de uma
shell compati\*'vel com a Bourne.
.PP
A te\*'cnica de bootstrap e\*' um hack e usara\*' o \s-1CPAN\s0.pm para o ExtUtils::MakeMaker
mesmo que voce\*^ tenha o \s-1CPANPLUS\s0 instalado.
.PP
Destro\*'i qualquer valor pre\*'\-existente nas varia\*'veis de ambiente \s-1PERL5LIB,
PERL_MM_OPT\s0 e \s-1PERL_MB_OPT.\s0
.PP
Provavelmente deveria auto-configurar o \s-1CPAN\s0 caso isso ainda na\*~o tenha
sido feito.
.PP
Correc\*,o\*~es (patches) sa\*~o muito bem-vindos para quaisquer dos itens acima.
.PP
Em sistemas Win32, na\*~o ha\*' uma forma de escrever no registro as varia\*'veis
de ambiente criadas, para que elas persistam a uma reinicializac\*,a\*~o.
.SH "SOLUC\*,A\*~O DE PROBLEMAS"
.IX Header "SOLUC,A~O DE PROBLEMAS"
Se voce\*^ configurou o local::lib para instalar mo\*'dulos do \s-1CPAN\s0 em algum lugar
do seu 'home', e mais tarde tentou instalar um mo\*'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 instalac\*,a\*~o
houver um erro dizendo \f(CW\*(C`\*(AqINSTALL_BASE\*(Aq is not a known MakeMaker parameter
name\*(C'\fR, enta\*~o voce\*^ de alguma forma perdeu seu ExtUtils::MakeMaker atualizado.
.PP
Para remediar a situac\*,a\*~o, execute novamente o procedimento de bootstrap
descrito acima.
.PP
Enta\*~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 varia\*'vel de ambiente \f(CW\*(C`SHELL\*(C'\fR do usua\*'rio ao
processar e exibir os comandos a serem adicionados no arquivo de
configurac\*,a\*~o da shell.
.Sp
Em sistemas Win32, \f(CW\*(C`COMSPEC\*(C'\fR tambe\*'m sera\*' examinado.
.SH "SUPORTE"
.IX Header "SUPORTE"
\&\s-1IRC:\s0
.PP
.Vb 1
\& Acesse #local\-lib em irc.perl.org.
.Ve
.SH "AUTOR DA TRADUC\*,A\*~O"
.IX Header "AUTOR DA TRADUC,A~O"
Breno G. de Oliveira, \f(CW\*(C`<garu at cpan.org>\*(C'\fR, apo\*'s ter perdido uma aposta
para o Getty <http://search.cpan.org/~getty/> durante a Copa de 2010.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 2007 \- 2010 \*(L"\s-1AUTHOR\*(R"\s0 in local::lib
e \*(L"\s-1CONTRIBUTORS\*(R"\s0 in local::lib do local::lib como listados em local::lib.
.SH "LICENC\*,A"
.IX Header "LICENC,A"
Esta biblioteca e\*' software livre e pode ser distribui\*'da sob os mesmo termos
do perl.
SEA-GHOST - SHELL CODING BY SEA-GHOST