Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: How to deliver a perl application to a client?

by daxim (Curate)
on Oct 20, 2019 at 17:57 UTC ( #11107728=note: print w/replies, xml ) Need Help??


in reply to How to deliver a perl application to a client?

Is there the best way to deliver an application to production?
There are many ways. The more effort you put into it, the less effort your client needs to expend in order to install your software. The ideal way is creating packages, e.g. rpm or deb; that way everything is downloaded, installed and configured with just a single command, and you get update infrastructure for free.

I am both a programmer and a packager and have written a couple of times about that topic. You need to tell me about the specifics of the Perl application and the operating system on the production system for further information.

Packaging is an order of magnitude less difficult than programming, semi-automatic most of the time and on popular platforms your dependencies are already packaged.

How to create equal testing area on dev machine and on client's machine?
Don't do that. You run the test system. It is set up as similar to the production system as possible.
  • Comment on Re: How to deliver a perl application to a client?

Replies are listed 'Best First'.
Re^2: How to deliver a perl application to a client?
by xcodejoy (Initiate) on Oct 20, 2019 at 18:24 UTC
    ### You need to tell me about the specifics of the Perl application and the operating system on the production system for further information.

    System: FreeBSD or some Linux (depends on client).

    My script will collect and store data. It can be run both via cron and as service.

      I have read the sibling comment thread. Using perlbrew/cpanm on the production system is not a good idea, IMO.
      • They are tools geared toward development; they are easy to use for you, the developer, but annoying for the end user.
      • perlbrew/cpanm take a huge amount of time to install, compared to just a few seconds with a binary package.
      • If something goes wrong with perlbrew/cpanm, the client has no idea how to fix it.
      • Offline installation is straight-forward with a binary package, but complicated with perlbrew/cpanm, you'd need to ship some sort of minicpan.

      I don't have experience with FreeBSD. Found instructions: http://lastsummer.de/creating-custom-packages-on-freebsd/

      I need to know the Linux distro so I can also link you to the appropriate Web site. Meanwhile I'm going to assume you're targetting deb/rpm and systemd, that already covers a lot of what's running out there in the wild.

      Create new user for executing the application
      What purpose does it serve? Can't the software run just under a normal user account, like 97% of the other packages on any ordinary system?

      It can be run both via cron and as service.
      You achieve this simply by shipping a .timer file and corresponding .service file as part of the package. There are many tutorials, I like https://wiki.archlinux.org/index.php/Systemd/Timers. Also see /usr/lib/systemd/system/* for local examples.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://11107728]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (10)
As of 2019-11-22 15:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Strict and warnings: which comes first?



    Results (113 votes). Check out past polls.

    Notices?