Ubuntu系統上編譯和安裝perl和cpan模塊

前言

最近在Ubuntu系統的服務器上編譯代碼的時候,突然報錯了,百度了好幾天都沒有頭緒,後面自己想到了一個方法,希望能幫到後面也遇到相關問題的人。
 

正文

先看一下編譯錯誤的打印:

Your Perl installation is not complete enough; at least the following
modules are missing:

         ExtUtils::MakeMaker
         Thread::Queue

make[1]: *** [core-dependencies] Error 1
make: *** [_all] Error 2

錯誤提示很明顯,說我服務器的Perl缺少兩個模塊。那好,我去安裝這兩個模塊應該就行了吧。搜索了一下,可以利用cpan命令來安裝Perl缺少的模塊(參考鏈接:https://stackoverflow.com/questions/65865/whats-the-easiest-way-to-install-a-missing-perl-module),比如:
 

$ cpan ExtUtils::MakeMaker

但是還是有報錯:

$ cpan ExtUtils::MakeMaker
Can't locate App/Cpan.pm in @INC (you may need to install the App::Cpan module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/x86_64-linux-gnu/perl5/5.20 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl) at /usr/bin/cpan line 15.
BEGIN failed--compilation aborted at /usr/bin/cpan line 15.

WTF!之後又開始了尋找解決辦法的漫漫長路,不過一直沒有找到解決我問題的辦法,而且最慘的是,我服務器的apt-get工具也出問題了,簡直讓人抓狂,畢竟這個服務器是幾個人共用的,也不知道到底誰做了什麼騷操作。既然Perl出了問題,那我重新安裝一個總可以吧。
我的Perl和CPAN模塊下載鏈接如下:

1)https://metacpan.org/release/SHAY/perl-5.20.2
2)https://metacpan.org/release/CPAN

1、Perl編譯

1)先配置一下Makefile文件

$ ./Configure -des -Dprefix=/usr/local/perl-5.20.2 -Dusethreads -Uinstalluserbinperl

2)然後依次執行下面的三條命令

$ make

$ make test

$ sudo make install

3)
安裝完後,就在/usr/local/perl-5.20.2/bin目錄生成了perl可執行文件,這個後面編譯CPAN模塊要用到

2、CPAN編譯

1)配置一下Makefile文件

$ /usr/local/perl-5.20.2/bin/perl5.20.2 Makefile.PL

2)依次執行下面的命令編譯

$ make

$ make test

$ sudo make install

3、模塊安裝

Perl和CPAN都編譯完後,我們先用cpan安裝ExtUtils::MakeMaker和Thread::Queue兩個模塊

1)

$ /usr/local/perl-5.20.2/bin/cpan

執行完有下面的提示,我執行的sudo

What approach do you want?  (Choose 'local::lib', 'sudo' or 'manual')

 [local::lib] sudo

然後就進入了cpan的shell命令行,分別執行安裝缺少的模塊就行了:

cpan[1]> install ExtUtils::MakeMaker

cpan[2]> install Thread::Queue

4、創建軟鏈接

上面的操作完後,我們看一下目前系統使用的perl命令源是哪個:

$ which is perl

/usr/bin/perl

那不是還是原來的perl命令嗎,怎麼才能用我自己編譯安裝的呢?從網上得到了啓發,備份原來的,再創建一個軟鏈接到我編

的那個perl不就行了?

$ sudo mv /usr/bin/perl /usr/bin/perl.bak

$ sudo ln -s /usr/local/perl-5.20.2/bin/perl /usr/bin/perl

結束語

按照上面的操作後,果然就能用了,如果你們的Perl缺少其它的模塊,也可以使用cpan命令進行安裝

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章