Re: which perl?
Thanks Andrew- good stuff. You've convinced me, I'm just going to bite the bullet and rebuild :) todd On Sun, 24 Jun 2001, Andrew Ho wrote: > Todd, > > Perl and mod_perl are separate entities altogether. Perl is the scripting > language. mod_perl is an extension to Apache, which builds a Perl > interpreter into the Apache webserver. > > The binary components are mostly separate, e.g. you could theoretically > run Perl and mod_perl at different versions; the actual "perl" binary and > the mod_perl extensions are separate. > > However, the Perl interpreter built into the Apache webserver, plus all > the associated Perl modules that implement mod_perl's functionality, > inherit all the characteristics of the Perl it was built against--bugs in > the interpreter, language characteristics, or where to find libraries. > > In your case it sounds like your mod_perl is built for a different version > of Perl. As several others have suggested, the best way is to rebuild > mod_perl so it is built against your version of Perl. > > Another easier to do it would be to use your vendor's package system, > for example if you are using RedHat or Debian, you may be able to find > Perl and mod_perl packages (RPMs or whatnot) and install them to fix the > versioning issues. > > I still recommend building it; for the base case, it's pretty easy to do. > Follow the "all-in-one" directions in the mod_perl download and it usually > Just Works. > > The symlinking and changing the @INC path may work, but this is a hacky, > symptomatic solution at best. > > Humbly, > > Andrew > > -- > Andrew Ho http://www.tellme.com/ [EMAIL PROTECTED] > Engineer [EMAIL PROTECTED] Voice 650-930-9062 > Tellme Networks, Inc. 1-800-555-TELLFax 650-930-9101 > -- > >
Re: which perl?
On Sun, 24 Jun 2001, Todd Goldenbaum wrote: > > actually yes, they appear to be in the right order: > > > > $ perl -V > > > > Characteristics of this binary (from libperl): > > Compile-time options: USE_LARGE_FILES > > Built under linux > > Compiled at May 23 2001 08:18:14 > > @INC: > > /usr/local/lib/perl5/5.6.1/i686-linux > > /usr/local/lib/perl5/5.6.1 > > /usr/local/lib/perl5/site_perl/5.6.1/i686-linux > > /usr/local/lib/perl5/site_perl/5.6.1 > > /usr/local/lib/perl5/site_perl > > > > and yet, mod perl is still showing that it's using 5.6.0... > > note- the results i get from a script running under mod_perl is slightly > different, but 5.6.1 is indeed first. (this is the output of @INC) > > /usr/local/lib/perl5/5.6.1 > /usr/local/lib/perl5/site_perl/5.6.1 > /usr/lib/perl5/5.6.0/i386-linux > /usr/lib/perl5/5.6.0 > /usr/lib/perl5/site_perl/5.6.0/i386-linux > /usr/lib/perl5/site_perl/5.6.0 > /usr/lib/perl5/site_perl > > i may have misunderstood- were you recommending that i actually delete > these 5.6.0 directories, and symlink them over to the 5.6.1 equivs? It's me who wasn't clear. Of course perl -V is not what you want. I just suggested it as an example to see what your @INC under mod_perl should be like. So grab the output of perl -V, and put it in use lib qw(HERE); in startup.pl now make sure that 5.6.1's 4 directories are coming up first in @INC. As you can see your output is missing i386-linux dirs for 5.6.1. remove the symlinks. ALso I repeat that this won't work if your 5.6.0 is binary incompatible with 5.6.1 (which is the case if you've changed build args, like enable/disable threads and similar). Of course the best thing is to recompile :) _ Stas Bekman JAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide http://perl.apache.org/guide mailto:[EMAIL PROTECTED] http://apachetoday.com http://eXtropia.com/ http://singlesheaven.com http://perl.apache.org http://perlmonth.com/
Re: which perl?
Hello, R>Really R> R>I asked this question and didn't get much of an answer from folks other R>than they THOUGHT it was built in the perl binary. R>I recommend whatever stas is saying. Stop being an ass, and maybe people will help you out. Humbly, Andrew -- Andrew Ho http://www.tellme.com/ [EMAIL PROTECTED] Engineer [EMAIL PROTECTED] Voice 650-930-9062 Tellme Networks, Inc. 1-800-555-TELLFax 650-930-9101 --
Re: which perl?
I recommend whatever stas is saying. Ruben > > actually yes, they appear to be in the right order: > > > > $ perl -V > > > > Characteristics of this binary (from libperl): > > Compile-time options: USE_LARGE_FILES > > Built under linux > > Compiled at May 23 2001 08:18:14 > > @INC: > > /usr/local/lib/perl5/5.6.1/i686-linux > > /usr/local/lib/perl5/5.6.1 > > /usr/local/lib/perl5/site_perl/5.6.1/i686-linux > > /usr/local/lib/perl5/site_perl/5.6.1 > > /usr/local/lib/perl5/site_perl > > > > and yet, mod perl is still showing that it's using 5.6.0... > > note- the results i get from a script running under mod_perl is slightly > different, but 5.6.1 is indeed first. (this is the output of @INC) > > /usr/local/lib/perl5/5.6.1 > /usr/local/lib/perl5/site_perl/5.6.1 > /usr/lib/perl5/5.6.0/i386-linux > /usr/lib/perl5/5.6.0 > /usr/lib/perl5/site_perl/5.6.0/i386-linux > /usr/lib/perl5/site_perl/5.6.0 > /usr/lib/perl5/site_perl > > i may have misunderstood- were you recommending that i actually delete > these 5.6.0 directories, and symlink them over to the 5.6.1 equivs? >
Re: which perl?
Todd, Perl and mod_perl are separate entities altogether. Perl is the scripting language. mod_perl is an extension to Apache, which builds a Perl interpreter into the Apache webserver. The binary components are mostly separate, e.g. you could theoretically run Perl and mod_perl at different versions; the actual "perl" binary and the mod_perl extensions are separate. However, the Perl interpreter built into the Apache webserver, plus all the associated Perl modules that implement mod_perl's functionality, inherit all the characteristics of the Perl it was built against--bugs in the interpreter, language characteristics, or where to find libraries. In your case it sounds like your mod_perl is built for a different version of Perl. As several others have suggested, the best way is to rebuild mod_perl so it is built against your version of Perl. Another easier to do it would be to use your vendor's package system, for example if you are using RedHat or Debian, you may be able to find Perl and mod_perl packages (RPMs or whatnot) and install them to fix the versioning issues. I still recommend building it; for the base case, it's pretty easy to do. Follow the "all-in-one" directions in the mod_perl download and it usually Just Works. The symlinking and changing the @INC path may work, but this is a hacky, symptomatic solution at best. Humbly, Andrew -- Andrew Ho http://www.tellme.com/ [EMAIL PROTECTED] Engineer [EMAIL PROTECTED] Voice 650-930-9062 Tellme Networks, Inc. 1-800-555-TELLFax 650-930-9101 --
Re: which perl?
> actually yes, they appear to be in the right order: > > $ perl -V > > Characteristics of this binary (from libperl): > Compile-time options: USE_LARGE_FILES > Built under linux > Compiled at May 23 2001 08:18:14 > @INC: > /usr/local/lib/perl5/5.6.1/i686-linux > /usr/local/lib/perl5/5.6.1 > /usr/local/lib/perl5/site_perl/5.6.1/i686-linux > /usr/local/lib/perl5/site_perl/5.6.1 > /usr/local/lib/perl5/site_perl > > and yet, mod perl is still showing that it's using 5.6.0... note- the results i get from a script running under mod_perl is slightly different, but 5.6.1 is indeed first. (this is the output of @INC) /usr/local/lib/perl5/5.6.1 /usr/local/lib/perl5/site_perl/5.6.1 /usr/lib/perl5/5.6.0/i386-linux /usr/lib/perl5/5.6.0 /usr/lib/perl5/site_perl/5.6.0/i386-linux /usr/lib/perl5/site_perl/5.6.0 /usr/lib/perl5/site_perl i may have misunderstood- were you recommending that i actually delete these 5.6.0 directories, and symlink them over to the 5.6.1 equivs?
Re: which perl?
On Mon, 25 Jun 2001, Stas Bekman wrote: > On Sun, 24 Jun 2001, Todd Goldenbaum wrote: > > > On Sun, 24 Jun 2001, Stas Bekman wrote: > > > > > On Sun, 24 Jun 2001, Brooklyn Linux Solutions CEO wrote: > > > > > > > > > It's got to be built in. My mod_perl conf keeps looking in 5.6.0 in the >@INC > > > > > > array even after the 5.6.1 upgrade > > > > > > > > > I got sick of the problem and linked 5.6.1 into 5.6.0 > > > > > > You could achieve the same with: > > > > > > startup.pl: > > > --- > > > use lib qw(/usr/lib/perl5/5.6.1 /usr/lib/perl5/site_perl/5.6.1); > > > > > > note that lib.pm takes care of adding the arch lib paths (i686-linux on my > > > machine) and removing dups. > > > > interesting. I created a symlink to my 5.6.1 binary, and I am pointing to > > the 5.6.1 libraries within my PerlRequire script (in my case it's mason's > > handler.pl)... and yet, modperl is still using 5.6.0! > > also notice that this will work only if your libs are binary compatible. > > did you make 4 symlinks? I've numbered these below as 1-4 > > mine is: > > $ perl -V > > Characteristics of this binary (from libperl): > Compile-time options: DEBUGGING USE_LARGE_FILES > Built under linux > Compiled at Apr 20 2001 22:58:59 > @INC: > 1/usr/lib/perl5/5.6.1/i686-linux > 2/usr/lib/perl5/5.6.1 > 3/usr/lib/perl5/site_perl/5.6.1/i686-linux > 4/usr/lib/perl5/site_perl/5.6.1 > /usr/lib/perl5/site_perl/5.6.0 > /usr/lib/perl5/site_perl/5.005 > /usr/lib/perl5/site_perl actually yes, they appear to be in the right order: $ perl -V Characteristics of this binary (from libperl): Compile-time options: USE_LARGE_FILES Built under linux Compiled at May 23 2001 08:18:14 @INC: /usr/local/lib/perl5/5.6.1/i686-linux /usr/local/lib/perl5/5.6.1 /usr/local/lib/perl5/site_perl/5.6.1/i686-linux /usr/local/lib/perl5/site_perl/5.6.1 /usr/local/lib/perl5/site_perl and yet, mod perl is still showing that it's using 5.6.0...
Re: which perl?
On Sun, 24 Jun 2001, Todd Goldenbaum wrote: > On Sun, 24 Jun 2001, Stas Bekman wrote: > > > On Sun, 24 Jun 2001, Brooklyn Linux Solutions CEO wrote: > > > > > > > It's got to be built in. My mod_perl conf keeps looking in 5.6.0 in the @INC > > > > > array even after the 5.6.1 upgrade > > > > > > > I got sick of the problem and linked 5.6.1 into 5.6.0 > > > > You could achieve the same with: > > > > startup.pl: > > --- > > use lib qw(/usr/lib/perl5/5.6.1 /usr/lib/perl5/site_perl/5.6.1); > > > > note that lib.pm takes care of adding the arch lib paths (i686-linux on my > > machine) and removing dups. > > interesting. I created a symlink to my 5.6.1 binary, and I am pointing to > the 5.6.1 libraries within my PerlRequire script (in my case it's mason's > handler.pl)... and yet, modperl is still using 5.6.0! also notice that this will work only if your libs are binary compatible. did you make 4 symlinks? I've numbered these below as 1-4 mine is: $ perl -V Characteristics of this binary (from libperl): Compile-time options: DEBUGGING USE_LARGE_FILES Built under linux Compiled at Apr 20 2001 22:58:59 @INC: 1/usr/lib/perl5/5.6.1/i686-linux 2/usr/lib/perl5/5.6.1 3/usr/lib/perl5/site_perl/5.6.1/i686-linux 4/usr/lib/perl5/site_perl/5.6.1 /usr/lib/perl5/site_perl/5.6.0 /usr/lib/perl5/site_perl/5.005 /usr/lib/perl5/site_perl . > I am really at a loss... I'm really hoping i won't have to rebuild mod_perl > as this particular server is using a pre-built SSL version we don't want to > break ;) but would that even help? Is sounds like it shouldn't be necessary. > > thanks > todd > > _ Stas Bekman JAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide http://perl.apache.org/guide mailto:[EMAIL PROTECTED] http://apachetoday.com http://eXtropia.com/ http://singlesheaven.com http://perl.apache.org http://perlmonth.com/
Re: which perl?
On Sun, 24 Jun 2001, Todd Goldenbaum wrote: > On Sun, 24 Jun 2001, Stas Bekman wrote: > > > On Sun, 24 Jun 2001, Brooklyn Linux Solutions CEO wrote: > > > > > > > It's got to be built in. My mod_perl conf keeps looking in 5.6.0 in the @INC > > > > > array even after the 5.6.1 upgrade > > > > > > > I got sick of the problem and linked 5.6.1 into 5.6.0 > > > > You could achieve the same with: > > > > startup.pl: > > --- > > use lib qw(/usr/lib/perl5/5.6.1 /usr/lib/perl5/site_perl/5.6.1); > > > > note that lib.pm takes care of adding the arch lib paths (i686-linux on my > > machine) and removing dups. > > interesting. I created a symlink to my 5.6.1 binary, and I am pointing to > the 5.6.1 libraries within my PerlRequire script (in my case it's mason's > handler.pl)... and yet, modperl is still using 5.6.0! > > I am really at a loss... I'm really hoping i won't have to rebuild mod_perl > as this particular server is using a pre-built SSL version we don't want to > break ;) but would that even help? Is sounds like it shouldn't be necessary. check the order of paths in @INC. If 5.6.0 is coming first, that explains your problem. try: perl -le 'print join "\n", @INC' but this is your perl with no @INC adjustments. do the same from some simple CGI script /server-status via Apache::Status is another way to check (See the guide or the manpage) _ Stas Bekman JAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide http://perl.apache.org/guide mailto:[EMAIL PROTECTED] http://apachetoday.com http://eXtropia.com/ http://singlesheaven.com http://perl.apache.org http://perlmonth.com/
Re: which perl?
On Sun, 24 Jun 2001, Stas Bekman wrote: > On Sun, 24 Jun 2001, Brooklyn Linux Solutions CEO wrote: > > > > > It's got to be built in. My mod_perl conf keeps looking in 5.6.0 in the @INC > > > > array even after the 5.6.1 upgrade > > > > > I got sick of the problem and linked 5.6.1 into 5.6.0 > > You could achieve the same with: > > startup.pl: > --- > use lib qw(/usr/lib/perl5/5.6.1 /usr/lib/perl5/site_perl/5.6.1); > > note that lib.pm takes care of adding the arch lib paths (i686-linux on my > machine) and removing dups. interesting. I created a symlink to my 5.6.1 binary, and I am pointing to the 5.6.1 libraries within my PerlRequire script (in my case it's mason's handler.pl)... and yet, modperl is still using 5.6.0! I am really at a loss... I'm really hoping i won't have to rebuild mod_perl as this particular server is using a pre-built SSL version we don't want to break ;) but would that even help? Is sounds like it shouldn't be necessary. thanks todd
Re: which perl?
> > use lib qw(/usr/lib/perl5/5.6.1 /usr/lib/perl5/site_perl/5.6.1); > > > > note that lib.pm takes care of adding the arch lib paths (i686-linux on my > > machine) and removing dups. > > Really > > I asked this question and didn't get much of an answer from folks other than > they THOUGHT it was built in the perl binary. You are not the first to have this question. You are not the first to ask many other questions. Most of these recurring questions and the answers to them are documented in the guide. I've sent you the link with the answer in my previous email, but apparently you've ignored it. I don't know why. If you have a question regarding mod_perl, this is the path you should follow: 1. search the guide and other docs at perl.apache.org 2. search your favorite mail archive linked from perl.apache.org 3. ask the list. Hope this helps. _ Stas Bekman JAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide http://perl.apache.org/guide mailto:[EMAIL PROTECTED] http://apachetoday.com http://eXtropia.com/ http://singlesheaven.com http://perl.apache.org http://perlmonth.com/
Re: which perl?
> use lib qw(/usr/lib/perl5/5.6.1 /usr/lib/perl5/site_perl/5.6.1); > > note that lib.pm takes care of adding the arch lib paths (i686-linux on my > machine) and removing dups. > Really I asked this question and didn't get much of an answer from folks other than they THOUGHT it was built in the perl binary.
Re: which perl?
On Sun, 24 Jun 2001, Brooklyn Linux Solutions CEO wrote: > > > It's got to be built in. My mod_perl conf keeps looking in 5.6.0 in the @INC > > > array even after the 5.6.1 upgrade > > > I got sick of the problem and linked 5.6.1 into 5.6.0 You could achieve the same with: startup.pl: --- use lib qw(/usr/lib/perl5/5.6.1 /usr/lib/perl5/site_perl/5.6.1); note that lib.pm takes care of adding the arch lib paths (i686-linux on my machine) and removing dups. _ Stas Bekman JAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide http://perl.apache.org/guide mailto:[EMAIL PROTECTED] http://apachetoday.com http://eXtropia.com/ http://singlesheaven.com http://perl.apache.org http://perlmonth.com/
Re: which perl?
> > It's got to be built in. My mod_perl conf keeps looking in 5.6.0 in the @INC > > array even after the 5.6.1 upgrade > I got sick of the problem and linked 5.6.1 into 5.6.0 Ruben
Re: which perl?
> It's got to be built in. My mod_perl conf keeps looking in 5.6.0 in the @INC > array even after the 5.6.1 upgrade Rebuild mod_perl or add the 5.6.1 paths to @INC in startup.pl via use lib: http://perl.apache.org/guide/install.html#Should_I_Rebuild_mod_perl_if_I_h > which was more or less forced on me > by cpan. Yeah, it's a known bug, has been fixed lately. > It kind of ticks me off those guys who install modules on CPAN which > upgrade by damn perl. Configure CPAN.pm to 'ask' rather than 'follow'. I was aborting the fetch of 5.6.1 manually by punching Ctrl-C a few times. > NET::FTP of libnet is a big culprit of this. > > Ruben > > > > gotcha. so it's 5.6.0... however i'm still really curious about whether > > mod_perl 'builds in' the interpreter when you build apache, or is it when > > you >run< apache? > > > > what i'm actually trying to do is get mod_perl to use a different version > > of perl also installed on my system, 5.6.1, so as to settle some problems > > within mason causing the httpd child processes to segfault. > > > > > > > _ Stas Bekman JAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide http://perl.apache.org/guide mailto:[EMAIL PROTECTED] http://apachetoday.com http://eXtropia.com/ http://singlesheaven.com http://perl.apache.org http://perlmonth.com/
Re: which perl?
It's got to be built in. My mod_perl conf keeps looking in 5.6.0 in the @INC array even after the 5.6.1 upgrade which was more or less forced on me by cpan. It kind of ticks me off those guys who install modules on CPAN which upgrade by damn perl. NET::FTP of libnet is a big culprit of this. Ruben > gotcha. so it's 5.6.0... however i'm still really curious about whether > mod_perl 'builds in' the interpreter when you build apache, or is it when > you >run< apache? > > what i'm actually trying to do is get mod_perl to use a different version > of perl also installed on my system, 5.6.1, so as to settle some problems > within mason causing the httpd child processes to segfault. > > >
Re: which perl?
On Sat, 23 Jun 2001, Chris Reinhardt wrote: > On Sat, 23 Jun 2001, Todd Goldenbaum wrote: > > > Hi, > > > > I am running Apache/1.3.14 (Unix) mod_perl/1.25 on a redhat 7 system. > > Since the perl binary that came with the redhat distribution was > > version 5.6.0, I assumed that is the version that got built into mod > > perl (statically linked). But I just discovered using perl's $] > > variable, that it's actually using 5.006! > > > > So far as I can tell, I don't even have a copy of perl 5.006 on my system... > > Is mod_perl actulaly distributed with a version of perl interpreter intact? > > If so, How do I upgrade it? > > > > Ummm 5.006 _is_ 5.6.0, just in the old perl numbering scheme. how strange. > ctriv@quartz:~$ perl -v > > This is perl, v5.6.1 built for sun4-solaris > > ctriv@quartz:~$ perl -e 'print "$]\n"' > 5.006001 > > You should look at something like this (or it's sprintf equivalent). > ctriv@quartz:~$ perl -e 'printf("%vd\n", $^V)' > 5.6.1 gotcha. so it's 5.6.0... however i'm still really curious about whether mod_perl 'builds in' the interpreter when you build apache, or is it when you >run< apache? what i'm actually trying to do is get mod_perl to use a different version of perl also installed on my system, 5.6.1, so as to settle some problems within mason causing the httpd child processes to segfault.
Re: which perl?
On Sat, 23 Jun 2001, Todd Goldenbaum wrote: > Hi, > > I am running Apache/1.3.14 (Unix) mod_perl/1.25 on a redhat 7 system. > Since the perl binary that came with the redhat distribution was > version 5.6.0, I assumed that is the version that got built into mod > perl (statically linked). But I just discovered using perl's $] > variable, that it's actually using 5.006! > > So far as I can tell, I don't even have a copy of perl 5.006 on my system... > Is mod_perl actulaly distributed with a version of perl interpreter intact? > If so, How do I upgrade it? > Ummm 5.006 _is_ 5.6.0, just in the old perl numbering scheme. ctriv@quartz:~$ perl -v This is perl, v5.6.1 built for sun4-solaris ctriv@quartz:~$ perl -e 'print "$]\n"' 5.006001 You should look at something like this (or it's sprintf equivalent). ctriv@quartz:~$ perl -e 'printf("%vd\n", $^V)' 5.6.1 Chris R. -- Chris Reinhardt [EMAIL PROTECTED] Webmaster Dynamic DNS Network Services http://www.dyndns.org/
Re: which perl?
On Sat, 23 Jun 2001, Steven Lembark wrote: > > > I am running Apache/1.3.14 (Unix) mod_perl/1.25 on a redhat 7 system. > > Since the perl binary that came with the redhat distribution was version > > 5.6.0, I assumed that is the version that got built into mod perl > > (statically linked). But I just discovered using perl's $] variable, > > that it's actually using 5.006! > > > > So far as I can tell, I don't even have a copy of perl 5.006 on my > > system... Is mod_perl actulaly distributed with a version of perl > > interpreter intact? If so, How do I upgrade it? > > For the amount of time it takes, I'd suggest just building a local > copy of mod_perl. If you use a .makepl_args.mod_perl file it can > be done with a single "perl Makefile.PL; make test install". Hm, I'm still unclear about whether mod_perl actually gets distributed with its own version of the perl interpreter, etc. Plus I've never used .makrpl_args.mod_perl, no idea where to start with that one... isn't there another way?
Re: which perl?
> I am running Apache/1.3.14 (Unix) mod_perl/1.25 on a redhat 7 system. > Since the perl binary that came with the redhat distribution was version > 5.6.0, I assumed that is the version that got built into mod perl > (statically linked). But I just discovered using perl's $] variable, > that it's actually using 5.006! > > So far as I can tell, I don't even have a copy of perl 5.006 on my > system... Is mod_perl actulaly distributed with a version of perl > interpreter intact? If so, How do I upgrade it? For the amount of time it takes, I'd suggest just building a local copy of mod_perl. If you use a .makepl_args.mod_perl file it can be done with a single "perl Makefile.PL; make test install".
which perl?
Hi, I am running Apache/1.3.14 (Unix) mod_perl/1.25 on a redhat 7 system. Since the perl binary that came with the redhat distribution was version 5.6.0, I assumed that is the version that got built into mod perl (statically linked). But I just discovered using perl's $] variable, that it's actually using 5.006! So far as I can tell, I don't even have a copy of perl 5.006 on my system... Is mod_perl actulaly distributed with a version of perl interpreter intact? If so, How do I upgrade it? thanks, Todd Goldenbaum [EMAIL PROTECTED]