On Fri, Nov 2, 2012 at 1:54 PM, Kamal Ahmed <kamal2222ah...@yahoo.com> 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 ?
>
> Now, how can i trick Jenkins to believe that perl actually means
> /usr/coderyte/bin/perl
>
> Since i cannot change the #! in code.

export PATH=/usr/codertyte/bin:$PATH

will make it so the shell will search your custom directory before
looking in the system-wide directories.

HTH
Andrew

>
> 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.
>
>
>
>
>
>
>
>
>
>
>



-- 
--
Andrew Melo

Reply via email to