[Catalyst] Requirement for Makfile.PL or Build.PL in "home"?

Matt S Trout dbix-class at trout.me.uk
Tue May 29 16:36:49 GMT 2007


On Tue, May 29, 2007 at 08:14:17AM -0700, Jeff Chimene wrote:
> Matt S Trout wrote:
> > On Mon, May 28, 2007 at 08:11:19PM -0700, Jeff Chimene wrote:
> >   
> >> Great. How does one move the root/ directory? It gets into the .tar
> >> file, but isn't deployed on the production server.
> >>     
> >
> > Assuming Catalyst::Devel is installed on the server you did the make dist
> > on, the 'catalyst()' line in your Makefile.PL should invoke the bundled
> > inc/Module/Install/Catalyst.pm such that the root/ directory will go
> > into site_perl along with everything else; then at runtime Catalyst will
> > use File::ShareDir to find this directory again, meaning MyApp->path_to
> > will resolve paths to in there.
> >
> > Assuming that's -not- what you're seeing, can you check your inc/ to make
> > sure the Catalyst Module::Install extension's in there and then maybe use
> > 'make -n install' or a find on site_perl to see if your root/ has just
> > been installed somewhere you didn't expect.
> >   
> Make::Install is there:
> $ ls -R inc
> inc:
> Module
> 
> inc/Module:
> AutoInstall.pm  Install  Install.pm
> 
> inc/Module/Install:
> AutoInstall.pm  Can.pm    Include.pm   Metadata.pm  Win32.pm
> Base.pm         Fetch.pm  Makefile.pm  Scripts.pm   WriteAll.pm

Bingo. No Module::Install::Catalyst, as I suspected.

Make sure the machine you're building the dist on has Catalyst::Devel installed,
then do

rm -rf inc/
perl Makefile.PL
make manifest
make dist

That should get you a dist with inc/Module/Install/Catalyst.pm, which should
work fine.
 
> Thanks for your assistance.
> 
> This probably has something to do with the newly discovered requirement
> to define CATALYST_HOME in the package. For now, I've put it into the
> aic_cgi.pl script.

With the above fix, you won't need to define anything.
 
> As badly as things have gone with this technique as well as the
> responses I've received from you and Jonathan, I will avoid asking the
> list for further advice.

Your only issue with this technique was building the inc/ + dist on a system
that wasn't set up as a catalyst development system (i.e. Catalyst::Devel
installed) - and I did suggest that that was the problem in my last e-mail.

While it would probable be better if Module::Install provided a warning
about not finding a handler for the catalyst() line, it's not a problem
people normally run into since ::Devel is something you'd always have installed
on your development system since that's required for script/myapp_create.pl
and catalyst.pl to work.

I'm sorry you feel things have gone badly and wish you the best of luck with
your use of Catalyst in the future, whether you choose to post here again or
not.

-- 
      Matt S Trout       Need help with your Catalyst or DBIx::Class project?
   Technical Director    Want a managed development or deployment platform?
 Shadowcat Systems Ltd.  Contact mst (at) shadowcatsystems.co.uk for a quote
http://chainsawblues.vox.com/             http://www.shadowcatsystems.co.uk/ 



More information about the Catalyst mailing list