Hello -
I have just started using STAF and was looking to write some simple services
in perl. I was trying the run the sample service (DeviceService.pm)
provided in the Service Developers Guide on Linux. I have perl 5.8.5 on
my Linux box.
I have done the following steps to run the sample service:
1. Created a directory called services in /usr/local/staf.
2. Copied DeviceService.pm to this directory
3. Added the line SERVICE Sample LIBRARY PLSTAF EXECUTE DeviceService OPTION
USELIB=/usr/local/staf/services to STAF.cfg
On running STAFProc I get
# STAFProc
Caught STAFException
Name : STAFException
Location :
/opt/dev/autobuild/build/src/staf/stafif/STAFDynamicLibraryInlImpl.cpp(29)
Text : STAFDynamicLibraryOpen: *libperl.so: cannot open shared object
file: No such file or directory*
Error code: 10
Error reading config file
To get rid of this error I created a link in /usr/local/staf/lib as follows
libperl.so -> /usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE/libperl.so
Now on running STAFProc I get
# STAFProc
*Error: Can't locate PLSTAFService.pm in @INC* (@INC contains:
/usr/local/staf/services
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE/5.8.5/i386-linux-thread-multi
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE/5.8.5
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE/i386-linux-thread-multi
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE/5.8.4
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE/5.8.3
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE/5.8.2
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE/5.8.1
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE/5.8.0
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE
/usr/lib/perl5/5.8.5/i386-linux-thread-multi /usr/lib/perl5/5.8.5
/usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4
/usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl/5.8.2
/usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0
/usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4
/usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2
/usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0
/usr/lib/perl5/vendor_perl .) at /usr/local/staf/services/DeviceService.pm
line 10.
BEGIN failed--compilation aborted at
/usr/local/staf/services/DeviceService.pm line 10.
Compilation failed in require at (eval 2) line 3.
Error on Service definition, SERVICE Sample LIBRARY PLSTAF EXECUTE
DeviceService OPTION USELIB=/usr/local/staf/services
6:Error constructing service, PLSTAF, Result: Can't locate PLSTAFService.pm
in @INC (@INC contains: /usr/local/staf/services
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE/5.8.5/i386-linux-thread-multi
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE/5.8.5
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE/i386-linux-thread-multi
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE/5.8.4
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE/5.8.3
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE/5.8.2 /usr/lib/p
Error reading config file
Since I found PLSTAFService.pm in /usr/local/staf/bin, I set PERL5LIB to
this path so that it would find the file. Now on running STAFProc I get
# STAFProc
*Error: DynaLoader object version 1.04 does not match $DynaLoader::VERSION
1.05 at /usr/lib/perl5/5.8.5/i386-linux-thread-multi/DynaLoader.pm line 106*
.
Compilation failed in require at
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/threads.pm line 42.
Compilation failed in require at /usr/local/staf/bin//PLSTAFService.pm line
14.
BEGIN failed--compilation aborted at /usr/local/staf/bin//PLSTAFService.pm
line 14.
Compilation failed in require at /usr/local/staf/services/DeviceService.pm
line 10.
BEGIN failed--compilation aborted at
/usr/local/staf/services/DeviceService.pm line 10.
Compilation failed in require at (eval 2) line 3.
Error on Service definition, SERVICE Sample LIBRARY PLSTAF EXECUTE
DeviceService OPTION USELIB=/usr/local/staf/services
6:Error constructing service, PLSTAF, Result: DynaLoader object version 1.04
does not match $DynaLoader::VERSION 1.05 at
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/DynaLoader.pm line 106.
Compilation failed in require at
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/threads.pm line 42.
Compilation failed in require at /usr/local/staf/bin//PLSTAFService.pm line
14.
BEGIN failed--compilation aborted at /usr/local/staf/bin//PLSTAFService.pm
line 14.
Compilation failed in require at /usr/local/staf/services/Dev
Error reading config file
I googled for this error but couldn't get any proper answer. I tried
compiling and installing STAF so that it would use the DynaLoader version
which is on my machine, but couldn't get that working.
Can anyone tell me what is wrong and what should be done to be able to run
the sample perl service on Linux. I can run this service on windows without
any problem.
Thanks in Advance,
Santosh
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
staf-users mailing list
staf-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/staf-users