Citrus Perl install on OSX

First of all, let me start by saying how appreciative I am to the Perl weekly newsletter http://perlweekly.com for making me aware of Citrus Perl in the first place. I've wanted to make robust GUI apps in Perl for sometime and this software appears to give me the tools I need to do just that.

The install
http://www.citrusperl.com/platform/osx32.html
I currently run Snow Leopard and I wanted to be able to create apps for all recent version of OSX, so I chose the u32 build.

As the instructions state, you may need to use sudo to perform the installation. However, this does not just pertain to the extraction process but also the "relocateperl" process that follows the extraction. I found that out the hard way by not using sudo here. What happens is that it partially runs the relocation process but aborts when it can not access/write the files it needs to.
...
Installing OSX paths in u32/5-14/vendor/lib/auto/Net/SSLeay/SSLeay.a
Installing OSX paths in u32/5-14/vendor/lib/auto/Wx/AUI/AUI.bundle
install_name_tool: can't open input file: /Users/steved/Library/CitrusPerl/u32/5-14/vendor/lib/auto/Wx/AUI/AUI.bundle for writing (Permission denied)
install_name_tool: can't lseek to offset: 4096 in file: /Users/steved/Library/CitrusPerl/u32/5-14/vendor/lib/auto/Wx/AUI/AUI.bundle for writing (Bad file descriptor)
install_name_tool: can't write new headers in file: /Users/steved/Library/CitrusPerl/u32/5-14/vendor/lib/auto/Wx/AUI/AUI.bundle (Bad file descriptor)
install_name_tool: can't lseek to offset: 196608 in file: /Users/steved/Library/CitrusPerl/u32/5-14/vendor/lib/auto/Wx/AUI/AUI.bundle for writing (Bad file descriptor)
install_name_tool: can't write new headers in file: /Users/steved/Library/CitrusPerl/u32/5-14/vendor/lib/auto/Wx/AUI/AUI.bundle (Bad file descriptor)
install_name_tool: can't close written on input file: /Users/steved/Library/CitrusPerl/u32/5-14/vendor/lib/auto/Wx/AUI/AUI.bundle (Bad file descriptor)
Failed to replace dependency /usr/local/citrusbuilder/dist/perl-5-14-2-wyznwyznwyznwyznwyznwyznwyznwyznwyznw/CitrusPerl/u32/5-14/vendor/lib/Alien/wxWidgets/mac_2_8_12_uni/lib/libwx_macu_aui-2.8.0.dylib with /Users/steved/Library/CitrusPerl/u32/5-14/vendor/lib/Alien/wxWidgets/mac_2_8_12_uni/lib/libwx_macu_aui-2.8.0.dylib in /Users/steved/Library/CitrusPerl/u32/5-14/vendor/lib/auto/Wx/AUI/AUI.bundle at line 305.

If you were to then try and run the demo script mentioned on the page above it would not run because the relocation step did not finish setting up properly.
[steved@colossus] CitrusPerl$ ./u32/5-14/vendor/bin/wxperl_demo.pl
-bash: u32/5-14/vendor/bin/wxperl_demo.pl: /usr/local/citrusbuilder/dist/perl-5-14-2-wyznwyznwyznwyznwyznwyznwyznwyznwyzn: bad interpreter: No such file or directory

Unfortunately, at this point you can not simply "re-run" the relocation process properly by using sudo, as it keeps track that this step has already been run.
[steved@colossus] CitrusPerl$ sudo ./u32/5-14/bin/relocateperl
This installation has already been relocated. Install from the original download if you wish to install to a different path. at line 131.

So, I ended up just removing the whole CitrusPerl extraction directory and starting over. Worked like a charm and I was then able to execute the demo script mentioned on the site.

I'm looking forward to working more with this software and writing about my experiences with it. Enjoy!

Leave a comment

About Steve Dickinson

user-pic Perl developer and enthusiast.