2012-02-20 170 views
9

似乎通過CPAN安裝Perl模塊時,我有一個配置問題,我不知道如何糾正它:CPAN Perl模塊安裝程序沒有找到tar文件

[[email protected] JESSE]# pwd 
/root/.cpan/sources/authors/id/J/JE/JESSE 

[[email protected] JESSE]# ls -l 
total 240 
-rw-r--r-- 1 root root 105464 Feb 20 11:39 CHECKSUMS 
-rw-r--r-- 1 root root 9223 Apr 12 2011 Locale-Maketext-Simple-0.21.tar.gz 
-rw-r--r-- 1 root root 125483 Feb 20 11:39 WWW-Mechanize-1.72.tar.gz 

[[email protected] JESSE]# cpan -i WWW::Mechanize 
CPAN: Storable loaded ok (v2.20) 
Reading '/root/.cpan/Metadata' 
    Database was generated on Mon, 20 Feb 2012 11:10:26 GMT 
Running install for module 'WWW::Mechanize' 
Running make for J/JE/JESSE/WWW-Mechanize-1.72.tar.gz 
CPAN: Digest::SHA loaded ok (v5.61) 
CPAN: Compress::Zlib loaded ok (v2.033) 
Checksum for /root/.cpan/sources/authors/id/J/JE/JESSE/WWW-Mechanize-1.72.tar.gz ok 
CPAN: Archive::Tar loaded ok (v1.82) 
Uncompressed /root/.cpan/sources/authors/id/J/JE/JESSE/WWW-Mechanize-1.72.tar.gz successfully 
Using Tar:/bin/tar xvf "WWW-Mechanize-1.72.tar": 
Couldn't untar WWW-Mechanize-1.72.tar 
CPAN: File::Temp loaded ok (v0.22) 
CPAN: CPAN::Meta loaded ok (v2.112150) 
Package seems to come without Makefile.PL. 
    (The test -f "/root/.cpan/build/JESSE-n72IRU/Makefile.PL" returned false.) 
    Writing one on our own (setting NAME to WWWMechanize) 
    Had problems unarchiving. Please build manually 
Running make test 
    Make had some problems, won't test 
Running make install 
    Make had some problems, won't install 

[[email protected] JESSE]# ls -l 
total 240 
-rw-r--r-- 1 root root 105464 Feb 20 11:39 CHECKSUMS 
-rw-r--r-- 1 root root 9223 Apr 12 2011 Locale-Maketext-Simple-0.21.tar.gz 
-rw-r--r-- 1 root root 125483 Feb 20 11:39 WWW-Mechanize-1.72.tar.gz 

[[email protected] JESSE]# which tar 
/bin/tar 

[[email protected] JESSE]# which gzip 
/bin/gzip 

這個問題似乎是在這裏:

Uncompressed /root/.cpan/sources/authors/id/J/JE/JESSE/WWW-Mechanize-1.72.tar.gz successfully 
Using Tar:/bin/tar xvf "WWW-Mechanize-1.72.tar": 
Couldn't untar WWW-Mechanize-1.72.tar 

的tar.gz文件的確是未壓縮的,並且可以在一個新的目錄在這裏找到:

/root/.cpan/build/JESSE-KjCEMS/WWW-Mechanize-1.72.tar 

如果我從殼中運行相同的命令,我得到一些更多的信息:

cpan[1]> install WWW::Mechanize 
CPAN: Storable loaded ok (v2.20) 
Reading '/root/.cpan/Metadata' 
    Database was generated on Mon, 20 Feb 2012 11:10:26 GMT 
Running install for module 'WWW::Mechanize' 
Running make for J/JE/JESSE/WWW-Mechanize-1.72.tar.gz 
CPAN: Digest::SHA loaded ok (v5.61) 
CPAN: Compress::Zlib loaded ok (v2.033) 
Checksum for /root/.cpan/sources/authors/id/J/JE/JESSE/WWW-Mechanize-1.72.tar.gz ok 
Scanning cache /root/.cpan/build for sizes 
Use of uninitialized value $newdir in substitution (s///) at /usr/lib64/perl5/Cwd.pm line 502. 
Use of uninitialized value $newdir in chdir at /usr/lib64/perl5/Cwd.pm line 510. 
Use of chdir('') or chdir(undef) as chdir() is deprecated at /usr/lib64/perl5/Cwd.pm line 510. 
Use of uninitialized value $newdir in pattern match (m//) at /usr/lib64/perl5/Cwd.pm line 525. 
Use of uninitialized value $newdir in split at /usr/lib64/perl5/Cwd.pm line 531. 
..........................................................................--DONE 
DEL(1/10): /root/.cpan/build/CPAN-1.9600-jGTV10 
DEL(2/10): /root/.cpan/build/File-Which-1.09-yoVWZC 
DEL(3/10): /root/.cpan/build/Test-Script-1.07-aJWrXb 
DEL(4/10): /root/.cpan/build/Probe-Perl-0.01-gzZ2eR 
DEL(5/10): /root/.cpan/build/IPC-Run3-0.044-AP6EMp 
DEL(6/10): /root/.cpan/build/Time-HiRes-1.9721-xxseE6 
DEL(7/10): /root/.cpan/build/CPAN-Meta-YAML-0.003-wGtH0a 
DEL(8/10): /root/.cpan/build/JSON-PP-2.27105-fvkwNa 
DEL(9/10): /root/.cpan/build/Package-Constants-0.02-7Ms_OL 
DEL(10/10): /root/.cpan/build/Module-Metadata-1.000004-tXKIBB 
CPAN: Archive::Tar loaded ok (v1.82) 
Uncompressed /root/.cpan/sources/authors/id/J/JE/JESSE/WWW-Mechanize-1.72.tar.gz successfully 
Using Tar:/bin/tar xvf "WWW-Mechanize-1.72.tar": 
Couldn't untar WWW-Mechanize-1.72.tar 
CPAN: File::Temp loaded ok (v0.22) 
CPAN: CPAN::Meta loaded ok (v2.112150) 
Package seems to come without Makefile.PL. 
    (The test -f "/root/.cpan/build/JESSE-DGrTh_/Makefile.PL" returned false.) 
    Writing one on our own (setting NAME to WWWMechanize) 
    Had problems unarchiving. Please build manually 
Running make test 
    Make had some problems, won't test 
Running make install 
    Make had some problems, won't install 
Failed during this command: 
JESSE/WWW-Mechanize-1.72.tar.gz    : unwrapped NO -- untar failed 

這在我看來,$ NEWDIR未與動態生成/root/.cpan/build/JESSE-DGrTh_//root/.cpan/build/JESSE-KjCEMS/或任何系統生成更新或至少該信息沒有得到tar命令

有誰知道我可以如何修復該機制,而不必訴諸手動安裝?

+0

當我運行'cpan'時,它告訴我它正在使用可存儲的2.30,因此您的安裝不太可能完全保持最新。 'cpan --version'的輸出顯示'CPAN 1.57'(有點)。但是,這並不能解釋問題,除非它是您使用的版本中的缺陷。它僅僅是WWW :: Mechanize,還是所有受影響的模塊? (我通常使用'cpanp';我在11月似乎最後使用了'cpan',而WWW :: Mechanize已經是最新的了) – 2012-02-20 15:55:55

+0

我同意Jonathan,升級['Bundle :: CPAN'](首先是http://p3rl.org/Bundle:CPAN)在調試過時的軟件時沒有意義。 – daxim 2012-02-20 17:29:23

+0

我做了升級,但它說一切都是最新的。這是CPAN -O – user1164594 2012-02-20 23:32:41

回答

0

拍攝藍色:分區已滿。刪除一些文件。

9

編輯:

我再次遇到這個問題。我所需要做的就是釋放像Keith Broughton所建議的一些記憶。


我遇到了同樣的問題,並試圖找到這個問題的根本原因。我在這裏列出我的發現,所以其他Google員工不必花幾個小時才能放棄...

什麼解決它對我來說簡直就是重新啓動系統

事情我想:

  • 升級CPAN。這也會失敗,出現「Could not untar」錯誤消息。我不關心你是否使用cpan shell,「cpan -i CPAN」或「perl -MCPAN -e'安裝CPAN'」。我不認爲其中任何一個都能解決問題,但是當你開始使用Google時,所有這些都被認爲是可能的解決方案。
  • 使用記錄其輸入的腳本替換tar,以檢查其中一個參數或cwd在調用時是否不正確。看起來這個腳本永遠不會被調用。即使在臨時重命名/ bin/tar之後,「Could not untar」消息仍然是相同的。
  • 檢查CPAN/Tarzip.pm並在寫入「Could not untar」消息的代碼附近添加打印行。看起來system()調用失敗,並且tar(或者我的調試代碼中的ls)永遠不會被調用。

然後我決定重新啓動,這是一個選項,因爲這不是一個實時系統。之後,問題消失了,首先嚐試安裝Perl模塊。

其他意見:

  • 系統似乎工作得很好的休息。您仍然可以連接到系統,您可以編輯文件,重新啓動後修改仍然存在。我希望其中的任何一個在Perl系統()調用開始失敗之前就會失敗。
  • 通過日誌文件的快速掃描不顯示任何紅色標誌。
7

有時候,這可能是由於缺乏可用內存僅僅發生。嘗試關閉一些正在運行的服務,然後重試。

爲我工作:-)

+1

這正是我的問題。釋放一些內存後,一切正常。 – greatwitenorth 2013-01-02 21:11:09

3

要解決以下錯誤:

Couldn't untar WWW-Mechanize-1.72.tar 

儘量安裝Archive::Tar

在CentOS 6.X:

yum install perl-Archive-Tar.x86_64