mje has asked for the wisdom of the Perl Monks concerning the following question:

I am trying to install MojoMojo. I am following the instructions at http://search.cpan.org/dist/MojoMojo/lib/MojoMojo/Installation.pod and http://mojomojo.org/documentation/installation. Why is this so hard

I also tried http://www.catalyzed.org/2009/08/mojomojo-lightning-install.html but that fails horribly with around 5+ pages of errors starting in:

/tmp/MojoMojo$ mojomojo_server.pl Couldn't load class (Catalyst::Engine::CGI) because: Couldn't load cla +ss (Catalyst::Engine) because: Couldn't load class (MooseX::Emulate:: +Class::Accessor::Fast) because: Can't locate object method "get_mutab +le_metaclass_name" via package "Class::MOP::Class::Immutable::Class:: +MOP::Class" at /tmp/MojoMojo/bin/../lib/perl5/Moose/Meta/Class.pm lin +e 344. Compilation failed in require at /tmp/MojoMojo/bin/../lib/perl5/MooseX +/Emulate/Class/Accessor/Fast.pm line 7.

so I decided the cpan route would be best.

As I have ubuntu I have successfully installed all the dependencies with:

aptitude install libxml2 libpng-dev libgif-dev libjpeg-dev expat libex +pat1-dev docbook-xsl

although I would have thought that was the first step not the second. cpan had never been used on this machine so I accepted for cpan to set up as many defaults as it could. Unfortunately, even though I have /usr/bin/unzip it did not set it so some modules failed to install as there is no zip - easily fixed once you recognise this.

Next up was to install Catalyst::Runtime where I had a number of failures and ended up having to manually install Data::OptList and Params::Util (though I'm afraid I cannot remember what the problem was).

Lastly was to install MojoMojo. Literally hundreds of dependencies ran past (some of them failing) and it seems to boil down currently to Test::WWW::Mechanize which I notice from CPAN Testers has PASS (498) FAIL (267). The output for make test on this module is included at the end of this post.

Have I just been unlucky here or is there a bigger question of how can we expect a normal person to install something like MojoMojo (and I don't mean someone who is new to Perl or has no UNIX experience). Perhaps I am flogging a dead horse here :-(

Test-WWW-Mechanize-1.24# make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_h +arness(0, 'blib/lib', 'blib/arch')" t/*.t t/00load.t .............. 1/1 # Testing Test::WWW::Mechanize 1.24, wit +h WWW::Mechanize 1.60, LWP 5.831, Perl 5.010000, /usr/bin/perl t/00load.t .............. ok t/autolint.t ............ skipped: HTML::Lint is not installed, cannot + test autolint t/back_ok.t ............. 2/11 # Failed test 'Fails to get nonexistent URI and reports failure' # at t/back_ok.t line 59. # STDERR is: # # Failed test 'Try to get bad URL' # # at t/back_ok.t line 58. # # 504 # # Gateway Time-out # # not: # /#\s+Failed\ test.*?\n?.*?at\ t\/back_ok\.t line 58.*\n?/ # # # 500 # # # Can't connect to wango.nonexistent.xx-only-testing:80 (Bad hostnam +e 'wango.nonexistent.xx-only-testing') # # as expected t/back_ok.t ............. Failed 1/11 subtests t/click_ok.t ............ ok t/content_contains.t .... 2/5 # Failed test 'Handles not finding it' # at t/content_contains.t line 39. # STDERR is: # # Failed test 'Where is Mungo?' # # at t/content_contains.t line 38. # # searched: "<html>\x{0a} <head>\x{0a} <title>Test Page</tit +le>\x{0a} </h"... # # can't find: "Mungo" # # LCSS: "go" # # LCSS context: "ead>\x{0a} <body>\x{0a} <h1>Test Page</h1>\x{0a} + <a href='go" # # not: # /#\s+Failed\ test.*?\n?.*?at\ t\/content_contains\.t line 38.*\n?/ # # # searched: "<html>\x{0a} <head>\x{0a} <title>Test Page</tit +le>\x{0a} </h"... # # # can't find: "Mungo" # # as expected t/content_contains.t .... Failed 1/5 subtests t/content_lacks.t ....... ok t/follow_link_ok.t ...... ok t/followable_links.t .... ok t/get_ok-parms.t ........ ok t/get_ok.t .............. 2/11 # Failed test 'Fails to get nonexistent URI and reports failure' # at t/get_ok.t line 60. # STDERR is: # # Failed test 'Try to get bad URL' # # at t/get_ok.t line 59. # # 504 # # Gateway Time-out # # not: # /#\s+Failed\ test.*?\n?.*?at\ t\/get_ok\.t line 59.*\n?/ # # # 500 # # # Can't connect to wango.nonexistent.xx-only-testing:80 (Bad hostnam +e 'wango.nonexistent.xx-only-testing') # # as expected t/get_ok.t .............. Failed 1/11 subtests t/has_tag.t ............. ok t/head_ok-parms.t ....... ok t/head_ok.t ............. 2/11 # Failed test 'Fails to HEAD nonexistent URI and reports failure' # at t/head_ok.t line 59. # STDERR is: # # Failed test 'Try to HEAD bad URL' # # at t/head_ok.t line 58. # # 504 # # Gateway Time-out # # not: # /#\s+Failed\ test.*?\n?.*?at\ t\/head_ok\.t line 58.*\n?/ # # # 500 # # # Can't connect to wango.nonexistent.xx-only-testing:80 (Bad hostnam +e 'wango.nonexistent.xx-only-testing') # # as expected t/head_ok.t ............. Failed 1/11 subtests t/html_lint_ok.t ........ skipped: HTML::Lint is not installed, cannot + test html_lint_ok t/link_content.t ........ ok t/link_status.t ......... ok t/links_ok.t ............ ok t/new.t ................. ok t/page_links_content.t .. ok t/page_links_ok.t ....... ok t/pod-coverage.t ........ skipped: Test::Pod::Coverage 0.08 required f +or testing POD coverage t/pod.t ................. ok t/put_ok.t .............. 2/11 # Failed test 'sanity check: we can load goodlinks.html' # at t/put_ok.t line 34. Use of uninitialized value $v in substitution (s///) at /usr/share/per +l5/LWP/Protocol/http.pm line 159, <DATA> line 16. Use of uninitialized value $v in concatenation (.) or string at /usr/s +hare/perl5/Net/HTTP/Methods.pm line 154, <DATA> line 16. # Failed test 'PUTs existing URI and reports success' # at t/put_ok.t line 38. # STDOUT is: # not ok 1 - Try to PUT goodlinks.html # # not: # ok 1 - Try to PUT goodlinks.html # # as expected # STDERR is: # # Failed test 'Try to PUT goodlinks.html' # # at t/put_ok.t line 37. # # 411 # # Length Required # # not: # # as expected # Failed test 'And the result should be true' # at t/put_ok.t line 40. Use of uninitialized value $v in substitution (s///) at /usr/share/per +l5/LWP/Protocol/http.pm line 159, <DATA> line 16. Use of uninitialized value $v in concatenation (.) or string at /usr/s +hare/perl5/Net/HTTP/Methods.pm line 154, <DATA> line 16. # Failed test 'PUTs existing URI and reports success - default desc' # at t/put_ok.t line 45. # STDOUT is: # not ok 1 - PUT http://localhost:13432/goodlinks.html # # not: # ok 1 - PUT http://localhost:13432/goodlinks.html # # as expected # STDERR is: # # Failed test 'PUT http://localhost:13432/goodlinks.html' # # at t/put_ok.t line 44. # # 411 # # Length Required # # not: # # as expected Use of uninitialized value $v in substitution (s///) at /usr/share/per +l5/LWP/Protocol/http.pm line 159, <DATA> line 16. Use of uninitialized value $v in concatenation (.) or string at /usr/s +hare/perl5/Net/HTTP/Methods.pm line 154, <DATA> line 16. # Failed test 'Fails to PUT nonexistent URI and reports failure' # at t/put_ok.t line 58. # STDERR is: # # Failed test 'Try to PUT bad URL' # # at t/put_ok.t line 57. # # 411 # # Length Required # # not: # /#\s+Failed\ test.*?\n?.*?at\ t\/put_ok\.t line 57.*\n?/ # # # 500 # # # Can't connect to wango.nonexistent.xx-only-testing:80 (Bad hostnam +e 'wango.nonexistent.xx-only-testing') # # as expected t/put_ok.t .............. Failed 5/11 subtests t/stuff_inputs.t ........ ok t/submit_form_ok.t ...... ok Test Summary Report ------------------- t/back_ok.t (Wstat: 0 Tests: 11 Failed: 1) Failed test: 9 t/content_contains.t (Wstat: 0 Tests: 5 Failed: 1) Failed test: 5 t/get_ok.t (Wstat: 0 Tests: 11 Failed: 1) Failed test: 9 t/head_ok.t (Wstat: 0 Tests: 11 Failed: 1) Failed test: 9 t/put_ok.t (Wstat: 0 Tests: 11 Failed: 5) Failed tests: 3-4, 6-7, 9 Files=25, Tests=200, 19 wallclock secs ( 0.04 usr 0.03 sys + 2.86 cu +sr 0.31 csys = 3.24 CPU) Result: FAIL Failed 5/25 test programs. 9/200 subtests failed. make: *** [test_dynamic] Error 255

Replies are listed 'Best First'.
Re: Help installing MojoMojo
by bits (Sexton) on Oct 30, 2010 at 16:53 UTC

    I also ran into a long stall when Test::WWW::Mechanize tests t/back_ok.t ............. 2/11

    Kent Fredric figured it out at http://code.google.com/p/www-mechanize/issues/detail?id=157

    He wrote:

    This will also occur if you have the following setup.

    1. A dns record with a wildcard in it ie: *.foo.bar => 192.157.1.1
    2. A default DNS search of 'foo.bar'

    In this configuration, non-fully-qualified domains result in a fallback, so wango.nonexistent.xx-only-testing expands as wango.nonexistent.xx-only-testing.foo.bar ,which then matches the wildcard record, resolving the IP.

    The solution is straightforward, but little known. All one has to do is put a '.' at the right hand end of the domain name to mark it a "fully qualified" so that search path resolution doesn't happen.

    His analysis was correct. The wildcard subdomain was causing the problem. His patch worked for me and all tests now pass.

      Thanks for that info. I do in fact have my DNS set up with a default search path.

      I originally posted the thread you answered back in March 2010 (7 months ago) and until you replied I had not had one response. It wasn't so important for me to use MojoMojo but I chose it originally because it was Perl. A colleague installed mediawiki (PHP) is 2 minutes so I never took it any further - shame really.