Como instalar uma versão de 32 bits do perl no servidor Cent OS de 64 bits?

3

Eu quero instalar a versão de 32 bits do perl no meu servidor Cent OS, que é, naturalmente, de 64 bits .. A saída de perl -v é

[root@M-229 ~]# perl --version

This is perl, v5.10.1 (*) built for x86_64-linux-thread-multi

Copyright 1987-2009, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

para isso eu tentei usar o yum e o rpm e ambos deram apenas versões de 64 bits, do que eu baixei o arquivo perl-5.8.8.tar.gz e tentei instalar a partir dele. Mesmo que não funcionou e make dá o seguinte erro

make: *** No rule to make target '<command-line>', needed by 'miniperlmain.o'.  Stop.

Eu tentei instruções dadas nos links a seguir, no entanto, isso não funcionou. Por favor me ajude a fazer isso.

link

outro link

e quase todos os links aqui

Por favor ajude

EDITAR Eu quero conseguir isso porque o seu aplicativo opensource de 32 bits está instalado e funcionando na máquina. No entanto, em certos casos, encontrei um bug. Eu baixei o código fonte, entendi e arrumei o bug agora não estou conseguindo testar as alterações já que todas as outras .so são de 32 bits ele me dá dlopen failed: /usr/local/garner/plugins/libfwstub.so: wrong ELF class: ELFCLASS64 .

Estou preso neste ponto desde os últimos dias, por favor ajude ..

    
por Amit 02.08.2013 / 12:35

2 respostas

3

O artigo COMO perlbrew a 32 -bit Perl em um Centos de 64 bits descreve o seguinte procedimento:

Instalar o perlbrew

Você precisará instalar o perlbrew no CPAN, e ele tem muitas dependências. O maravilhoso App :: cpanminus torna esta experiência o mais simples possível, então eu a instalei antes de passar para o próprio perlbrew.

$ sudo yum install perl-CPAN
$ sudo cpan App::cpanminus
$ sudo cpanm install App::perlbrew

B. Inicializar perlbrew

$ perlbrew init
$ perlbrew install-patchperl

Preste atenção na saída do passo do init - ele irá direcioná-lo para fazer uma alteração na sua configuração do shell.

C. Instalar bibliotecas de 32 bits

A instalação desses dois pacotes foi suficiente para construir um núcleo perl de 32 bits. Se você estiver criando módulos XS adicionais contra o perl de 32 bits, eles poderão exigir a instalação de outras bibliotecas de 32 bits.

$ sudo yum install glibc-devel.i686 libgcc.i686

D. Construa um Perl

$ perlbrew install 5.8.9 -Accflags="-m32 -march=i686" -Aldflags="-m32 -march=i686" -Alddlflags="-shared -m32 -march=i686"
Fetching perl-5.8.9 as /home/zts/perl5/perlbrew/dists/perl-5.8.9.tar.bz2
Installing /home/zts/perl5/perlbrew/build/perl-5.8.9 into ~/perl5/perlbrew/perls/perl-5.8.9

This could take a while. You can run the following command on another shell to track the status:

  tail -f ~/perl5/perlbrew/build.perl-5.8.9.log

perl-5.8.9 is successfully installed.

Isso é tudo, embora o resultado não seja perfeito. Embora a invocação acima crie um perl de 32 bits, ele não substitui o nome do arquio do sistema - assim, o @INC resultante se parece com isso:

@INC:
    /home/zts/perl5/perlbrew/perls/perl-5.8.9/lib/5.8.9/x86_64-linux
    /home/zts/perl5/perlbrew/perls/perl-5.8.9/lib/5.8.9
    /home/zts/perl5/perlbrew/perls/perl-5.8.9/lib/site_perl/5.8.9/x86_64-linux
    /home/zts/perl5/perlbrew/perls/perl-5.8.9/lib/site_perl/5.8.9
    .

Para os meus propósitos, isso é simplesmente um problema estético - os diretórios x86_64-linux contêm objetos compartilhados de 32 bits.

    
por 08.08.2013 / 18:10
2

Eu não tentei (e me pergunto por que você precisaria de perl de 32 bits em um sistema de 64 bits), mas talvez algo nesse sentido funcionasse. Ajuste caminhos e opções de configuração conforme necessário. (use ls e cd para encontrar os diretórios corretos em seu sistema, use ./configure --help para ver as opções de configuração disponíveis):

export CC="gcc -m32"
export CXX="g++ -m32"
export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"       
./configure --prefix=/usr --libdir=/usr/lib32 --enable-utf --enable-unicode-properties --enable-pcre16 --enable-pcre32 --enable-jit
make
    
por 08.08.2013 / 14:44