0

我想gnu_parallel在我的一台服务器上运行(nproc=48)。当我尝试运行命令时,

seq 1 5000 | parallel --eta 'echo {} > /dev/null'

我遇到了一些错误,

Can't load '/usr/local/lib64/perl5/auto/Fcntl/Fcntl.so' for module Fcntl: /usr/local/lib64/perl5/auto/Fcntl/Fcntl.so: wrong ELF class: ELFCLASS32 at /usr/lib64/perl5/XSLoader.pm line 70.
 at /usr/local/lib64/perl5/Fcntl.pm line 215
BEGIN failed--compilation aborted at /usr/local/lib64/perl5/Fcntl.pm line 216.
Compilation failed in require at /usr/local/lib64/perl5/POSIX.pm line 19.
BEGIN failed--compilation aborted at /usr/local/lib64/perl5/POSIX.pm line 19.
Compilation failed in require at /usr/bin/parallel line 24.
BEGIN failed--compilation aborted at /usr/bin/parallel line 24.

我不想在服务器上重新安装 Perl,因为有很多服务器在使用它。

我可以做任何不会损害我服务器上运行的当前应用程序的事情。

请告诉我一种并行运行的方法。

OS: Cent-OS 6.4  64 bit
nproc: 48
RAM: 512 GB

编辑:

否则我可以使用 App::Fatpacker 吗?解决问题?

编辑 2

我尝试使用 Fatpacker 失败了。

编辑:3 我尝试安装 perlbrew:得到错误 ELFClASS 的以下错误

    Can't load '/usr/local/lib64/perl5/auto/PerlIO/scalar/scalar.so' for module PerlIO::scalar: /usr/local/lib64/perl5/auto/PerlIO/scalar/scalar.so: wrong ELF class: ELFCLASS32 at /usr/lib64/perl5/XSLoader.pm line 70.
 at /usr/local/lib64/perl5/PerlIO/scalar.pm line 4
Compilation failed in require at (eval 1) line 3.
FatPacker error loading App/perlbrew.pm (could be a perl installation issue?) at perlbrew-23345 line 551.
BEGIN failed--compilation aborted at perlbrew-23345 line 562.
4

2 回答 2

1

按照以下步骤在不同的目录中重新安装 perl,

sudo mkdir /usr/local/perl5142
sudo chown $USER:$USER /usr/local/perl5142
cd /usr/local/perl5142/
mkdir build cpan
cd build/
wget http://www.cpan.org/src/perl-5.14.2.tar.gz
tar xzvf perl-5.14.2.tar.gz
cd perl-5.14.2
rm -f config.sh Policy.sh ; sh Configure -de -Dprefix=/usr/local/perl5142
make && make test && make install

来源:多个 perl 安装说明

为了使平行线使用这个新装置,我编辑了平行线的 shebang 线 from#!/usr/bin/env perl#! /usr/local/perl5142/build/perl-5.14.2/perl

不会对任何现有安装造成任何损害,并且 Parallel 可以按预期工作。

于 2014-03-20T07:18:33.007 回答
0

Can't load '/usr/local/lib64/perl5/auto/Fcntl/Fcntl.so' for module Fcntl: /usr/local/lib64/perl5/auto/Fcntl/Fcntl.so: wrong ELF class: ELFCLASS32 at /usr/lib64/perl5/XSLoader.pm line 70.

好像/usr/local/lib64/perl5/auto/Fcntl/Fcntl.so是32位的。

尝试文件命令: file /usr/local/lib64/perl5/auto/Fcntl/Fcntl.so

于 2014-03-19T08:59:51.610 回答