Create branch register_actions.
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Manual / Installation.pod
CommitLineData
f984f5d7 1=head1 NAME
2
3Catalyst::Manual::Installation - Catalyst Installation
4
5=head1 DESCRIPTION
6
7How to install Catalyst.
8
9=head1 INSTALLATION
10
11One of the frequent problems reported by new users of Catalyst is that
12it can be extremely time-consuming and difficult to install.
13
14One of the great strengths of Perl as a programming language is its use
15of CPAN, the Comprehensive Perl Archive Network, an enormous global
16repository containing over 10,000 free modules. For almost any basic
17task--and a very large number of non-basic ones--there is a module on
18CPAN that will help you. Catalyst has taken advantage of this, and uses
19a very large number of CPAN modules, rather than reinventing the wheel
20over and over again. On the one hand, Catalyst gains power and
21flexibility through this re-use of existing code. On the other hand,
22Catalyst's reliance on CPAN can complicate initial installations,
23especially in shared-hosting environments where you, the user, do not
24have easy control over what versions of other modules are installed.
25
26It is worth stressing that the difficulties found in installing Catalyst
27are caused not by anything intrinsic to Catalyst itself, but rather by
28the interrelated dependencies of a large number of required modules.
29
30Fortunately, there are a growing number of methods that can dramatically
31ease this undertaking. Note that for many of these, you will probably
32need to install additional Catalyst-related modules (especially plugins)
33to do the things you want. As of version 5.70, Catalyst has split into
34two packages, L<Catalyst::Runtime>, which includes the core elements
35necessary to deploy a Catalyst application, and L<Catalyst::Devel>,
36which includes the Helpers and other things necessary or useful for
37developing Catalyst applications. In a purely deployment environment
38you can omit L<Catalyst::Devel>.
39
40=over 4
41
42=item *
43
44Matt Trout's C<cat-install> script
45
46Available at L<http://www.shadowcatsystems.co.uk/static/cat-install>,
47C<cat-install> can be a quick and painless way to get Catalyst up and
48running on your system. Just download the script from the link above
49and type C<perl cat-install>. This script automates the process of
50installing Catalyst itself and its dependencies, with bits of overriding
51so that the process does not require user interaction. C<cat-install>
52installs Catalyst and its dependencies using the L<CPAN> module, so that
53modules are installed the same way you would probably install them
54normally--it just makes it easier. This is a recommended solution for
55installation.
56
57=item *
58
59Chris Laco's CatInABox
60
61CatInABox is a complete version of Catalyst that is installed locally on
62your system, so that you don't need to go through the effort of doing a
63full install. Simply download the tarball from
64L<http://handelframework.com/downloads/CatInABox.tar.gz> and unpack it
65on your machine. Depending on your OS platform, either run C<start.bat>
66or C<start.sh> to set your bin/PERLLIB paths. This tarball contains
67everything needed to try out Catalyst including Catalyst itself,
68Template Toolkit, several Authentication modules, StackTrace, and a few
69other plugins.
70
71A special Win32 version is available upon request that contains many
72more plugins and pre-compiled modules, including DBIx::Class, DBI,
73SQLite, and Session support. If you are interested in this version,
74please send e-mail to C<claco@chrislaco.com>.
75
76=item *
77
78Pre-Built VMWare Images
79
80Under the VMWare community program, work is ongoing to develop a number
81of VMWare images where an entire Catalyst development environment has
82already been installed, complete with database engines and a full
83complement of Catalyst plugins.
84
ae29b412 85=item *
86
87Frank Speiser's Amazon EC2 Catalyst SDK
88
89There are currently two flavors of publicly available Amazon Machine
90Images (AMI) that contain all the dependencies you'd need to get a
91Catalyst development environment,with all the trimmings, up and
92running within minutes.
93
94Once you obtain an Amazon Elastic Cloud Computing account available
95here:
96L<http://www.amazon.com/EC2-AWS-Service-Pricing/b/ref=sc_fe_l_2?ie=UTF8&node=201590011>,
97you can literally get a Catalyst development instance up and running
98in less than 5 minutes.
99
100The current AMIs that are available are here in abbreviated form:
101
102 IMAGE ami-bdbe5ad4 developer-tools/Debian-Etch_Catalyst_DBIC_TT.manifest.xml
103 IMAGE ami-9fbe5af6 developer-tools/Fedora8-Catalyst_DBIC_TT.manifest.xml
104
105You can run the instances according to the Amazon documentation, as follows:
106
107 ec2-run-instances <ami here> -k gsg-keypair
108
109Refer to the Amazon EC2 documentation from the "Amazon Web Services"
110section of the L<Amazon.com| Amazon.com> web site for further
111assistance.
112
113You can currently choose between ready-made SDKs on Fedora8 and Debian
114Etch. Both machine images include Catalyst, DBIx::Class,
115Template::Toolkit, Moose, the mysql and postgresql databases, as well
116as subversion source control. The Debian Etch machine instance also
117includes svk and git.
118
119Just run the installation instructions contained in this manual and
120go.
121
f984f5d7 122=back
123
124=head2 OTHER METHODS
125
126In addition to the "all-in-one" approaches mentioned above, there are a
127variety of other installation techniques:
128
129=over 4
130
131=item *
132
133CPAN
134
135The traditional way to install Catalyst is directly from CPAN using the
136C<Task::Catalyst> bundle and C<Catalyst::Devel>:
137
85d9fce6 138 $ perl -MCPAN -e 'install Task::Catalyst'
139 $ perl -MCPAN -e 'install Catalyst::Devel'
f984f5d7 140
141Unless you have a particularly complete set of Perl modules already
142installed, be prepared for a large number of nested dependencies.
143
144=item *
145
146Gentoo Linux
147
148For users of Gentoo, see
149C<http://gentoo-wiki.com/HOWTO_Catalyst_Framework> for automated
150installations. In short, simply mount the portage overlay and type
151C<emerge catalystframework>.
152
153=item *
154
155FreeBSD
156
157FreeBSD users can get up and running quickly by typing C<cd
252855c3 158/usr/ports/www/p5-Catalyst-Devel && make install>, or C<portinstall
159p5-Catalyst-Devel> if C<portinstall> is installed on your system.
f984f5d7 160
161=item *
162
163Windows ActivePerl
164
165Windows users can take advantage of the PPM tool that comes with
166ActivePerl to jumpstart their Catalyst environment. Directions are
252855c3 167available at L<http://catalyst.infogami.com/install/windows>.
f984f5d7 168
169=item *
170
171Subversion Repository
172
173Catalyst uses Subversion for version control. To checkout the latest:
174
175 $ svn co http://dev.catalyst.perl.org/repos/Catalyst/trunk/Catalyst-Runtime/
176
177=back
178
179B<NOTE:> Although all of the above methods can be used to install a base
180Catalyst system, only the VMWare image is likely to have all of the
181plugins and modules you need to use Catalyst properly. When you start
182the C<script/myapp_server.pl> development server, it will tell you about
183any modules that are missing. To add them, type something along the
184lines of the following (C<Catalyst::Model::DBIC::Schema> is used here as
185a representative example):
186
187 # perl -MCPAN -e 'install Catalyst::Model::DBIC::Schema'
188 ...
189