right on the dot!

Here is what i believe is happening:
Jenkins THINKS the perl means /usr/bin/perl , but the actual perl is 
/usr/coderyte/bin/perl

which prove
/usr/coderyte/bin/prove
kahmed@athena ~/workspace/ONATHENA $ which perl
/usr/coderyte/bin/perl

am i right in this assumption ?

Now, how can i trick Jenkins to believe that perl actually 
means /usr/coderyte/bin/perl

Since i cannot change the #! in code.

Thanks,
-Kamal.

>________________________________
> From: David Weintraub <qazw...@gmail.com>
>To: jenkinsci-users@googlegroups.com 
>Sent: Thursday, November 1, 2012 10:01 PM
>Subject: Re: /usr/bin/prove: Cannot find blib
> 
>
>Look at this @INC path:
>
>
>       * /extra/coderyte/nlp-builds/icd/icd-current/tools/perl_lib 
>       * /extra/coderyte/www/iatqa/cgi-bin 
>       * /extra/coderyte/www/iatqa/bin/engine/icd 
>       * /extra/coderyte/www/iatqa/etc 
>       * /extra/coderyte/www/iatqa/bin/engine/icd/engine 
>       * /extra/coderyte/www/iatqa/bin/engine/icd/engine/perl_lib 
>       * /extra/coderyte/www/iatqa/bin/engine/icd/engine/preproc 
>       * /usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi 
>       * /usr/lib/perl5/5.8.5 
> /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi 
>       * /usr/lib/perl5/site_perl/5.8.5 
>       * /usr/lib/perl5/site_perl 
> /usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi 
>       * /usr/lib/perl5/vendor_perl/5.8.5 
> /usr/lib64/perl5/vendor_perl/5.8.3/x86_64-linux-thread-multi 
>       * /usr/lib/perl5/vendor_perl
>Now look at the one @INC you sent me with the program error:
>
>
>       * /usr/coderyte/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi
>       * /usr/coderyte/lib/perl5/site_perl/5.8.8 
>       * /usr/coderyte/lib/perl5/5.8.8/x86_64-linux-thread-multi 
>       * /usr/coderyte/lib/perl5/5.8.8 
>
>
>You see a difference?
>
>
>In fact, I believe you're looking at two different Perl libraries being 
>executed. Note the "perl5" portions of the paths! In the second one, they're 
>all /usr/coderyte/lib. In the one you just sent me, they're "/usr/lib/perl5". 
>
>
>The "site_perl" paths are for CPAN modules you install. They're usually in the 
>@INC first, so you can override the versions of the same modules that came 
>wiith the installation.
>
>
>So, your problem is that you are executing two different Perl programs. One 
>you are using when you use Jenkins which is the Perl version that probably 
>came with the system. The other is what you execute when you use the SSH user.
>
>
>Log in as your SSH user, the one which allows the program to work. Then, type 
>in "which perl" at the command line. This is the Perl you must execute as the 
>Jenkins user. Either fix the first line (the shebang (#!)) to point to the SSH 
>user's Perl, or prepend your Perl script with that Perl program (include the 
>full path).
>
>
>
>
>On Nov 1, 2012, at 8:31 PM, Kamal Ahmed <kamal2222ah...@yahoo.com> wrote:
>
>
>David,
>>
>>Unfortunately i would have to stick to Perl 5.8.8
>>Here is more of the error:
>>
>>15:06:11
>>
>>
>> + sh run_prove.sh
>>15:06:18
>> ./DBI_CrossFeed_Crosswalk_custom.................................Can't 
>>locate Log/Log4perl.pm in @INC (@INC contains: 
>>/extra/coderyte/nlp-builds/icd/icd-current/tools/perl_lib 
>>/extra/coderyte/www/iatqa/cgi-bin /extra/coderyte/www/iatqa/bin/engine/icd 
>>/extra/coderyte/www/iatqa/etc /extra/coderyte/www/iatqa/bin/engine/icd/engine 
>>/extra/coderyte/www/iatqa/bin/engine/icd/engine/perl_lib 
>>/extra/coderyte/www/iatqa/bin/engine/icd/engine/preproc 
>>/usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/5.8.5 
>>/usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi 
>>/usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl 
>>/usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi 
>>/usr/lib/perl5/vendor_perl/5.8.5 
>>/usr/lib64/perl5/vendor_perl/5.8.3/x86_64-linux-thread-multi 
>>/usr/lib/perl5/vendor_perl .) at 
>>/extra/coderyte/www/iatqa/cgi-bin/CodeRyte/Lynx.pm line 28.
>>15:06:18
>> BEGIN failed--compilation aborted at 
>>/extra/coderyte/www/iatqa/cgi-bin/CodeRyte/Lynx.pm line 28.
>>15:06:18
>> Compilation failed in require at 
>>/extra/coderyte/www/iatqa/cgi-bin/CodeRyte/Lynx/Lynx_Utilities.pm line 8.
>>15:06:18
>> BEGIN failed--compilation aborted at 
>>/extra/coderyte/www/iatqa/cgi-bin/CodeRyte/Lynx/Lynx_Utilities.pm line 8.
>>15:06:18
>> Compilation failed in require at ./DBI_CrossFeed_Crosswalk_custom.t line 10.
>>15:06:18
>> BEGIN failed--compilation aborted at ./DBI_CrossFeed_Crosswalk_custom.t line 
>>10.
>>15:06:18
>> # Looks like your test died before it could output anything.
>>15:06:18
>> dubious
>>15:06:18
>> Test returned status 2 (wstat 512, 0x200)
>>15:06:19
>> ./DBI_Services_NoteProfile.......................................Can't 
>>locate Date/Calc.pm in @INC (@INC contains: /extra/coderyte/www/iatqa/cgi-bin 
>>/extra/coderyte/www/iatqa/bin/engine/icd /extra/coderyte/www/iatqa/etc 
>>/extra/coderyte/www/iatqa/bin/engine/icd/engine 
>>/extra/coderyte/www/iatqa/bin/engine/icd/engine/perl_lib 
>>/extra/coderyte/www/iatqa/bin/engine/icd/engine/preproc 
>>/usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/5.8.5 
>>/usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi 
>>/usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.5 
>>/usr/lib/perl5/site_perl 
>>/usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi 
>>/usr/lib/perl5/vendor_perl/5.8.5 
>>/usr/lib64/perl5/vendor_perl/5.8.3/x86_64-linux-thread-multi 
>>/usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl . 
>>/usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/5.8.5 
>>/usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi
>> /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl 
>>/usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi 
>>/usr/lib/perl5/vendor_perl/5.8.5 
>>/usr/lib64/perl5/vendor_perl/5.8.3/x86_64-linux-thread-multi 
>>/usr/lib/perl5/vendor_perl .) at 
>>/extra/coderyte/www/iatqa/cgi-bin/CodeRyte/Lynx/StagingDB.pm line 3.
>>
>>and so on...
>>
>>
>>15:06:24
>> #     Error:  Can't locate Text/Unidecode.pm in @INC (@INC contains: 
>>/extra/coderyte/www/iatqa/cgi-bin /extra/coderyte/www/iatqa/bin/engine/icd 
>>/extra/coderyte/www/iatqa/etc /extra/coderyte/www/iatqa/bin/engine/icd/engine 
>>/extra/coderyte/www/iatqa/bin/engine/icd/engine/perl_lib 
>>/extra/coderyte/www/iatqa/bin/engine/icd/engine/preproc 
>>/usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/5.8.5 
>>/usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi 
>>/usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.5 
>>/usr/lib/perl5/site_perl 
>>/usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi 
>>/usr/lib/perl5/vendor_perl/5.8.5 
>>/usr/lib64/perl5/vendor_perl/5.8.3/x86_64-linux-thread-multi 
>>/usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl . 
>>/usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi /usr/lib/perl5/5.8.5
>> /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi 
>>/usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl 
>>/usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi 
>>/usr/lib/perl5/vendor_perl/5.8.5 
>>/usr/lib64/perl5/vendor_perl/5.8.3/x86_64-linux-thread-multi 
>>/usr/lib/perl5/vendor_perl .) at 
>>/extra/coderyte/www/iatqa/cgi-bin/CodeRyte/Lynx/Feed.pm line 5.
>>15:06:24
>> # BEGIN failed--compilation aborted at 
>>/extra/coderyte/www/iatqa/cgi-bin/CodeRyte/Lynx/Feed.pm line 5.
>>15:06:24
>> # Compilation failed in require at (eval 1) line 2.
>>15:06:24
>> Can't locate object method "new" via package "CodeRyte::Lynx::Feed" at 
>>./Feed-Binary_Conversion.t line 13.
>>15:06:24
>> 1..1
>>15:06:24
>> # Looks like you failed 1 tests of 1.
>>15:06:24
>> # Looks like your test died just after 1.
>>15:06:24
>> dubious
>>15:06:24
>> Test returned status 255 (wstat 65280, 0xff00)
>>15:06:24
>> DIED. FAILED test 1
>>15:06:24
>> Failed 1/1 tests, 0.00% okay
>>15:06:24 ./DBI_Assembler_Primary_Defined_Counts...........................Can't
>> locate Log/Log4perl.pm in @INC (@INC contains: 
>>
>>
>>Strange thing is when @ work, i am connected to this remote slave , and when 
>>i come home and connect via VPN, i am still connected even though the IP 
>>changed, and the connection was severed for the time i was driving.
>>
>>
>>From: David Weintraub <qazw...@gmail.com>
>>To: jenkinsci-users@googlegroups.com 
>>Sent: Thursday, November 1, 2012 1:09 PM
>>Subject: Re: /usr/bin/prove: Cannot find blib
>>
>>I see you're on Perl 5.8.8 -- a release of Perl that's over six years old. 
>>The "use feature" pragma didn't come in until Perl 5.10 (current version is 
>>5.16). All that "use feature" does is give you access to the "say" command. 
>>Say is like "print" except that it automatically includes a "\n".
>>
>>Use this program. I removed "say" and used "print" instead:
>>
>>#!/usr/bin/env perl
>>use strict;
>>use warnings;
>>
>>use Log::Log4Perl
>>
>>print  "Perl \@INC: " . join ("\n", @INC) . "\n";
>>for my $module (sort keys %INC) {
>>    print qq(\$INC{$module} = "$INC{$module}"\n);
>>}
>>
>>By the way, note the @INC array which printed out as part of the error 
>>message:
>>
>>* /usr/coderyte/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi
>>* /usr/coderyte/lib/perl5/site_perl/5.8.8 
>>* /usr/coderyte/lib/perl5/5.8.8/x86_64-linux-thread-multi 
>>* /usr/coderyte/lib/perl5/5.8.8 
>>
>>Compare that with the one you got as the Jenkins user. (You didn't include 
>>that in your original email!). I can see that Perl 5.8.8 isn't installed as a 
>>standard Perl program because it's under /usr/coderyte and not a standard 
>>directory. On most Unix type systems it's under /usr/share/perl or 
>>/usr/local/perl, or /var/perl or /opt/perl. I suspect that your Jenkins user 
>>is looking in different directories and maybe even using a completely 
>>different version of Perl.
>>
>>What's the full error message you're getting with Jenkins. You only gave:
>>
>>
>>11:41:35 Can't locate Log/Log4perl.pm in @INC (@INC contains: 
>>>
>>You left off the interesting part.
>>
>>On Nov 1, 2012, at 12:56 PM, Kamal Ahmed <kamal2222ah...@yahoo.com> wrote:
>>
>>
>>Hi David,
>>>Now i am getting error:
>>>
>>>./test_log4p.pl 
>>>Can't locate feature.pm in @INC (@INC contains: 
>>>/usr/coderyte/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/coderyte/lib/perl5/site_perl/5.8.8
>>> /usr/coderyte/lib/perl5/5.8.8/x86_64-linux-thread-multi 
>>>/usr/coderyte/lib/perl5/5.8.8 .) at ./test_log4p.pl line 4.
>>>BEGIN failed--compilation aborted at ./test_log4p.pl line 4.
>>>
>>>
>>> more test_log4p.pl 
>>>
>>>#!/usr/bin/env perl
>>>use strict;
>>>use warnings;
>>>use feature qw(say);
>>>
>>>use Log::Log4Perl
>>>
>>>say "Perl \@INC: " . join "\n", @INC;
>>>for my $module (sort keys %INC) {
>>>    say qq(\$INC{$module} = "$INC{$module}");
>>>}
>>>
>>>From: David Weintraub <qazw...@gmail.com>
>>>To: jenkinsci-users@googlegroups.com 
>>>Sent: Thursday, November 1, 2012 12:27 PM
>>>Subject: Re: /usr/bin/prove: Cannot find blib
>>>
>>>Perl CPAN modules can be installed via user or via machine. Normally, if you 
>>>can't get root access on the machine, you install it for that user. Maybe 
>>>the Log::Log4perl module is installed as a user module. Thus, if you're 
>>>running it as another user, you simply can't find the module.
>>>
>>>Another possibility is that the module wasn't installed, and is located in a 
>>>different directory than expected. The Perl @INC shows you the directories 
>>>where modules are searched. The %INC hash shows the module loaded and the 
>>>directory where found. 
>>>
>>>Try a simple program:
>>>
>>>use strict;
>>>use warnings;
>>>use feature qw(say);
>>>
>>>use Log::Log4Perl
>>>
>>>say "Perl \@INC: " . join "\n", @INC;
>>>for my $module (sort keys %INC) {
>>>    say qq(\$INC{$module} = "$INC{$module}");
>>>}
>>>
>>>Do this via SSH where you can execute run_prove.sh and it works. This will 
>>>show you where this program is searching for the module and where it finds 
>>>it. That will give you an idea why Jenkins can't find it.
>>>
>>>If you do find that Log::Log4Perl is not where you expect it, use the "use 
>>>lib" pragma to add that directory to your @INC search array.
>>>
>>>On Nov 1, 2012, at 12:15 PM, Kamal Ahmed <kamal2222ah...@yahoo.com> wrote:
>>>
>>>
>>>Hi,
>>>>When i run run_prove.sh after doing an ssh to host , the perl unit tests 
>>>>run fine
>>>>but when i do it via "Execute shell script on remote host using ssh" i get 
>>>>error:
>>>>
>>>>11:41:35
>>>> + prove -b -v -r .
>>>>
>>>>11:41:35
>>>> /usr/bin/prove: Cannot find blib
>>>>
>>>>11:41:35
>>>> No blib directories found.
>>>>
>>>>11:41:35 Can't locate Log/Log4perl.pm in @INC (@INC contains: 
>>>>
>>>>I have tried with just execute shell script option as well, same result
>>>>
>>>>Would appreciate any help / Hint/Resolution
>>>>
>>>>Thanks,
>>>>-Kamal.
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
>
>

Reply via email to