peteyboy has asked for the wisdom of the Perl Monks concerning the following question:
Hi, learning perl. Wrote a cool little script that's a TUI smolnet browser. It uses a few cpan modules. I can't figure out how to package it for others to use! I tried using App:ModuleBuildTiny but am stuck. I used mbtiny and made a dummy module for my 'app' and I ended up with a bunch of install files and a useful META.json file. I use 'mbtiny dist' and it builds a tar.gz with all the MANIFEST files and everything.The build/install steps leading from Build.PL don't pull down any dependencies. Running the perl program after "install" still doesn't work.
If the installing user separately downloads cpanm and run it with ' --installdeps . ', THEN it will work. Is there no distribution installation tool that just installs the program in user space so it will work?
I feel like I am doing all this stuff, making a dummy Perl Module so the build will work, generating all these files, hiding my perl script in a script/ folder, where it isn't even made executable by the build process...
If a user were to simply unzip the dist that I built, and run cpan against the MYMETA.json (or yaml, do I even need both?), then put the pl file I made anywhere in their user space and made it executable, then it would just work, right? All my perl script needs is a MYMETA.yml generated for it and a script to run cpanm for local lib, it seems like. Running Build and Build Install don't seem do much for a single perl script 'app.
Is there a simpler tooling that just does that? Is there a way to tell mbtiny to do that? Do I need to figure out the even more complicated DistZilla?
I'm lost here, thanks for any advice.
I made this .pm file in "App::" which has the same "use" statements as my perl script.
package App::Connex; use FindBin qw($Bin); use lib "$Bin/../lib"; use Curses::UI; use Net::Telnet; use URI::Split qw(uri_split uri_join); use URI (); our $VERSION = '0.9'; # VERSION 1; # ABSTRACT: A Curses TUI Browser for Nightfall Express NEX:// protocol __END__ =pod =encoding UTF-8 =head1 NAME App::Connex - Curses UI NEX:// browser ...
|
---|