Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: Problems running a packaged script.

by Anonymous Monk
on Feb 06, 2019 at 18:08 UTC ( [id://1229485]=note: print w/replies, xml ) Need Help??


in reply to Problems running a packaged script.

Try ppsimple.pl
  • Comment on Re: Problems running a packaged script.

Replies are listed 'Best First'.
Re^2: Problems running a packaged script.
by vitoco (Hermit) on Feb 06, 2019 at 21:20 UTC

    I've just tried it, unsuccessfully! :-(

    I had to install some missing modules to run this tool and lots of dependencies, including Wx!!!

    As far as I could understand, this utility finishes after the EXE was created, but I didn't get any (at least in my working dir). Reviewing STDERR, I found that it finishes with the following line:

    UH OH empty ARRAY(0x530b488) []  at C:\WorkingDir\ppsimple.pl line 131.

    Checking STDOUT, I could see many DLLs as dependencies, but the expected "libexpat-1__.dll" was not between them. I couldn't identify other ones that should be forced to pp.

    Did I do something wrong?

        Wow! This time it worked!!! The EXE run on the server without perl environment.... Thank you!

        But... I wanted to know what was failing before, so I compared the new temp/par/cache dir with the one that aborted with the missing "new" error message, and... guess what? Only 3 missing DLLs: the same that I previously tried as an attempt and wrote about at the end of my original post (libcrypto-1_1-x64__.dll, zlib1__.dll and libssl-1_1-x64__.dll in addition to libexpat-1__.dll). And there was some missing files in the running EXE: two *.xs.dll and cacert.pm. Strange...

        And I also noticed that the *.pm files were of different size between cache dirs, and that was because I run pp_autolink.pl with the PAR_VERBATIM environment variable set.

        To have a better conclusion, I opened a new command prompt with standard settings and run original pp command linking those 4 DLL libs and made an EXE file, then run pp_autolink in the same session and made another EXE. I put both EXEs in the server and tried each of them, backing up and removing their respective new temp/par/cache dirs and compared them. Identical contents, except for the cacert.pem file. This was included in the EXE of the plain pp because I included it with "-a" in the command line. I did that (in a BAT file) because it was required at some point of the development of my script.

        So, why I couldn't run before posting this thread if I already tried adding those DLL? At this time I cannot say... I spent two days trying to generate a successfully running EXE by adding and removing things from the command line and updating my setups (both 32-bit and x64), and probably the right combination of components was met after I installed lots of non required modules while trying another alternatives like ppsimple. I didn't backup all the cache dirs, just removed them before each try in order to start a clean EXE. I came with this thread on the third day!

        Conclusion: to solve the missing "new" error on "LWP::Protocol::https::Socket" package, just include libcrypto-1_1-x64__.dll, zlib1__.dll and libssl-1_1-x64__.dll libraries in an up to date perl environment.

        Thanks to all!

        Ppsimple also doesnt depend on wx

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (6)
As of 2024-04-26 09:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found