0

我现在面临一些问题已经有好几天了,谷歌并没有给我太多帮助。我想使用需要线程的 perl 程序,但这给我带来了困难。我目前正在使用 Perl 5.10.1,它不支持多线程,但通常我在下面粘贴的命令应该可以安装没有任何问题。我愿意为好帮手打赏。

所以我试过这个:

sudo su -
cpan
install shared::thread

(高度损坏)输出:

root@noc:~# sudo su - root@noc:~# cpan Terminal does not support
AddHistory.

cpan shell -- CPAN exploration and modules installation (v1.9402)
Enter 'h' for help.

cpan[1]> install shared::thread CPAN: Storable loaded ok (v2.20) Going
to read '/root/.cpan/Metadata' Database was generated on Wed, 12 Dec
2012 01:07:04 GMT CPAN: Time::HiRes loaded ok (v1.9719) Warning: no
success downloading
'/root/.cpan/sources/authors/01mailrc.txt.gz.tmp22514'. Giving up on
it. at /usr/lib/perl5/5.10.1/CPAN/Index.pm line 225 LWP not available

Trying with "/usr/bin/curl -L -f -s -S --netrc-optional" to get
"http://www.perl.org/CPAN/authors/01mailrc.txt.gz" CPAN:
Compress::Zlib loaded ok (v2.02) CPAN: YAML loaded ok (v0.84) Going to
read '/root/.cpan/sources/authors/01mailrc.txt.gz'
..................................................
..........................DONE Warning: no success downloading
'/root/.cpan/sources/modules/02packages.details.txt.gz.tmp22514'.
Giving up on it. at /usr/lib/perl5/5.10.1/CPAN/Index.pm line 225

Trying with "/usr/bin/curl -L -f -s -S --netrc-optional" to get
"http://www.perl.org/CPAN/modules/02packages.details.txt.gz" Going to
read '/root/.cpan/sources/modules/02packages.details.txt.gz' Database
was generated on Fri, 14 Dec 2012 01:07:03 GMT HTTP:ate not available
.............. New CPAN.pm version (v1.9800) available. [Currently
running version is v1.9402] You might want to try install CPAN reload
cpan to both upgrade CPAN.pm and run the new version without leaving
the current session.


.................................................. ............DONE
Warning: no success downloading
'/root/.cpan/sources/modules/03modlist.data.gz.tmp22514'. Giving up on
it. at /usr/lib/perl5/5.10.1/CPAN/Index.pm line 225

Trying with "/usr/bin/curl -L -f -s -S --netrc-optional" to get
"http://www.perl.org/CPAN/modules/03modlist.data.gz" Going to read
'/root/.cpan/sources/modules/03modlist.data.gz'
..................................................
..........................DONE Going to write /root/.cpan/Metadata
Warning: Cannot install shared::thread, don't know what it is. Try the
command

i /shared::thread/

to find objects with matching identifiers.

cpan[2]>
4

2 回答 2

3

如果你想要Thread::Shared,你需要记住 cpan 是区分大小写的,使用sudo cpan install Thread::Shared。你不需要做su之后sudo

于 2012-12-14T03:46:00.423 回答
1

我目前正在使用 Perl 5.10.1,它不支持多线程

首先,让我们确定一下。如果你有一个支持线程的 Perl,你会得到这个输出:

$ perl -V:usethreads
usethreads='define';

如果这就是您所得到的,那么您只是拼错了“threads::shared”,您甚至不需要安装它,因为它已经随 Perl 提供了。

如果这不是您所得到的,那么您的 Perl 不支持线程,您需要创建一个支持线程的 Perl 构建(即构建一个使用 配置的 Perl -Dusethreads)。您不能只安装一个模块来添加线程支持,因为线程支持需要整个 Perl 内部的额外代码。


要自己构建 Perl,我建议perlbrew安装如下:

curl -kL http://install.perlbrew.pl | bash

(系统会指示您在登录脚本中添加一些内容,并且您应该重新登录以确保一切设置正确。)

这使得安装新的 Perl 变得容易:

perlbrew install -v 5.16.2 --as=5.16.2t -Dusethreads
于 2012-12-14T04:14:12.667 回答