[Arsperl-users] Compiling ARSperl-1.93 on Linux 64 bit with 32 bit Perl
Brought to you by:
jeffmurphy
From: Alex A. <ale...@oi...> - 2015-05-06 22:33:10
|
Hi everyone, I know this list has not received much traffic lately. I'm wondering if other people are having a tough time installing ARSPerl in a 64 bit environment. It has not been the easiest thing for me to accomplish either, but I have been able to get it working with 32 bit Perl on a 64 bit RHEL 6.6 Linux machine. I want to share the steps I took, in case it helps someone else. If anyone wants to improve upon these instructions, please feel free! As a side note, Tim Lank posted his recipe for installing ARSPerl compiled with 64 bit libraries. While I was able to get it compiled and installed with no problems by following his instructions, I got errors when I tried running a script that connects to a 6.3 server. (I'm in the process of upgrading to an 8.1.02 server.) Also, Tim's subsequent comment about the LD_LIBRARY_PATH was helpful. Install 32 Bit Perl ------------------- 10. Install CPAN if it is not already installed. yum install cpan Note: This step is probably optional, but it was in my notes. 11. A 32 bit Perl interpreter is required to use ARSperl. Did the following: A. Installed 32 bit RHEL 6.5 VM on local workstation. B. Made a tar file of /usr/lib/perl5 cd /usr/lib ; tar -cvf /tmp/perl5lib.tar perl5 C. Copied tar file and /usr/bin/perl to the target server scp /usr/bin/perl account@server:/tmp/perl32 scp /tmp/perl5lib.tar account@server:/tmp D. Renamed /usr/lib/perl5 to /usr/lib/perl5.old cd /usr/lib ; mv perl5 perl5.old Note: I did not see this directory on a freshly installed 6.6 machine. E. Untarred perl5 tar file to /usr/bin cd /usr/bin ; tar -xvf /tmp/perl5lib.tar F. Copied /tmp/perl to /usr/bin/perl32 cp /tmp/perl32 /usr/bin G. Moved perl interpreter and tar file to /usr/local/src 1. cd /usr/local/src 2. mkdir perl32 ; cd perl32 3. mv /tmp/perl5lib.tar . 4. mv /tmp/perl32 . Note: When working on the local 32 bit VM, if additional packages need to be installed from the RHEL6 DVD, review the following web page: http://advancelinux.blogspot.com/2013/10/how-to-set-up-yum-repository-to-use.html Install Remedy API ------------------ 20. The latest ARS Perl works with the 7.6 version of the Remedy API. The 7.6 API can still connect to Remedy servers with later versions. Downloaded the 7.6 version of the Linux API files from https://rrr.se/cgi/index?pg=arapi A. cd /usr/local/src B. mkdir remedyapi ; cd remedyapi C. wget https://rrr.se/download/arapi/api764sp5linux.tar.gz 21. Gunzipped and untarred Remedy API package. Note: We keep the API in the /usr/local/lib directory, since the ARS.so package permanently needs to reference the libraries. A. cp api764* /usr/local/lib B. mkdir /usr/local/src/remedyapi ; cp api764* /usr/local/src/remedyapi C. cd /usr/local/lib D. gunzip api764* E. tar -xvf api764* F. rm api764*.tar 22. Move and rename some library files, so that ARSPerl can compile Note: The problem is twofold: 1) ARSPerl looks in $ARS_API/lib, not in $ARS_API/bin, and 2) when including a library with -licudatabmc, it is looking for a file named libicudatabmc.so. For these reasons, we copy library files from bin to lib and rename them. A. cd /usr/local/lib/api764* B. cd bin C. cp *.so.32 ../lib D. cp libicudatabmc.so.32 ../lib/libicudatabmc.so E. cp libicui18nbmc.so.32 ../lib/libicui18nbmc.so F. cp libicuiobmc.so.32 ../lib/libicuiobmc.so G. cp libicuucbmc.so.32 ../lib/libicuucbmc.so Install ARSperl --------------- Reference: https://communities.bmc.com/thread/23631 (gives some tips, but not too helpful) 30. Install 32 bit libraries for compiling ARS Perl A. yum install glibc-devel.i686 libgcc.i686 B. yum install compat-libstdc++-33-3.2.3-69.el6.i686 C. (optional) yum groupinstall "Compatibility Libraries" 31. Get ARSperl tarball A. cd /usr/local/src B. mkdir arsperl ; cd arsperl C. Go to http://arsperl.org D. Click on Installation link near bottom of page. E. Click on "Download the distribution" F. Click on ARSperl-1.93.tar.gz G. Copy the file to the server and place in /usr/local/src/arsperl directory 32. Gunzip and untar ARSperl A. cd /usr/local/src/arsperl B. cp ARSperl-1.93.tar.gz /tmp C. cd /tmp D. gunzip ARSperl-1.93.tar.gz E. tar -xvf ARSperl-1.93.tar F. rm ARSperl-1.93.tar 33. Update ldconfig with path to API libraries A. Edit a new file called /etc/ld.so.conf.d/arsperl.conf vi /etc/ld.so.conf.d/arsperl.conf ------------------- Add Text ----------------------------------- /usr/local/lib/api764sp5linux/lib ---------------------------------------------------------------- B. Run ldconfig to enable the ld command to be aware of the new directory ldconfig 34. Edit the Makefile.PL file A. cd /tmp/ARSperl-1.93 B. vi Makefile.PL 1. Edit $ARSAPI variable to point to Remedy API directory $ARSAPI = "/usr/local/lib/api764sp5linux"; 2. Edit $ARSVERSION to match API version. ARSperl-1.93 defaults to 7.6 $ARSVERSION = 7.6; 3. Edit the $ARCHITECTURE variable. Even though we're on a Linux 64-bit machine, do not select lx64. $ARCHITECTURE = ""; 4. Save and exit. 35. Perl the Makefile.PL file in order to generate a Makefile. Remember to use the 32 bit perl interpreter. A. perl32 Makefile.PL B. Read over the output and make sure there are no warnings about missing libraries. If so, verify step 22. For example, you do not want to see: Note (probably harmless): No library found for -licuucbmc Note (probably harmless): No library found for -licui18nbmc C. Press return/enter for any server name, username, password, port prompts. 36. Make the ARSperl-1.93 install directory real clean. The developers use a Mac, which creates a lot of ._ files which confuse the make process. We want to delete the ._ files. make realclean Note: As an alternative, rm -fr .\_* also works 37. Perl the Makefile.PL file one more time. (if you just did make realclean) A. perl32 Makefile.PL B. Enter Remedy server information Server Name: <your Remedy server> Admin Username: <your Remedy admin account> Admin Password: <your password> TCP Port: 0 38. Run make to compile ARSperl A. make B. Check the end of the output for any errors. Note: If there is a complaint about ._Makefile.PL, then rm ._Makefile.PL ; perl32 Makefile.PL ; make 39. Run make test to verify that the first several tests pass. A. make test Note: I observed that tests beginning at t/31createschema failed, but we're mainly using ARSperl to create and update records. This was the 7.6 API testing against a 6.3 server. B. Assuming everything is ok, go into the Remedy Admin client and delete the ARSperl* forms that the test created. 40. Run make install to install the ARSperl module make install 41. Delete the Remedy API and ARSperl directories, as they are no longer needed. cd /tmp rm -fr ARS* api* Note: Do not delete /usr/local/lib/api764sp5linux, since the ARSPerl now depends on those files remaining in place. After following these instructions, my existing scripts that use ARSPerl worked as expected. At the beginning of your perl scripts, you will need to change #!/usr/bin/perl to #!/usr/bin/perl32 Thanks, Alex -- O--------------O--O---------------------------------O | Alex Agle \/ Lead Application Developer | O---------------/\ Georgia Institute of Technology | |(404)894-6165 //\\ EIS - Applications Support | | Atlanta, GA //\/\\ alex.agle(@)oit.gatech.edu | O------------O-\/\/-O-------------------------------O |