簡體   English   中英

CPAN在ubuntu上給出了各種錯誤

[英]CPAN giving all sorts of errors on ubuntu

我只是嘗試運行一個簡單的perl程序從xml導入數據並將其導出到數據庫。

使用Mysql; 沒有工作,所以我使用DBD :: mysql后,無法從cpan獲取Mysql.pm。

但是,我無法安裝任何東西。 我正在嘗試安裝xml解析器模塊,但無論您嘗試安裝什么模塊,cpan都會提供這些錯誤。

install xml::parser
CPAN: Storable loaded ok (v2.20)
Going to read '/root/.cpan/sources/authors/01mailrc.txt.gz'
CPAN: Compress::Zlib loaded ok (v2.02)
............................................................................DONE
Going to read '/root/.cpan/sources/modules/02packages.details.txt.gz'
Warning: Your /root/.cpan/sources/modules/02packages.details.txt.gz does not contain a Line-Count header.
Please check the validity of the index file by comparing it to more
than one CPAN mirror. I'll continue but problems seem likely to
happen.
CPAN: Time::HiRes loaded ok (v1.9719)
Warning: Your /root/.cpan/sources/modules/02packages.details.txt.gz does not contain a Last-Updated header.
Please check the validity of the index file by comparing it to more
than one CPAN mirror. I'll continue but problems seem likely to
happen.
DONE
Going to read '/root/.cpan/sources/modules/03modlist.data.gz'
Catching error: "Can't locate object method \"data\" via package \"CPAN::Modulelist\" (perhaps you forgot to load \"CPAN::Modulelist\"?) at (eval 29) line 1.\cJ at /usr/share/perl/5.10/CPAN/Index.pm line 518\cJ\cICPAN::Index::rd_modlist('CPAN::Index', '/root/.cpan/sources/modules/03modlist.data.gz') called at /usr/share/perl/5.10/CPAN/Index.pm line 85\cJ\cICPAN::Index::reload('CPAN::Index') called at /usr/share/perl/5.10/CPAN.pm line 955\cJ\cICPAN::exists('CPAN=HASH(0xa225610)', 'CPAN::Module', 'xml::parser') called at /usr/share/perl/5.10/CPAN/Shell.pm line 1243\cJ\cICPAN::Shell::expandany('CPAN::Shell', 'xml::parser') called at /usr/share/perl/5.10/CPAN/Shell.pm line 1639\cJ\cICPAN::Shell::rematein('CPAN::Shell', 'install', 'xml::parser') called at /usr/share/perl/5.10/CPAN/Shell.pm line 1935\cJ\cICPAN::Shell::__ANON__('CPAN::Shell', 'xml::parser') called at /usr/share/perl/5.10/CPAN.pm line 375\cJ\cIeval {...} called at /usr/share/perl/5.10/CPAN.pm line 372\cJ\cICPAN::shell() called at /usr/bin/cpan line 198\cJ" at /usr/share/perl/5.10/CPAN.pm line 391
    CPAN::shell() called at /usr/bin/cpan line 198
Going to read '/root/.cpan/sources/authors/01mailrc.txt.gz'
............................................................................DONE
Going to read '/root/.cpan/sources/modules/02packages.details.txt.gz'
Warning: Your /root/.cpan/sources/modules/02packages.details.txt.gz does not contain a Line-Count header.
Please check the validity of the index file by comparing it to more
than one CPAN mirror. I'll continue but problems seem likely to
happen.
Warning: Your /root/.cpan/sources/modules/02packages.details.txt.gz does not contain a Last-Updated header.
Please check the validity of the index file by comparing it to more
than one CPAN mirror. I'll continue but problems seem likely to
happen.
cpanDONE
Going to read '/root/.cpan/sources/modules/03modlist.data.gz'
No history written (no histfile specified).
Lockfile removed.
Can't locate object method "data" via package "CPAN::Modulelist" (perhaps you forgot to load "CPAN::Modulelist"?) at (eval 31) line 1.
 at /usr/share/perl/5.10/CPAN/Index.pm line 518
    CPAN::Index::rd_modlist('CPAN::Index', '/root/.cpan/sources/modules/03modlist.data.gz') called at /usr/share/perl/5.10/CPAN/Index.pm line 85
    CPAN::Index::reload('CPAN::Index') called at /usr/share/perl/5.10/CPAN.pm line 692
    CPAN::all_objects('CPAN=HASH(0xa225610)', 'CPAN::Distribution') called at /usr/share/perl/5.10/CPAN/Shell.pm line 1046
    CPAN::Shell::failed('CPAN::Shell', 2, 1) called at /usr/share/perl/5.10/CPAN.pm line 413
    eval {...} called at /usr/share/perl/5.10/CPAN.pm line 413
  CPAN::shell() called at /usr/bin/cpan line 198

難道我做錯了什么? 我嘗試搜索這些錯誤,但沒有人有正確的解決方案。 我應該更改配置中的某些設置嗎?

如果沒有人能夠解決您的特定問題,我可能會嘗試使用新的cpan,例如:

cd && mv .cpan .cpan-bak

然后再次嘗試安裝模塊。

希望這可以幫助。

我遇到了類似的問題。

情況:

嘗試安裝Catalyst :: Plugin :: AutoCRUD

使用perl版本:perlbrew-5.14.2

解:

問題是sudo我正在使用這樣的cpan install命令:

DIDNT工作:

sudo cpan Catalyst::Plugin::AutoCRUD

作品:

chown -R myusername:myusergroup ~/.cpan
cpan Catalyst::Plugin::AutoCRUD

原因:因為我在我的用戶帳戶下安裝了perlbrew + cpan,而不是root用戶,所有后續的cpan模塊安裝必須由同一個用戶完成。

當我與perl站點的連接超時時,我遇到了同樣的問題。 /root/.cpan/sources/modules/02packages.details.txt.gz僅包含網絡超時的信息,而/root/.cpan/sources/modules/03modlist.data.gz也是垃圾/root/.cpan/sources/modules/03modlist.data.gz

通過刪除這些文件並在網絡不太繁忙時再次嘗試,然后正確地獲取文件並且一切正常。

檢查您的“cpan”版本(您的安裝程序)是否與您的“perl”版本匹配...

通過執行以下操作來檢查: cpan --versionperl -v

我在嘗試安裝另一個模塊時遇到了同樣的錯誤,結果發現我使用的“cpan”版本是作為5.8.8 perl軟件包的一部分編譯的,但是“perl”的版本被設置為默認值這里的工作是版本5.8.5,所以cpan使用對5.8.5 perl基礎實現時不兼容的錯誤的5.8.8 perl基本庫的引用來編譯C代碼。

簡單的解決方案是使用完整路徑“ /usr/.../perl/5.8.5/bin/cpan module_name ”調用正確的“cpan”程序。

將不同版本軟件包的不同二進制文件作為默認值的這種小不一致是我們的管理員的疏忽,並且確實引起了很多悲痛。

要解決此問題,我必須在Centos7上安裝cpanm。

腳步:

yum install perl-devel
yum install perl-CPAN
curl -L http://cpanmin.us | perl - --sudo App::cpanminus

使用以下命令將本地bin( /usr/local/bin )添加到PATH

PATH=$PATH:/usr/local/bin

鏈接

在我的情況下,我需要使用sudo -H運行cpan以獲取我的本地網絡設置(如代理)。 所以:cd && mv .cpan .cpan-bak

然后:sudo -H cpan

默認回答cpan configs(這次沒有出現錯誤)。

然后我就能安裝任何模塊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM