2012-02-20 24 views
9

Có vẻ như tôi có một vấn đề cấu hình khi cài đặt module Perl qua CPAN và tôi không biết làm thế nào để sửa chữa nó:CPAN Perl module cài đặt không tìm thấy tập tin 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 

Vấn đề có vẻ là ở đây:

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 

Các tập tin tar.gz là thực sự không nén và có thể được tìm thấy ở đây trong một thư mục mới:

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

Nếu tôi chạy lệnh tương tự từ bên trong vỏ, tôi nhận được một số thông tin thêm:

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 

Dường như với tôi rằng $ newdir không được cập nhật với những tạo động /root/.cpan/build/JESSE-DGrTh_/ hoặc /root/.cpan/build/JESSE-KjCEMS/ hoặc bất cứ hệ thống tạo hoặc ít nhất thông tin đó không nhận được lệnh tar

Có ai biết cách tôi có thể khắc phục cơ chế mà không cần phải cài đặt thủ công không?

+0

Khi tôi chạy 'cpan', nó cho tôi biết nó đang sử dụng Storable 2.30, vì vậy rất có thể cài đặt của bạn đã được cập nhật đầy đủ. Đầu ra từ 'cpan --version' nói 'CPAN 1.57' (loại). Tuy nhiên, điều đó không giải thích được vấn đề, trừ khi đó là lỗi trong phiên bản bạn đang sử dụng. Nó chỉ là WWW :: Mechanize, hay tất cả các module bị ảnh hưởng? (Tôi thường sử dụng 'cpanp'; cuối cùng tôi đã sử dụng 'cpan' vào tháng 11, có vẻ như vậy. Và WWW :: Mechanize đã được cập nhật.) –

+0

Tôi đồng ý với Jonathan, nâng cấp ['Bundle :: CPAN'] (http://p3rl.org/Bundle::CPAN) trước tiên; không có ý nghĩa trong việc gỡ lỗi phần mềm đã lỗi thời. – daxim

+0

Tôi đã nâng cấp nhưng nó cho biết mọi thứ đã được cập nhật. Đây là phần liên quan của cpan -O – user1164594

Trả lời

0

Chụp trong màu xanh dương: phân vùng đầy. Xóa một số tệp.

9

Chỉnh sửa:

Tôi đã gặp sự cố này một lần nữa. Tất cả những gì tôi cần làm là giải phóng một số ký ức như Keith Broughton đề nghị.


Tôi đã gặp sự cố tương tự và cố gắng tìm nguyên nhân gốc rễ cho vấn đề này. Tôi liệt kê các phát hiện của mình ở đây để những người dùng Google khác không phải mất một vài giờ trước khi từ bỏ ...

Điều đã giải quyết cho tôi đơn giản là khởi động lại hệ thống.

Những điều tôi đã cố gắng:

  • Nâng cấp CPAN. Điều này cũng sẽ không thành công với thông báo lỗi "Không thể gỡ bỏ". Tôi không quan trọng nếu bạn thử nó bằng cách sử dụng vỏ cpan, "cpan -i CPAN" hoặc "perl -MCPAN -e 'cài đặt CPAN'". Tôi đã không nghĩ rằng bất kỳ trong số này sẽ giải quyết vấn đề, nhưng khi bạn bắt đầu googling tất cả những được đề xuất như là giải pháp có thể.
  • Thay thế tar bằng tập lệnh ghi nhật ký đầu vào của nó để kiểm tra xem một trong các tham số hoặc cwd không chính xác khi được gọi. Các kịch bản không bao giờ được gọi là nó có vẻ. Thông báo "Không thể untar" vẫn như cũ, ngay cả sau khi tạm thời đổi tên/bin/tar.
  • Kiểm tra CPAN/Tarzip.pm và thêm dòng in gần mã viết thông báo "Không thể hủy". Có vẻ như hệ thống() gọi không thành công và tar (hoặc ls trong mã gỡ lỗi của tôi) không bao giờ được gọi.

Sau đó, tôi quyết định khởi động lại, đây là một tùy chọn vì đây không phải là hệ thống trực tiếp. Sau đó vấn đề đã biến mất và các mô-đun Perl được cài đặt trong lần thử đầu tiên.

quan sát khác:

  • Hệ thống này dường như chỉ làm việc tốt cho phần còn lại.Bạn vẫn có thể kết nối với hệ thống, bạn có thể chỉnh sửa các tập tin, sửa đổi vẫn còn đó sau khi khởi động lại. Tôi mong đợi bất kỳ trong số này để thất bại lâu trước khi một cuộc gọi hệ thống Perl() bắt đầu thất bại.
  • Quét nhanh qua các tệp nhật ký không hiển thị bất kỳ cờ đỏ nào.
7

Đôi khi điều này có thể xảy ra đơn giản do thiếu bộ nhớ khả dụng. Hãy thử tắt một số dịch vụ đang chạy và thử lại.

Làm việc đối với tôi :-)

+1

đây chính là vấn đề của tôi. Sau khi giải phóng bộ nhớ, mọi thứ hoạt động tốt. – greatwitenorth

3

Để giải quyết các lỗi sau:

Couldn't untar WWW-Mechanize-1.72.tar 

Cố gắng cài đặt Archive::Tar

On centos 6.X:

yum install perl-Archive-Tar.x86_64 
Các vấn đề liên quan