2016-07-22 35 views
1

我對Jenkins和Perl非常新,我試圖用Jenkin Job安裝Log4perl模塊。下面是我在詹的執行shell箱如何使用Jenkins安裝Log4perl模塊

perl -MCPAN -e 'install Log::Log4Perl' 

已經使用和下面的命令在詹控制檯日誌消息

12:44:49 PATH="/home/jenkins/perl5/bin${PATH:+:${PATH}}"; export PATH; 
12:44:49 PERL5LIB="/home/jenkins/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB; 
12:44:49 PERL_LOCAL_LIB_ROOT="/home/jenkins/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT; 
12:44:49 PERL_MB_OPT="--install_base \"/home/jenkins/perl5\""; export PERL_MB_OPT; 
12:44:49 PERL_MM_OPT="INSTALL_BASE=/home/jenkins/perl5"; export PERL_MM_OPT; 
12:44:49 
12:44:49 Would you like me to append that to /home/jenkins/.bashrc now? [yes] yes 
12:44:49 
12:44:49 
12:44:49 commit: wrote '/home/jenkins/.cpan/CPAN/MyConfig.pm' 
12:44:49 
12:44:49 You can re-run configuration any time with 'o conf init' in the CPAN shell 
12:44:49 Warning: Cannot install Log::Log4Perl, don't know what it is. 
12:44:49 Try the command 
12:44:49 
12:44:49  i /Log::Log4Perl/ 
12:44:49 
12:44:49 to find objects with matching identifiers. 
12:44:52 [DEV_etl_europcar] $ /bin/sh -xe /tmp/hudson6339194449797505730.sh 
12:44:52 Warning: you have no plugins providing access control for builds, so falling back to legacy behavior of permitting any downstream builds to be triggered 
12:44:52 DEV_send_welcome_email is disabled. Triggering skipped 
12:44:52 Finished: SUCCESS 

在日誌消息,它說

警告:無法安裝Log :: Log4Perl,不知道它是什麼。

我不確定我是否應該忽略上述說明。 另外如何確認log4perl模塊是否安裝成功。

回答

1
  1. 您不應該依賴能夠在Perl中忽略字符串的引號。 perl -MCPAN -e 'install Log::Log4Perl'最好寫成perl -MCPAN -e 'install "Log::Log4Perl"'(如果您嘗試安裝/更新由CPAN加載的任何模塊,則省略引號也會導致奇怪的問題)。

  2. 總之可以簡化爲cpan Log::Log4Perl無論如何。

  3. 發生錯誤是因爲Log::Log4Perl確實不存在,但Log::Log4perl確實(小寫字母p)。

因此:cpan Log::Log4perl應該做你想做的。


至於你的其他問題:「不能安裝...」是指安裝失敗(這不是你可以忽略的東西)。

要確認模塊是否在那裏,請嘗試加載它:perl -e 'require Log::Log4perl'(如果它不在那裏,您將得到Can't locate Log/Log4perl.pm in @INC ...)。

+0

使用'cpan Log :: Log4perl'命令我已經安裝了它,但是當我運行.pl腳本或'perl -e'需要Log :: Log4perl''命令時,我收到消息'Can not locate Log/@INC中的Log4perl.pm(@INC包含:/ usr/local/lib64/perl5 ...' – user5441395

+0

我相信安裝的位置可能是問題,在日誌消息中顯示的安裝路徑是Installing/home/jenkins/perl5/man/man3/Log :: Log4perl :: Layout.3pm',而在運行腳本時,它正在查看'/ usr/local/lib64/perl5 ...'位置。如果是這樣,那麼我怎麼能安裝到特定的位置,如果我錯了,請糾正我。 – user5441395

+0

@ user5441395這是一個['local :: lib'](https://metacpan.org/pod/local::lib)設置,它使模塊安裝到'〜/ perl5'並且還應該從那裏加載perl。你是否像用戶'jenkins'運行'require'命令? – melpomene