its working !
used:
export PATH=/usr/codertyte/bin:$PATH

prove WAS/is  the coderyte prove

Thanks David and Andrew



>________________________________
> From: David Weintraub <[email protected]>
>To: [email protected] 
>Sent: Friday, November 2, 2012 10:20 AM
>Subject: Re: /usr/bin/prove: Cannot find blib
> 
>
>
>
>On Nov 2, 2012, at 8:54 AM, Kamal Ahmed <[email protected]> wrote:
>
>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 ?
>
>Yes.
>
>
>>
>>Now, how can i trick Jenkins to believe that perl actually 
>>means /usr/coderyte/bin/perl
>>
>>
>>Since i cannot change the #! in code.
>
>Instead of executing just "prove", execute "/usr/coderyte/bin/perl prove". 
>This will specify the version of Perl you want to use.
>
>
>
>>
>>Thanks,
>>-Kamal.
>>
>>>________________________________
>>> From: David Weintraub <[email protected]>
>>>To: [email protected] 
>>>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 <[email protected]> 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 <[email protected]>
>>>>To: [email protected] 
>>>>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 <[email protected]> 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 <[email protected]>
>>>>>To: [email protected] 
>>>>>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 <[email protected]> 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