# perldoc > Type::Tiny::Manual::Installation

## NAME
    [Type::Tiny::Manual::Installation](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny%3A%3AManual%3A%3AInstallation/markdown) - how to install [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown)

## MANUAL
    Installing Type-Tiny should be straightforward.

### Installation with cpanminus
    If you have cpanm, you only need one line:

      % cpanm [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown)

    If you are installing into a system-wide directory, you may need to pass the "-S" flag to cpanm,
    which uses sudo to install the module:

      % cpanm -S [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown)

### Installation with the CPAN Shell
    Alternatively, if your CPAN shell is set up, you should just be able to do:

      % cpan [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown)

### Manual Installation
    As a last resort, you can manually install it. Download the tarball and unpack it.

    Consult the file META.json for a list of pre-requisites. Install these first.

    To build Type-Tiny:

      % perl Makefile.PL
      % make && make test

    Then install it:

      % make install

    If you are installing into a system-wide directory, you may need to run:

      % sudo make install

### Dependencies
    [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown) requires at least Perl 5.8.1, though certain Unicode-related features (e.g. non-ASCII
    type constraint names) may work better in newer versions of Perl.

    [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown) requires [Exporter::Tiny](https://www.chedong.com/phpMan.php/perldoc/Exporter%3A%3ATiny/markdown), a module that was previously bundled in this distribution,
    but has since been spun off as a separate distribution. Don't worry - it's quick and easy to
    install.

    At run-time, [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown) also requires the following Perl modules: B, [B::Deparse](https://www.chedong.com/phpMan.php/perldoc/B%3A%3ADeparse/markdown), Carp,
    [Data::Dumper](https://www.chedong.com/phpMan.php/perldoc/Data%3A%3ADumper/markdown), [Scalar::Util](https://www.chedong.com/phpMan.php/perldoc/Scalar%3A%3AUtil/markdown), [Text::Balanced](https://www.chedong.com/phpMan.php/perldoc/Text%3A%3ABalanced/markdown), overload, strict, and warnings. All of these come
    bundled with Perl itself.

    Certain features require additional modules. Stack traces on exceptions require
    [Devel::StackTrace](https://www.chedong.com/phpMan.php/perldoc/Devel%3A%3AStackTrace/markdown). The [Reply::Plugin::TypeTiny](https://www.chedong.com/phpMan.php/perldoc/Reply%3A%3APlugin%3A%3ATypeTiny/markdown) plugin for Reply requires Reply (obviously).

    [Type::Tiny::XS](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny%3A%3AXS/markdown) is not required, but if available provides a speed boost for some type checks.
    (Setting the environment variable "PERL_TYPE_TINY_XS" to false, or setting "PERL_ONLY" to true
    will suppress the use of [Type::Tiny::XS](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny%3A%3AXS/markdown), even if it is available.)

    The test suite additionally requires [Test::More](https://www.chedong.com/phpMan.php/perldoc/Test%3A%3AMore/markdown), [Test::Fatal](https://www.chedong.com/phpMan.php/perldoc/Test%3A%3AFatal/markdown) and [Test::Requires](https://www.chedong.com/phpMan.php/perldoc/Test%3A%3ARequires/markdown). [Test::More](https://www.chedong.com/phpMan.php/perldoc/Test%3A%3AMore/markdown)
    comes bundled with Perl, but if you are using a version of Perl older than 5.14, you will need
    to upgrade to at least [Test::More](https://www.chedong.com/phpMan.php/perldoc/Test%3A%3AMore/markdown) version 0.96. [Test::Requires](https://www.chedong.com/phpMan.php/perldoc/Test%3A%3ARequires/markdown) and [Test::Fatal](https://www.chedong.com/phpMan.php/perldoc/Test%3A%3AFatal/markdown) (plus [Try::Tiny](https://www.chedong.com/phpMan.php/perldoc/Try%3A%3ATiny/markdown)
    which [Test::Fatal](https://www.chedong.com/phpMan.php/perldoc/Test%3A%3AFatal/markdown) depends on) are bundled with [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown) in the "inc" directory, so you do not
    need to install them separately.

    If using [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown) in conjunction with Moo, then at least Moo 1.006000 is recommended. If using
    [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown) with Moose, then at least Moose 2.0000 is recommended. If using [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown) with
    Mouse, then at least Mouse 1.00 is recommended. [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown) is mostly untested against older
    versions of these packages.

   [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown) and cperl
    cperl <<http://perl11.org/cperl/>> is an extended version of Perl with various incompatible
    changes from the official Perl 5 releases.

    As of [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown) 1.010001, cperl is a supported platform for [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown) with some caveats. At
    the time of writing, Moose will not install on the latest cperl releases, so using [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown)
    with Moose on cperl is untested. Moo can be forced to install, and [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown) is verified to
    work with Moo on cperl. cperl not only enables a new warnings category called "shadow" (which is
    good; they're potentially useful) but switches on shadow warnings by default (which is
    annoying). [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown) does not (and likely will never) attempt to work around these warnings. If
    the warnings bother you, you should be able to catch them using $SIG{__WARN__}. Certain features
    of [Eval::TypeTiny](https://www.chedong.com/phpMan.php/perldoc/Eval%3A%3ATypeTiny/markdown) are broken under cperl, but they're not thought to have any practical effect
    on [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown) or its other bundled modules.

## NEXT STEPS
    Here's your next step:

    *   [Type::Tiny::Manual::UsingWithMoo](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny%3A%3AManual%3A%3AUsingWithMoo/markdown)

        Basic use of [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown) with Moo, including attribute type constraints, parameterized type
        constraints, coercions, and method parameter checking.

## AUTHOR
    Toby Inkster <<tobyink@cpan.org>>.

## COPYRIGHT AND LICENCE
    This software is copyright (c) 2013-2014, 2017-2023 by Toby Inkster.

    This is free software; you can redistribute it and/or modify it under the same terms as the Perl
    5 programming language system itself.

## DISCLAIMER OF WARRANTIES
    THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
    WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
    PURPOSE.

