Re: Perl install problems OSX 10.4.11

[email protected] (Mine)
Newsgroups perl.macosx
Message-ID <[email protected]>
Hi, Thanks to all who have responded.

I have tried Packy Anderson suggestion but I found that some modules  
stated
that they only come as part of Perl 5.10.1. If I try to install them,  
it seem that
they want to be installed in a location other than that which I have  
specified.

I have Perl 5.10.1 installed but I don't know how set my environment  
so get_iplayer to use it.
MacPorts has set my environment to export PATH=/opt/local/bin:/opt/ 
local/sbin:$PATH
so the version of Perl (5.8.8) installed by MacPorts is being used by  
get_iplayer.

Is it possible to add the Perl 5.10.1 path to the environment so i  
don't loose the MacPort option.

I have reinstall Apple's developer tools from my system install disk.

Thanks,

Terrence


On 14 Sep 2009, at 19:41, Alan Fry wrote:

> Hi Terrence,
>
> On 14 Sep 2009, at 13:04, Mine wrote:
>
>> I think the problem is probably to do with my Perl install. I  
>> looked in /System/Library/Perl/
>> but the Perl folder contained 5.8.6 not 5.8.8. I could not find  
>> any of the following:
>> Fcntl
>> HTML
>> HTTP
>> LWP
>
> I have one machine here which is running 10.4.11 and, as you say,  
> it has Perl 5.8.6 and also is missing the modules you list above.
>
> If it were me I would stick with the Apple install and, as Packy  
> Anderson has suggested, go to CPAN and download the missing modules.
>
>> I previously installed some applications using MacPorts, and it  
>> appears that there is an
>> install of Perl 5.8.8 in /opt/local/bin/.
>>
>> Over the weekend still trying to solve the problem I also  
>> installed Perl 5.10.1 in an attempt
>> to upgrade my system Perl install. That is in /usr/local/bin/.
>>
>> I also searched /usr/local/lib/perl5/5.10.1/ and /opt/local/lib/ 
>> perl5/5.8.8/ and it would appear
>> that the MacPorts install is the most complete but I could not  
>> find an LWP directory or HTTP,
>> and I was not sure where to look for URI. The HTML directory  
>> contained entities.pm, and
>> headerParser.pm but no Cookies
>
> I hate multiple versions of Perl, unless there is some compelling  
> reason for having a newer one, because of the confusion it can  
> cause. In the case of 'get_iplayer.pl', so far as I can see, there  
> is no reason to want any newer version of Perl than 5.8.6.
>
>> Is it possible to upgrade the system Perl install to a full  
>> version of Perl 5.8.8?
>
> I don't think there is any such thing really -- one is always  
> encountering scripts which use modules one hasn't got. Then it's  
> off to CPAN to repair the omission.
>
> Kind regards,
>
> Alan
>
>> On 14 Sep 2009, at 11:09, Alan Fry wrote:
>>
>>>
>>> On 13 Sep 2009, at 03:46, Doug McNutt wrote:
>>>
>>>> At 23:22 +0100 9/12/09, Mine wrote:
>>>>> Hi,
>>>>>
>>>>> Thanks for your excellent response, makes installing so easy  
>>>>> assuming  I did it correctly.
>>>>> I think everything that was required is installed, but I am not  
>>>>> sure  everything was installed
>>>>> in the right location.
>>>>>
>>>>> It appears that Perl 5.10.1 was installed and all the modules  
>>>>> I  installed are associated with
>>>>> Perl 5.10.1. When I try to run the get_iplayer PVR module I get  
>>>>> the  following error:
>>>>> Can't locate loadable object for module HTML::Parser in @INC  
>>>>> (@INC  contains: /opt/local/lib/perl5/5.8.8/darwin-2level
>>>>> (I have abbreviated the error message)
>>>>>
>>>>> And when I enter perl -v  I get the following:
>>>>> This is perl, v5.8.8 built for darwin-2level
>>>>>
>>>>> So the system does not see the Perl 5.10.1 install. Can  
>>>>> someone  please tell me if there is a
>>>>> was to install the modules so they relate to perl, v5.8.8, or  
>>>>> point  get_iplayer to use Perl 5.10.1.
>>>>>
>>>>
>>>>
>>>> I suspect that Apple's perl is 5.8.8 and it is installed in /usr/ 
>>>> bin. It needs to stay there because Apple's updates may depend  
>>>> on it. Installing 5.10.1 in /usr/bin/ replacing 5.8.8 is not  
>>>> recommended.
>>>>
>>>> I also suspect that perl 5.10 is installed in /usr/local/bin but  
>>>> that might be different like /opt/bin depending on just how you  
>>>> installed it.. Look around for it. /opt/local/lib/ sounds  
>>>> unlikely to me.
>>>>
>>>> You are probably going to make a change to your PATH environment  
>>>> variable to make the directory that perl 5,10 resides in appear  
>>>> before /usr/bin.
>>>>
>>>> A shell command like:
>>>> setenv PATH /usr/local/bin:$PATH  # csh
>>>>
>>>> PATH=/usr/local/bin:$PATH   # something like this in bash
>>>> export PATH
>>>>
>>>> You can also specify PATH in a startup file
>>>> $HOME/.MacOSX/environment.plist.
>>>> but you'll have to create that including the .MacOSX directory  
>>>> unless it's already there. There are some instructions on  
>>>> Apple's web site. Ask if you'd like a sample.
>>>>
>>>> @INC is a perl array that lists directories in which modules can  
>>>> be found. There are a bunch of standard locations relative to  
>>>> the directory that perl itself lives in but you can add more  
>>>> directories by setting the PERL5LIB environment variable to a  
>>>> PATH-like list of other directories. That too can be done in  
>>>> environment.plist.
>>>>
>>>> It's a bit hard to understand why iplayer doesn't have an  
>>>> installation script or at least some less geeky instructions for  
>>>> users.
>>>
>>> I am puzzled why the original poster is having problems with  
>>> 'get_iplayer'. Out of curiosity I downloaded it and find it runs  
>>> fine here on a standard Apple Perl install. Regrettably I have  
>>> deleted the original post but I recollect the writer said he was  
>>> not a frequent user of Perl? So I wondered if the following  
>>> thoughts might be helpful.
>>>
>>> 'get_iplayer.pl' is just a 272KB script (272KB) which can be put  
>>> anywhere convenient and there is excellent documentation for it  
>>> on the download site. Just for starters it is convenient to park  
>>> it on the desktop.
>>>
>>> The first thing to do is set the executable flag by the following  
>>> line in Terminal.app
>>> 	chmod +x <full_path_to_'get_iplayer'>
>>> -- it being understood that the easiest way to get the  
>>> <full_path_to_'get_iplayer'> is just to drag 'get-iplayer.pl>  
>>> from where it is on the Desktop into the Terminal window.
>>>
>>> The next thing is simply to put
>>> 	<full_path_to_'get_iplayer'>
>>> as the command line in Terminal (on line of course) and it should  
>>> then list all available BBC TV files in alphabetical order. If it  
>>> does not, then some investigation is called for.
>>>
>>> To do this it makes life very much easier if the hidden folders  
>>> (containing Perl and its modules) are made visible. To this  
>>> execute the following in Terminal:
>>> 	/Developer/Tools/SetFile -a v 'full-path-name'
>>> and then:
>>> 	killall "Finder"
>>> For 'full path name put successively, /bin, /Library, /sbin, / 
>>> System and /usr. (The process can be reversed by running the line  
>>> again with the lower-case 'v' replaced by an upper-case 'V'.)
>>>
>>> Now 'get_iplayer.pl' starts with the 'shebang' "#!/usr/bin/perl".  
>>> So go to '/usr/bin' (now visible) and look for 'perl' -- it will  
>>> surely be there.
>>>
>>> The script 'uses' the following:
>>>
>>> use Env qw[@PATH];
>>> use Fcntl;
>>> use File::Copy;
>>> use File::Path;
>>> use File::stat;
>>> use Getopt::Long;
>>> use HTML::Entities;
>>> use HTTP::Cookies;
>>> use HTTP::Headers;
>>> use IO::Seekable;
>>> use IO::Socket;
>>> use LWP::ConnCache;
>>> use LWP::UserAgent;
>>> use POSIX qw(mkfifo);
>>> use Time::Local;
>>> use URI;
>>> use POSIX qw(:termios_h);
>>>
>>> So, go to /System/Library/Perl/5.8.8 and look down the list to  
>>> see that all these things are present. I would be astonished if  
>>> any  are missing in an Apple standard Perl install, but in that  
>>> unlikely event, I would think the simplest thing would be to  
>>> download the missing module from CPAN and pop it in. (On Mac OS X  
>>> 10.4.* it might be 5.8.4 (?) I think, but that shouldn't matter  
>>> at all -- the script should be quite happy with that version).
>>>
>>> The next thing to check is that /System/Library/Perl is listed in  
>>> @INC. Run the following in Terminal:
>>> 	perl -e 'foreach (@INC) {print"$_\n"}'
>>> In the unlikely event it is not in the list, then add it to @INC.
>>>
>>> I hope these notes might be helpful to someone relatively unused  
>>> to Perl and apologise if I appear, so to speak, to be trying to  
>>> teach my grandmother to suck eggs...
>>>
>>> Alan Fry
>>>
>>> (PS I am afraid I shall be away for ten days from tomorrow and  
>>> unable to respond until I get back.)
>>>
>>>
>>>
>>>
>>>
>>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.