rschupp / PAR-Packer

(perl) Generate stand-alone executables, perl scripts and PAR files https://metacpan.org/pod/PAR::Packer
Other
50 stars 13 forks source link

Get error when deploy the result package to another linux system #19

Closed sincos2007 closed 5 years ago

sincos2007 commented 5 years ago

When I use command:

pp -f Crypto -F Crypto -M Filter::Crypto::Decrypt -o test test1.pl

The resulting package could run in this Linux no problem. But get error when I run it on another Linux system.

Is the resulting package portable for all Linux?

rschupp commented 5 years ago

Is the resulting package portable for all Linux?

Mostly. The more you use non-perl stuff, it may only work with extra work on the packaging side or not at all. In your case: Filter::Crypto::Decrypt has an XS part that is linked against the libcrypto shared library from OpenSSL. This library may not be installed on other systems or ­— more likely — a version different from yours is installed, e.g. libcrypto.so.1.1 vs libcrypto.so.1.0. Note that pp does not automagically pack dependencies like this.

Do find the version your Filter::Crypto::Decrypt is linked against, run

$ objdump -ax .../Filter/Crypto/Decrypt/Decrypt.so | grep NEEDED
...
  NEEDED               libcrypto.so.1.1

Then add this shared library with --link libcrypto.so.1.1 to your executable.