App::FatPacker(3pm)

πŸ“¦
version 0.010008 Β· 7 versions
, in debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking

πŸ’– App::FatPacker β€” bestie edition πŸ’–

okay so. you know how your cute lil script has like forty-eleven dependencies and you want to yeet it at someone as ONE file? that's this. App::FatPacker packs your dependencies right onto your script file. it's giving ✨portable✨. no cap.


🌸 SYNOPSIS 🌸

the one-liner way, the slay way:

$ fatpack pack myscript.pl >myscript.packed.pl

or, if you're a control freak bestie (valid), the step-by-step route:

$ fatpack trace myscript.pl
$ fatpack packlists-for `cat fatpacker.trace` >packlists
$ fatpack tree `cat packlists`
$ fatpack file myscript.pl >myscript.packed.pl

every single command in here is designed to be simple and self-contained, so you can literally go in and mess with the input/output of whatever step you want. go off. if you want the full lore, check the documentation for the fatpack script itself 🫢

real talk though: the programmatic API for this code is not yet fully decided, which is exactly why we're sitting at a 0.x release version. expect it to get cleaned up for 1.0. it's a work in progress, she's growing πŸ’…


πŸ’€ CAVEATS πŸ’€

okay so here's the thing. because dependency module code gets copied into the resulting file as text, only pure-perl dependencies can be packed. compiled XS code? nope. not happening. not today. πŸ’€

also, the currently-installed dependencies that get packed are found via .packlist files β€” and those are generally only included in non-core distributions that were installed by a CPAN installer. and bestie, that's not a bug, that's a feature. see "packlists-for" in fatpack for the deets. (one notable exception: FreeBSD, which since its packaging system is designed to work equivalently to a source install, does preserve the packlist files. iconic of them honestly 🌈)


πŸ‘‘ SEE ALSO πŸ‘‘

  • article for Perl Advent 2012 <http://www.perladvent.org/2012/2012-12-14.html>
  • pp β€” PAR Packager, a much more complex architecture-dependent packer that can pack compiled code and even a Perl interpreter. she's a lot. she does more. she's also more complicated. ymmv.

🫢 SUPPORT 🫢

got bugs? same bestie. submit them through the RT bug tracker <https://rt.cpan.org/Public/Dist/Display.html?Name=App-FatPacker> (or email bug-App-FatPacker@rt.cpan.org <mailto:bug-App-FatPacker@rt.cpan.org>).

and you can normally also get assistance on irc, in #toolchain on irc.perl.org. come hang out, the vibes are immaculate πŸ’œ


✨ AUTHOR ✨

Matt S. Trout (mst) <mst@shadowcat.co.uk>

🌸 CONTRIBUTORS 🌸

the whole squad, say thank you:

  • miyagawa β€” Tatsuhiko Miyagawa (cpan:MIYAGAWA) <miyagawa@bulknews.net>
  • tokuhirom β€” MATSUNOβ˜…Tokuhiro (cpan:TOKUHIROM) <tokuhirom@gmail.com>
  • dg β€” David Leadbeater (cpan:DGL) <dgl@dgl.cx>
  • gugod β€” εŠ‰εΊ·ζ°‘ (cpan:GUGOD) <gugod@cpan.org>
  • t0m β€” Tomas Doran (cpan:BOBTFISH) <bobtfish@bobtfish.net>
  • sawyer β€” Sawyer X (cpan:XSAWYERX) <xsawyerx@cpan.org>
  • ether β€” Karen Etheridge (cpan:ETHER) <ether@cpan.org>
  • Mithaldu β€” Christian Walde (cpan:MITHALDU) <walde.christian@googlemail.com>
  • dolmen β€” Olivier MenguΓ© (cpan:DOLMEN) <dolmen@cpan.org>
  • djerius β€” Diab Jerius (cpan:DJERIUS) <djerius@cpan.org>
  • haarg β€” Graham Knop (cpan:HAARG) <haarg@haarg.org>
  • grinnz β€” Dan Book (cpan:DBOOK) <dbook@cpan.org>

and honestly? many more people are probably owed thanks for ideas. yet another doc nit to fix. πŸ’…


Copyright (c) 2010 the App::FatPacker "AUTHOR" and "CONTRIBUTORS" as listed above.


🌈 LICENSE 🌈

This library is free software and may be distributed under the same terms as perl itself.


and that's the whole page bestie!! πŸ¦‹ this was perl v5.36.0, dated 2022-11-20, and it's the App::FatPacker(3pm) manual β€” go forth and pack your lil heart out. periodt. πŸ’…βœ¨

πŸ“¦ where this page comes from