Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

PPM has module but BugZilla says it's missing

by davies (Vicar)
on Sep 29, 2010 at 12:18 UTC ( #862602=perlquestion: print w/ replies, xml ) Need Help??
davies has asked for the wisdom of the Perl Monks concerning the following question:

I'm trying to set up BugZilla. I believe that there is an installer that will create everything, but I have other MySQL databases that I don't want to damage, so I'm trying to follow the instructions here. The following is a cut down transcript from my command prompt:
Z:\BugZilla>perl checksetup.pl * This is Bugzilla 3.6.2 on perl 5.10.0 * Running on WinXP/.Net Build 2600 (Service Pack 2) Checking perl modules... Version string '-1, set by base.pm' contains invalid data; ignoring: ' +-1, set by base.pm' at Bugzilla/Install/Requirements.pm line 545. Checking for CGI.pm (v3.33) not found Checking for DBI (v1.41) ok: found v1.613 Version string '-1, set by base.pm' contains invalid data; ignoring: ' +-1, set by base.pm' at Bugzilla/Install/Requirements.pm line 545. Checking for Template-Toolkit (v2.22) not found ********************************************************************** +* * REQUIRED MODULES +* ********************************************************************** +* * Bugzilla requires you to install some Perl modules which are either +* * missing from your system, or the version on your system is too old. +* * See below for commands to install these modules. +* COMMANDS TO INSTALL REQUIRED MODULES (You *must* run all these command +s and then re-run this script): ppm install CGI.pm ppm install Template-Toolkit *** Installation aborted. Read the messages above. *** Z:\BugZilla>ppm install Template-Toolkit No missing packages to install Z:\BugZilla>ppm install CGI.pm No missing packages to install
I'm a bit worried by the "Version string" messages, but the issue doesn't seem to be down to versions. The best guess I can make is that the PPM GUI shows two "areas", "site" and "perl". The two modules are in "site" but not "perl". Attempts to install them using the PPM GUI overwrite the site versions, and I can see no way of coercing them into perl. The manual describes how to add areas but not how to install to them.

I may be suffering from an XY problem here, so any advice would be greatly appreciated.

Regards,

John Davies

Comment on PPM has module but BugZilla says it's missing
Download Code
Re: PPM has module but BugZilla says it's missing
by scorpio17 (Monsignor) on Sep 29, 2010 at 13:45 UTC

    Bugzilla only creates 1 mysql database, and it's called 'bugs' - so your other database stuff should be okay (unless you already have a 'bugs' database...)

    I'd recommend running your Bugzilla installation on a linux box - but if you have to use Windoze, it should still work.

    I'm going to guess that your problem not that you don't have the modules - but that you don't have the proper VERSION of those modules. You probably have the newest version available to PPM, but bugzilla needs an even newer version - so try running cpan and see if you can get the latest version.

      My concern over MySQL is that I get the impression the comprehensive installer installs MySQL and I'm scared about the implications for the Losedows registry of another installation - I don't want my registry keys overwritten or the BugZilla installation to become the default installation. Tragically, I have to use Losedows. Like most things in my life, what I am planning to do is Excel related.

      The code claims it's looking for CGI v3.33 and TT 2.22. I have 3.49 and 2.22, so unless the installer is giving me some seriously misleading information, it's not a case of needing a newer version. According to CPAN, CGI 3.49 and TT 2.22 are the latest versions, anyway - unless I've misunderstood that, too.

      Regards,

      John Davies
Re: PPM has module but BugZilla says it's missing
by Corion (Pope) on Sep 29, 2010 at 14:26 UTC

    Have you checked that the modules are installed and found by Perl?

    perl -MCGI -le "print 'CGI $CGI::VERSION installed'"

    should print

    CGI 3.49 installed

    ... and likewise for Template:

    perl -MTemplate -le "print 'Template Toolkit version $Template::VERSIO +N installed'"

    If the Bugzilla setup does not find the modules while Perl does, then the Bugzilla setup is doing something bad to how Perl searches for its modules. If Perl does not find the modules, you will have to install them.

      Your code returns CGI $CGI::VERSION installed and Template Toolkit version $Template::VERSION installed respectively. But
      use strict; use warnings; use CGI; use Template-Toolkit; print "CGI " . $CGI::VERSION . "\n"; print "TT " . $Template::VERSION . "\n";
      returns
      CGI 3.49 TT 2.22
      Regards,

      John Davies

        Duh - sorry for giving you dud code, but you fixed the problem with my code.

        Now, you should look at checksetup.pl respectively Bugzilla/Install/Requirements.pm and see what contortions it involves to (badly) check whether a module is available or not. Ideally, it would simply require the modules in question, but then it would simply find them.

Re: PPM has module but BugZilla says it's missing
by BrowserUk (Pope) on Sep 29, 2010 at 15:10 UTC

    What do you get if you run the following commands?:

    ppm query Template-Toolkit ppm query CGI

    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.
      Stripping out the line drawing, I get:
      F:\Perl5_10\eg>ppm query Template-Toolkit name version abstract area Template-Toolkit 2.22 comprehensive template processing system site (1 package installed matching 'Template-Toolkit') F:\Perl5_10\eg>ppm query CGI name version abstract +area CGI.pm 3.49 Handle Common Gateway Interface requests and responses +site FCGI 0.71 Fast CGI module +site (2 packages installed matching 'CGI')
      Regards,

      John Davies

        Then it looks like bugs in one or the other of the Bugzilla scripts that is telling porkies.

        Maybe related to this?

        Version string '-1, set by base.pm' contains invalid data; ignoring: ' +-1, set by base.pm' at Bugzilla/Install/Requirements.pm line 545.

        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.
      ppm query Template-Toolkit Following message has been shown by running above command. *** no packages installed matching 'Template-Toolkit'

        Three years later a different person answers with half the information requested and nothing else.

        {ignore}


        With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.
Re: PPM has module but BugZilla says it's missing
by ikegami (Pope) on Sep 29, 2010 at 15:58 UTC

    I'm a bit worried by the "Version string" messages, but the issue doesn't seem to be down to versions.

    Actually, they do suggest the problem.

    I have CGI:

    >perl -wle"use base 'CGI'; sub f { $CGI::VERSION } print f();" 3.49

    But base can be fooled into thinking I don't:

    >perl -wle"sub f { $CGI::VERSION } use base 'CGI'; print f();" -1, set by base.pm

    The simplest fix (for BugZilla):

    >perl -wle"sub f { ${'CGI::VERSION'} } use base 'CGI'; print f();" 3.49

    Using parent instead of base would address the issue, although I don't know why either are used to simply load modules.

    A workaround (for you):

    perl -MCGI -MTemplate checksetup.pl

    Update: Added workaround.

      The workaround works beautifully. Thank you. I'm going to log this as a bug with Mozilla and put in a reference to this thread.

      Regards,

      John Davies

      Update: logged as bug 600578, if anyone is interested.
Re: PPM has module but BugZilla says it's missing - redux
by davies (Vicar) on Oct 30, 2010 at 17:08 UTC
    The official line from BugZilla is:
    when PPM downloads several packages, and one of them is inaccessible (e.g. because the versions do not match), it immediately stops downloading remaining packages, and starts installing the ones already downloaded. What happens is that these packages are downloaded in a pretty random order, and so dependencies may not have been downloaded before the failure and PPM doesn't even notice that it forgot to install dependencies first.
    The workaround got me further down the track, but then failed, with something else complaining about missing modules. However, following the official line wasn't getting me very far, either. The point is that I was not installing multiple modules at any time. I was following the instructions and adding the modules one by one from the command line. One of the problem modules, Template Toolkit, seems to my unskilled eye to have no dependencies.

    Extensive Gargling has got me working. The problem seems to be with the Windows registry. Having updated Perl several times the various versions seem to have left confusing stuff behind in the registry. I therefore uninstalled all versions of Perl, and ran ERUNT and NTREGOPT to clean the registry. From this point, a clean install of Perl 5.12 (which I had tried unsuccessfully before) gave me a system that installed the essential modules and got Bugzilla running. However, some of the modules needed for optional features - SOAP-Lite, HTML-Scrubber, TheSchwartz, Daemon-Generic and mod_perl - display the same behaviour previously described - they are installed, but Bugzilla can't find them.

    I report this in the hope that it may help anyone else experiencing the same problem or be of interest.

    Regards & thanks to all who helped,

    John Davies
      I have the same cant find any work around... How were u able to do it Davies. Sam Chughtai

        As I said,

        The problem seems to be with the Windows registry. Having updated Perl several times, the various versions seem to have left confusing stuff behind in the registry. I therefore uninstalled all versions of Perl, and ran ERUNT and NTREGOPT to clean the registry. From this point, a clean install of Perl 5.12 (which I had tried unsuccessfully before) gave me a system that installed the essential modules and got Bugzilla running.
        But this may not be your problem. If so, I can't help. You might also want to try other registry cleaners.

        Regards,

        John Davies

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://862602]
Approved by Corion
Front-paged by ww
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (19)
As of 2014-10-21 20:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (110 votes), past polls