2012-12-14 161 views
0

我現在面臨一些問題,現在谷歌並沒有幫助我太多。我想使用需要線程的perl程序,但這給我很難。我目前使用Perl 5.10.1,它不支持多線程,但通常我下面粘貼的命令應該沒有任何問題地安裝。我願意成爲好幫手的回報。[Ubuntu]無法安裝Cpan安裝::線程

所以我已經試過這樣:

sudo su - 
cpan 
install shared::thread 

(高錯位)輸出:

[email protected]:~# sudo su - [email protected]:~# 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]> 

回答

3

如果你想Thread::Shared,你需要記住的CPAN是大小寫敏感的,使用sudo cpan install Thread::Shared。你不需要後sudo

1
我目前使用Perl 5.10.1

su,它不支持多線程

首先,讓我們確保。如果你有一個支持線程一個Perl,你會得到這樣的輸出:

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

如果這是你得到了什麼,你只是拼寫錯誤「主題::共享」,你甚至不需要安裝變成它已經與Perl。

如果這不是你所得到的,你的Perl不支持線程,你需要創建一個Perl的構建(也就是構建使用-Dusethreads配置的Perl)。您不能只安裝一個模塊來添加線程支持,因爲線程支持需要Perl內部的額外代碼。


爲了使自己的Perl的構建,我建議perlbrew,它安裝如下:

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

(你會被指示的東西添加到您的登錄腳本,你應該登錄早在,以確保一切都設置右)

這使得它易於安裝一個新的Perl:

perlbrew install -v 5.16.2 --as=5.16.2t -Dusethreads