problems while installing perl modules ! - perl

i have attempted to install DBI perl modules using cpan on RHEL with sudo. While installing am getting below error:
ERROR: Can't create '/usr/bin'
Do not have write permissions on '/usr/bin'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Thanks,
Mandy.
(email address removed)

As others have suggested, use Yum/install the RPM for DBI yourself.
You should also read this report about a severe performance bug in RedHat's Perl package. It might have been fixed in the last releases of RHEL 5, but it's a show-stopper if it applies to you. That link contains a benchmark script which should tell you if it applies to you or not.
If it does, consider installing ActiveState's version of Perl.

Related

Why won't cpanm install dependencies?

I'm trying to install PAR from cpanm like so: cpanm App::Packer::PAR, but it's giving me this error:
skipping R/RJ/RJBS/perl-5.22.0.tar.bz2
! Installing the dependencies failed: Module ExtUtils::Embed is not installed
! Bailing out the installation for PAR-Packer-1.026.
Even though cpanm is supposed to automatically install dependencies, I tried installing it manually: cpanm ExtUtils::Embed, but only got the same error: skipping R/RJ/RJBS/perl-5.22.0.tar.bz2
Any ideas as to why this is failing and how I can make it work?
ExtUtils::Embed is a dual-lifed module, meaning it's distributed as part of the perl distribution as well as in a second distribution.
cpanm is trying to install ExtUtils::Embed by installing the perl distribution instead of the ExtUtils-Embed distribution. Why? I'm not sure. Maybe because it's newer (1.32 instead of 1.2505).
cpanm is wisely unwilling to upgrade perl itself.
Now, the latest App::Packer::PAR's META doesn't specify a minimum version of ExtUtils::Embed, so the version in the ExtUtils-Embed distribution could very well be good enough. The following command will achieve this:
cpanm D/DO/DOUGM/ExtUtils-Embed-1.14.tar.gz
HOWEVER, as I mentioned earlier, ExtUtils::Embed comes with Perl. It has done so for over 15 years (since before Perl 5.4). It makes no sense that you have to install it.
You appear to be using a system whose provider decided to cause headaches by breaking the perl distribution into multiple packages. You should use your system's package manager (apt-get, yum or whatever) to install the missing portions of perl rather than using cpanm.

Problems while installing WWW::Mechanize::Firefox

I am using the windows 8 operating system and I am trying to install the WWW::Mechanize::Firefox module in ActiveState Perl, from CPAN. I have successfully downloaded and installed all the dependencies and also installed the MozRepl module on Firefox. I do not have noScript running on my firefox and hence I am assuming that Javascript is enabled across all files (I am not sure how or where to check that). Here is my error message when I try to install the module.
I also constantly receive this error throughout the installation - "Subroutine-MozRepl-Load Plugins redefined at line 104."
Any help is much appreciated ! Thank you !
EDIT - These are the errors -
As Kim suggested in comments, you will need Mozrepl and Firefox.
Please refer WWW::Mechanize::Firefox::Installation page for detailed instructions on how to install this module.
If you use ActiveStates package manager, you can find some pre-packaged but untested PPMs at https://github.com/Corion/www-mechanize-firefox/downloads .
I needed to use this module on Windows, and couldn't get it running with ActivePerl. So I installed http://strawberryperl.com/ and it worked. This version of perl seems to handle installs form the cpan command line utility better than Activestate, who expect you to use their perl package manager as the default module installer (and don't supply a dmake program). Strawberry Perl also comes with a C compiler so can build modules that are a mixture of Perl and C code.
And make sure mozrepl is running before you try to install.

CPAN install module failed: don't know what it is

I am installing this module in Ubuntu:
http://metacpan.org/pod/CatalystX::DynamicComponent::ModelsFromConfig
with bash command:
sudo cpan CatalystX::DynamicComponent::ModelsFromConfig
However I always get this message:
Warning: Cannot install CatalystX::DynamicComponent::ModelsFromConfig, don't know what it is.
Is this means this module is not a standard module?
There is no stable, indexed release of that module, only a developer preview release. With a recent version of cpanminus you could do
cpanm --dev CatalystX::DynamicComponent::ModelsFromConfig
with regular CPAN.pm you should be able to do
cpan BOBTFISH/CatalystX-DynamicComponent-0.000000_01.tar.gz
That or come onto irc.perl.org #catalyst and talk to t0m about the module and whether it makes sense for you to be using it — it seems to be abandoned since 2009. I think the sensible replacement is CatalystX::ComponentsFromConfig.

Caught in a neverending install cycle after upgrading Perl

Last night I was reading about a mysql tuning program here. I installed it and it said I needed a perl version higher than the one I had. I downloaded and installed perl 5.12.x
Suddenly my Munin utilities were tossing off errors like:
Can't locate RRDs.pm in #INC (#INC contains:
/usr/lib/perl5/site_perl/5.12.2/i686-linux /usr/lib/perl5/site_perl/5.12.2
/usr/lib/perl5/5.12.2/i686-linux /usr/lib/perl5/5.12.2
/usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl .) at
/usr/sbin/nginx-graph.pl line 2
Uninstalling and reinstalling the rrdtool rpms didn't move RRDs.pm from /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi/RRDs.pm
Thought I'd try installing rrdtool from source. It wanted pango.
Had to install newer FreeType and FontConfig.
Then the pango install wanted a new glib. Glib wouldn't make due to a gzlibcompressor error. Some Googling suggested that upgrading glib could cause a whole host of other issues.
I just want my !##$ munin graphs, but I feel like I've started sliding down a dangerous slope, especially as this is hosting my nginx webserver.
Any tips, ideas, warnings?
It appears you used to have Perl 5.8.something. Perl major releases are not binary compatible, so you have to reinstall/upgrade all modules using XS and any programs that embed the Perl interpreter when changing between 5.8.x, 5.10.x, and 5.12.x.
I would try to revert your system Perl to 5.8.x. This should get Munin working again. (I can't give detailed instructions for this, because I don't know what distribution you're using, how you installed Perl 5.12, or what else you've done trying to solve this.)
Then use perlbrew to install a newer version of Perl for your personal use without messing up things that depend on the system Perl.

Why can't I find Perl modules after upgrading to Intrepid Ibex Ubuntu?

I upgraded to Ubuntu Intrepid Ibex yesterday and suddenly some of the Perl modules that I installed (on the Hardy Heron) have all gone missing!
I get the usual "Can't locate module in #INC" error. Has any of the CPAN repositories changed or something for Intrepid? Google doesn't help at all.
Thanks in advance.
The standard solution is to generate an "autobundle" with CPAN.pm before upgrading Perl. A search for autobundle yields links to a handful of existing SO questions discussing Perl module management and several that look like they should provide more information. The CPAN.pm manual touches on autobundle, but doesn't include much detail.
Since you've already upgraded Perl, one solution for installing your modules would be to generate an autobundle file and use the entries in the generated file as a guide to write a custom autobundle file with entries for your modules (only). The autobundle file format is just POD, so this should be easy to do.
In the future you should probably make it a habit to generate an autobundle before upgrading Perl. This is not a perfect solution, the autobundle will include entries for core modules that will have to be removed before actually building from it, but at least you'll have a snapshot of installed Perl modules so that you can get your Perl install fixed up after an upgrade.
Your Perl installation has changed from version 5.8 to 5.10. Since many of the modules you want are in perl-version-specific directories, you may want to re-install using the CPAN tools (e.g. the cpan command).
But since you're using Ubuntu, please keep in mind that many many CPAN libraries are also distributed through the Ubuntu package manager, and the CPAN packages install into a different place than Ubuntu installs them (this is transparent to the user, since both are in the #INC paths).
I recommend using the Ubuntu packages when they're available, because they will be updated by the package manager (APT) when new ones are released on the central package servers. The name format is slightly different. Here are two ways to install the same package, from different sources:
$ cpan List::MoreUtils # installs latest from CPAN
$ sudo apt-get install liblist-moreutils-perl # installs latest from Ubuntu universe
the advantage of the latter is that it will be updated by sudo apt-get update.
Perl changed on Intrepid.
Before upgrading, you had Perl 5.8, now you have 5.10.
Probably /usr/lib/perl5/5.10.* is used instead of /usr/lib/perl5/5.8.8 since the Perl version has changed