Hi,

I am trying to deploy a free WxPerl app that should work under Linux but with no success until now.

I first tried to package it with the entire CitrusPerl distribution (citrusperl-standard-51603-linux-x86-018), but of course, it didn't work because it should run in the same directory as on my computer.

So I tried a better alternative by creating a distribution using PAR.

I used the following command to create the binary executable:

/home/vinux/CitrusPerl/site/bin/pp -I ./lib -M MaestroDEX::App -M MaestroDEX::GUI -M MaestroDEX::Search -M MaestroDEX::UpdateMySQLDB -M MaestroDEX::UpdateSQLiteDB -M MaestroDEX::Roles::CreateMySQLDB -M MaestroDEX::Roles::CreateSQLiteDB -M MaestroDEX::Roles::Search -M MaestroDEX::Roles::Update -M DBI -M DBD::SQLite -M Moo -M Wx -M Config::IniHash -M HTML::Entities -M LWP::UserAgent -M Compress::Zlib -M Text::Unidecode -M XML::SAX::Expat -M XML::Simple -M Text::LevenshteinXS -M File::Slurp -M Path::Class -M Wx::Help -M Wx::RichText MaestroDEX.pl

If I run the created program "a.out" right after I create it, it works fine, but if I rename the directory where CitrusPerl is installed and I run the program after that, it gives the following error:

Can't load '/tmp/par-76696e7578/cache-eddde3e81461bf4670c3dd5dec1b01409a6b3d3a/a8ce211f.so' for module Wx: libwx_gtk2u_adv-2.9.so.4: cannot open shared object file: No such file or directory at /home/vinux/CitrusPerl/lib/DynaLoader.pm line 190.
at /home/vinux/CitrusPerl/site/lib/PAR/Heavy.pm line 120.
Compilation failed in require at MaestroDEX/App.pm line 4.
BEGIN failed--compilation aborted at MaestroDEX/App.pm line 4.
Compilation failed in require at script/MaestroDEX.pl line 6.
BEGIN failed--compilation aborted at script/MaestroDEX.pl line 6.

So I tried to add the file libwx_gtk2u_adv-2.9.so in the binary executable using:

/home/vinux/CitrusPerl/site/bin/pp -I ./lib -I ./ -l ./libwx_gtk2u_adv-2.9.so -M MaestroDEX::App -M MaestroDEX::GUI -M MaestroDEX::Search -M MaestroDEX::UpdateMySQLDB -M MaestroDEX::UpdateSQLiteDB -M MaestroDEX::Roles::CreateMySQLDB -M MaestroDEX::Roles::CreateSQLiteDB -M MaestroDEX::Roles::Search -M MaestroDEX::Roles::Update -M DBI -M DBD::SQLite -M Moo -M Wx -M Config::IniHash -M HTML::Entities -M LWP::UserAgent -M Compress::Zlib -M Text::Unidecode -M XML::SAX::Expat -M XML::Simple -M Text::LevenshteinXS -M File::Slurp -M Path::Class -M Wx::Help -M Wx::RichText MaestroDEX.pl

But no luck, because if I rename again the CitrusPerl directory and I run the program, it gives the same error like that .so file wouldn't be packaged.

I guess that many WxPerl apps are ment to be deployed on other computers where Perl and especially some CPAN modules might not be installed, so deploying WxPerl apps should be easy. So I am thinking that I am doing something wrong for sure.

Do you have some tips or source of information about how I can deploy this WxPerl app to work under Linux?

Thanks.

--Octavian

Reply via email to