Catalyst-Manual
view release on metacpan or search on metacpan
lib/Catalyst/Manual/Tutorial/01_Intro.pod view on Meta::CPAN
The steps below briefly outline how you can download the Tutorial
Virtual Machine. This document uses the term "host machine" to refer to
the physical machine where you will run the virtualization software and
boot up the VM. The terms "guest machine" or just "VM" refer to the
virtual machine itself -- the thing where you actually do the tutorial
(and that you boot up on the "host machine").
B<Note:> Throughout the tutorial, we will shows the UNIX shell prompt as
"C<$>". If you are using the Tutorial VM, the prompt will really be
"C<catalyst@catalyst:~$>" (where "C<~"> will change to show your
current directory), but we will keep it short and just use "C<$>".
=over 4
=item 1
Download a Tutorial Virtual Machine image from
L<http://cattut.shadowcat.co.uk/>
B<A big thanks to Shadowcat Systems for hosting the virtual machines>
B<(and everything else they do for the Perl community)!>
=item 2
Uncompress the image on the "host machine":
MAINCOMPUTER:~$ tar zxvf CatalystTutorial.tgz
=item 3
Boot the virtual machine using a tool like VMWare Player
L<https://www.vmware.com/products/workstation-player.html> or VirtualBox
L<https://www.virtualbox.org/>.
=item 4
Once you get a login prompt, enter the username B<catalyst> and a
password for C<catalyst>. You should now be at a prompt that looks
like:
catalyst login: catalyst
Password: catalyst
...
catalyst@catalyst:~$
=item 5
Type "C<ifconfig>" to get the IP address assigned to the virtual
machine. You should get output along the lines of:
eth0 Link encap:Ethernet HWaddr 00:01:22:3b:45:69
inet addr:192.168.0.12 Bcast:192.168.0.255 Mask:255.255.255.0
...
You want the IP address on the second line below the C<eth0> interface.
The image is designed to automatically use a DHCP-assigned address.
Try to ping this IP address from your "host machine" (main desktop):
MAINCOMPUTER:~$ ping 192.168.0.12
PING 192.168.0.12 (192.168.0.12) 56(84) bytes of data.
64 bytes from 192.168.0.12: icmp_req=1 ttl=255 time=4.97 ms
64 bytes from 192.168.0.12: icmp_req=2 ttl=255 time=3.43 ms
...
B<Note:> The ping above is being originated B<from> your B<host machine>
(main desktop) and going B<to> your guest B<virtual machine>, not the
other way around.
If you are not seeing a valid IP address or it's not responding to pings
(for example, you get error messages along the lines of "Request timed
out", "100% packet loss", or "Destination Host Unreachable"), there
could be a few network-related issues you might need to sort out. See
the section below L</Sorting Out Virtual Machine Network-Related Issues>
for additional information and troubleshooting advice.
B<Note:> Remember this IP address... you will be using it throughout the
tutorial.
=item 6
B<From your main desktop machine>, open an SSH client and connect to the
IP address found in the previous step. You should get a login prompt
(accept the SSH key if you get a warning message about that). Login
with the same username and password as we used in Step 4: B<catalyst> /
B<catalyst>
catalyst login: catalyst
Password: catalyst
...
catalyst@catalyst:~$
=item 7
B<Using the SSH session>, change to the sample code directory for
Chapter 3 included with the Tutorial Virtual Machine and start the
Catalyst Development Server:
$ cd Final/Chapter03/MyApp
$ perl script/myapp_server.pl
=item 8
B<From your main desktop machine> (the "host machine"), open a web
browser and go to B<http://A.B.C.D:3000/>, where C<A.B.C.D> is the IP
address to your virtual machine that you looked up in Step 5. For
example, if your virtual machine is using the IP address
C<192.168.0.12>, you would put the following URL into your web browser:
http://192.168.0.12:3000/
Make sure you don't forget the B<:3000> to use port 3000 instead of the
usual port 80 that is used by HTTP by default.
You should get a Catalyst Welcome Screen. If you do, feel free to jump
right in to L<Chapter 2|Catalyst::Manual::Tutorial::02_CatalystBasics>
of the tutorial. If you don't go get the Catalyst Welcome Screen, go
back and carefully check each of the steps above.
=item 9
B<Optional:> Also, to reduce download size, the Tutorial VM just
includes a minimal command-line environment. You are free to use
Debian's very capable C<apt> package manager to install other packages.
You will first want to pull the apt cache files with C<aptitude update>
(or C<apt-get update> if you prefer apt-get).
The VI/VIM editor is already installed on the Tutorial Virtual Machine.
In order to reduce the size of the download, Emacs is not pre-installed.
Since people obviously have very strong opinions about which editor is
best, :-) fortunately it's very easy to install Emacs:
$ sudo aptitude update
$ sudo aptitude install emacs
In general, it is expected that people will
boot up the Tutorial VM on their main desktop (the "host machine" using
the terminology above) and then use that main desktop machine to SSH and
web browse into the "guest VM" as they work through the tutorial. If
you wish to install X Windows (or any other packages), just use the
C<aptitude> (or C<apt-get>) Debian commands.
For example, to install X Windows with Fluxbox (a lightweight
WindowManager -- it is great for things like this tutorial since it's
about 1/10th the size of other common X Windows environments), you can
do:
$ sudo aptitude update
$ sudo aptitude install xorg fluxbox iceweasel
And then start X Windows from the B<VM Console> with this command:
$ startx
Note that if you want to start Fluxbox from an SSH session, you can use
the C<sudo dpkg-reconfigure x11-common> and select "anybody" from the
menu. Otherwise, you will need to be on the actual "VM console" to
start it.
If you have a preference for the Gnome desktop environment, you can do:
$ sudo aptitude update
$ sudo aptitude install gnome iceweasel
$
$ # You can reboot or start with 'startx', we will just reboot here
$ reboot
For KDE, just substitute the package name "C<kde>" for "C<gnome>" above.
$ sudo aptitude install kde iceweasel
Note that C<iceweasel> is basically used to install Firefox on Debian
boxes. You can start it under X Windows with either the C<firefox>
command or the C<iceweasel> command (or use the menus). You can get
more information on Iceweasel at L<https://wiki.debian.org/Iceweasel>.
Also, you might need to add more memory to your virtual machine if you
want to run X Windows (or other tools that might require additional
memory). Consult the documentation of your virtualization software
for instructions on how to do this (it's usually pretty simple).
=back
You may note that the Tutorial Virtual Machine uses L<local::lib> so
that the Perl modules are run from ~/perl5 (in this case,
/home/catalyst/perl5) vs. the usual location of your "system Perl". We
recommend that you also consider using this very handy module. It can
greatly ease the process of maintaining and testing different
combinations or Perl modules across development, staging, and production
servers. (The "relocatable Perl" feature can also be used to run
both the modules B<and> Perl itself from your home directory [or any
other directory you chose]).
B<Note>: Please provide feedback on how the Virtual Machine approach for
the tutorial works for you. If you have suggestions or comments, you
can reach the author through the email address at the bottom of this
page or via an RT ticket at
L<https://rt.cpan.org/Public/Dist/Display.html?Name=Catalyst-Manual>.
=head2 Sorting Out Virtual Machine Network-Related Issues
In general, using a virtual machine to work through the tutorial is
*much* easier than trying to do it in other environments, especially if
you are new to Catalyst (or Perl or CPAN or ...). However, it's
possible that you could run into a few network-related issues. The good
news is that there is lots of information about the issue available via
search engines on the Internet. Here is some background information to
get you started.
In Step 5 of the prior section above, we assumed that a "Bridged Mode"
configuration and DHCP will work (it should for most people). If DHCP
is not working or is not available in your location, most virtual
machine "host" environments let you select between one of several
different types of networking between the "guest" and the "host"
machine.
( run in 1.114 second using v1.01-cache-2.11-cpan-98e64b0badf )