in reply to Example of building/deploying perl program like StrawberryPerl

Deciding between Docker and local::lib and App::perlbrew is mostly an organisational decision.

With local::lib, you can delegate some of the maintenance to the machine administrators, as they install (and maintain) the external libraries, mostly through the OS package manager. You are responsible for installing and maintaining the Perl libraries that have no package in the OS repository.

With Docker, you are in control (and responsible) for all of the libraries and Perl libraries as well.

With App::perlbrew, you are completely independent of the system Perl, but still need the system administrators to install external libraries.

Personally, I prefer to rely on the system administrators for maintaining the overall system, that is, I strive to use local::lib or App::perlbrew to either maintain my own Perl or my libraries together with the system Perl.

  • Comment on Re: Example of building/deploying perl program like StrawberryPerl

Replies are listed 'Best First'.
Re^2: Example of building/deploying perl program like StrawberryPerl
by xiaoyafeng (Deacon) on Dec 10, 2018 at 08:52 UTC
    With App::perlbrew, you are completely independent of the system Perl, but still need the system administrators to install external libraries.

    Thanks for your Prompt reply! Contacting OS administrator is one of what I try to avoid actually because the customers I face to maybe not administrator and they maybe not have right to install external libraries on system path. So I think using Alien::* to install external libraries on user directory would be a elegant way or the worse, just copy libraries and set LD_LIBRARY_PATH?





    I am trying to improve my English skills, if you see a mistake please feel free to reply or /msg me a correction

      Yes, depending on your personal approach, you can either compile and install (and set up LD_LIBRARY_PATH) as the application user locally, or become a pretend-administrator in your Docker container and install all the libraries using the (Docker-OS-specific) vendor package tool.

      Personally, I prefer working with the machine administrators rather than around/against them, but depending on your situation, that may not be possible.