Installing Lasso on CentOS 5
Officially, Lasso Professional is only supported on one flavor and version of linux: Red Hat Enterprise Linux 4. However, many Lasso users have opted to forego RHEL4, which requires a commercial support subscription, for its community supported twin, CentOS 4, despite the fact that it isn’t officially supported by LassoSoft. Because CentOS 4 is based on the same core code and designed to be 100% binary compatible with RHEL4, installing Lasso on either distribution is essentially an identical process. Marc Pope has provided an excellent set of quick start instructions for installing Lasso on CentOS 4 at LassoTech.
Unfortunately, Lasso is not supported on newer versions of either distribution, even though RHEL5 was released in March of 2007, and CentOS 5 followed in the next month. Given the length of time the 5 series has been available, along with the significant number of bug fixes and enhancements it contains over the previous releases, many users would like to run Lasso on CentOS 5. This article describes the steps I took to get Lasso Professional 8.5.5 running on a clean install of CentOS 5.2, both the most current releases, respectively, at the time of this writing.
Please note that I am far from a linux guru. To the extent that I have tested this setup so far, I have not seen any errors and performance has been on par with what I would expect for the given hardware and conditions, but it has, by no means, been exhaustively tested. Use this unsupported setup in a production environment at your own risk. I welcome any feedback which can improve, correct, or add to the instructions below. Good luck!
-
Install and update CentOS 5.2 as usual.
The details of installing the base operating system are beyond the scope of this article. Suffice it to say, if you are not comfortable installing Linux on your own, you probably do not want to install Lasso on it either. These instructions were created against clean installs of version 5.2. If you have upgraded from an earlier version of CentOS, you may find that you do not need to install some of the compatibility packages that I needed.
-
Become the Root User
As usual, you’ll need root privileges for many of these operations, so it’s easiest to just become the root user for the duration, rather than prefixing every command with “sudo.”
[prompt]# su root(enter the root password when prompted)
-
Install the latest JRE from Sun.
Download the latest Java Runtime Edition, or JRE, from java.sun.com and create a symlink to the i386 directory from within the “latest” directory, where Lasso looks for it. At the time of this writing, the latest version was 1.6.0 Update 11. You may wish to check for a newer version rather than using the link shown below.
[prompt]# wget http://javadl.sun.com/webapps/download/AutoDL?BundleId=26213 -O jre-6u11-linux-i586-rpm.bin [prompt]# chmod +x jre-6u11-linux-i586-rpm.bin [prompt]# ./jre-6u11-linux-i586-rpm.bin(type “yes” to accept the license agreement)
[prompt]# ln -s /usr/java/jre1.6.0_11/lib/i386/ /usr/java/latest/lib/i386 -
Install Missing/Deprecated X11 Libraries
Find and install xorg-x11-deprecated-libs-6.8.2-1.EL.33.i386.rpm. Afterwards, yum will show it as installed, but the Lasso RPM will still complain that a required package is missing. I used the deprecated package because the regular one overrides the mesa-based package that CentOS 5 uses by default, which causes problems with the windowing system and Gnome.
[prompt]# wget ftp://mirror.switch.ch/pool/3/mirror/centos/4.7/os/x86_64/CentOS/RPMS/xorg-x11-deprecated-libs-6.8.2-1.EL.52.i386.rpm [prompt]# rpm -ivh xorg-x11-deprecated-libs-6.8.2-1.EL.33.i386.rpmNote: On an otherwise identical system with the KDE desktop installed, we were able to install just libXp (via yum), which is the specific package from the deprecated X11 libs that is missing in CentOS 5′s X11 install, instead of using the deprecated libs. Apparently this has been a common problem with the new version of X11.
-
Install Older Version of OpenSSL
CentOS has OpenSSL 098a, but Lasso requires 097a. I did not have to uninstall the newer version to include the older one.
[prompt]# yum install openssl097a -
Install OpenLDAP Compatibility Layer
Lasso requires libldap-2.2.so.7, which is in an OpenLDAP Compatibility package:
[prompt]# yum install compat-openldap.i386 -
Symlink /etc/localtime To Your Time Zone
Lasso expects /etc/localtime to be a symlink to /usr/share/zoneinfo/[your zone], but it wasn’t, by default, on the machines I set up.
[prompt]# mv /etc/localtime /etc/localtime_bak [prompt]# ln -s /usr/share/zoneinfo/EST /etc/localtime -
Install LassoService and Documentation
Install the Lasso-Service and Lasso-Documentation RPM’s, but skip the Lasso Connector RPM since we need the 2.2 connector anyway. NOTE: Use –nodeps on the LassoService RPM to keep it from complaining about the xorg-x11-libs not being installed.
[prompt]# wget http://download.lassosoft.com/pub/Lasso85/Lasso_Pro_8.5.5_Lin.tar.gz [prompt]# tar -zxvf Lasso* [prompt]# cd Lasso\ Pro\ 8.5.5\ for\ Red\ Hat\ Enterprise\ Linux\ 4/ [prompt]# rpm -ivh --nodeps Lasso-Service*.rpm [prompt]# rpm -ivh Lasso-Documentation*.rpm -
Install Lasso Connector for Apache 2.2
Copy the connector out of Lasso’s Extensions folder into Apache’s modules folder, copy the config file into Apache’s conf directory, modify the httpd.conf file to include it, and restart Apache.
[prompt]# cd /usr/local/Lasso\ Professional\ 8/Extensions/Lasso\ Connector\ for\ Apache\ 2.2/ [prompt]# cp lasso8.conf /etc/httpd/conf/lasso8.conf [prompt]# cp Lasso8ConnectorforApache2.2.so /etc/httpd/modules/Lasso8ConnectorforApache2.2.so [prompt]# cd /etc/httpd/conf [prompt]# vi httpd.confPress “i” to enter insert mode, then add the following lines:
# Include Lasso config. Include conf/lasso8.confPress [esc] to enter command mode, then “:w” to write (save) the file, and “:q” to quit the vi editor. Next, start or restart apache:
[prompt]# /etc/init.d/httpd startOr, if Apache is already running:
[prompt]# /etc/init.d/httpd restart -
Add Unicode Properties Support to PCRE
Lasso’s [string_findregexp] and [string_replaceregexp] rely on the PCRE regular expression library. However, the version included in CentOS is missing “Unicode properties support”, which prevents you from using regular expressions which include \L, \l, \N, \P, \p, \U, \u, or \X. In order to fix this, you must download the source RPM for the PCRE library, edit the compilation options in its SPEC file, and rebuild it so that when you (re)install the RPM, it will include the missing Unicode properties support. Once that’s done, you’ll need to create a set of symlinks from where Lasso expects to find these libraries to where they actually get installed on your system.
Note: These instructions were written by Bil Corry as part of a discussion on Lasso Talk. To use them, you will need to have the “rpmbuild” tool and a compiler such as GCC installed on your system. If you did not choose to include these components when you installed CentOS, be sure to add them via yum before proceeding.
[prompt]# mkdir /usr/src/redhat [prompt]# cd /usr/src/redhat [prompt]# wget http://mirrors.kernel.org/centos/5.2/os/SRPMS/pcre-6.6-2.el5_1.7.src.rpm [prompt]# rpm -ivh pcre-6.6-2.el5_1.7.src.rpm [prompt]# cd /usr/src/redhat/SPECS/ [prompt]# vi pcre.specPress “i” to enter insert mode, find the “%configure” line and add the option for Unicode property support, so it looks like this:
%configure --enable-utf8 --enable-unicode-propertiesPress [esc] to enter command mode, then “:w” to write (save) the file, and “:q” to quit the vi editor. Next, rebuild the RPM with the new configuration option in place and install it:
[prompt]# rpmbuild -bb pcre.spec [prompt]# cd /usr/src/redhat/RPMS/i386/ [prompt]# rpm -Uhv pcre*.rpmFinally, replace the PCRE libraries in /usr/local/lib with symlinks to the versions in /usr/lib:
[prompt]# mkdir /usr/local/lib/pcre-old [prompt]# mv /usr/local/lib/libpcre*.* /usr/local/lib/pcre-old [prompt]# ln -s /usr/lib/libpcre.a /usr/local/lib/libpcre.a [prompt]# ln -s /usr/lib/libpcre.so /usr/local/lib/libpcre.so [prompt]# ln -s /usr/lib/libpcre.so.0 /usr/local/lib/libpcre.so.0 [prompt]# ln -s /usr/lib/libpcrecpp.a /usr/local/lib/libpcrecpp.a [prompt]# ln -s /usr/lib/libpcrecpp.so /usr/local/lib/libpcrecpp.so [prompt]# ln -s /usr/lib/libpcrecpp.so.0 /usr/local/lib/libpcrecpp.so.0 [prompt]# ln -s /usr/lib/libpcreposix.a /usr/local/lib/libpcreposix.a [prompt]# ln -s /usr/lib/libpcreposix.so /usr/local/lib/libpcreposix.so [prompt]# ln -s /usr/lib/libpcreposix.so.0 /usr/local/lib/libpcreposix.so.0 -
Start Lasso
In our testing, Lasso ran fine when started using any of the provided startup scripts, but it did not have sufficient permissions when started from Gnome’s Services control panel, resulting in ISE’s.
[prompt]# cd /usr/local/Lasso\ Professional\ 8/Tools/ [prompt]# sh ./startLassoService.shNote: The problem starting from the Services control panel is apparently due to the fact that Lasso wants to run a process as root in order to spawn other processes under the lasso user. In CentOS 5.2, by default, only console users can do this (hence the need to use the startup scripts). A potential workaround is to comment out this line in /etc/sudoers, though there are likely security implications in doing so:
Defaults requiretty
Other Notes
- This should be run against a test suite to determine if there are any other dependencies that may still be causing problems.
- In one test install, we saw a “file not found” error looking for “startup.LassoApp” vs. “Startup.LassoApp”, but doing a case-sensitive search on the source of the admin LassoApps didn’t produce any results, so I’m not sure where it’s coming from. On that machine, I made a copy of “Startup.LassoApp” with a lowercase “s.” I don’t know if having two otherwise identical startup scripts in place will cause any problems or not.
- It was brought to my attention that the lasso user’s shell is set to /dev/null, but that the standard for service accounts on CentOS is /sbin/nologin. It shouldn’t make any difference, but the perfectionists among you may wish to make that change.
- You may wish to add /usr/sbin to your user’s path, which gives you access to several handy shortcuts such as “apachectl” and “lasso8ctl”, among others, and also add your user to the /etc/sudoers file as an administrator. These two things will provide a more Mac-like experience without requiring you to log in as the root user.
- Depending on what choices you made when installing CentOS, some packages required by Lasso that were present in my installs may be missing from yours. If you follow these instructions and Lasso does not start up properly, try starting it in console mode (cd to the Tools directory and sh ./consoleLassoService.sh) and watch for error messages about missing files. One person reported that they had to install libxslt (yum install libxslt) in order to get Lasso running, whereas our test machines already had this package installed.
So, that’s it! Hopefully not too scary. If you try this, let me know how it goes. Once again, any suggestions for how to improve these instructions is welcome.






This is an excellent guide! Thanks Jason for the effort it took to post this information!
Extra Hint:
When you install CentOS for the first time, make sure you select packages and select the Developer Tools. If you were not able to do this and you already have CentOS installed, you can easily download them with the ‘yum’ tool:
[prompt]# yum groupinstall “Development Tools”
We had to add gostscript to the machine to be able to convert pdf to image.
yum install ghost*
The sun JRE is using a 302 right now to serve off of dl8-cdn-03.sun.com. Don’t be alarmed if you see this switch while downloading.
Installation has gone fine to one point. However at the launch of apache I get the following error:
httpd: Syntax error on line 994 of /etc/httpd/conf/httpd.conf: Syntax error on line 7 of /etc/httpd/conf/lasso8.conf: Cannot load /etc/httpd/modules/Lasso8ConnectorforApache2.2.so into server: /etc/httpd/modules/Lasso8ConnectorforApache2.2.so: wrong ELF class: ELFCLASS32
This seems to be a pretty standard error with relation to 32 bit vs 64 bit libraries. Given that I used the x86_64 iso of Centos 5.2 on a Powerbook running 10.5 I’m assuming that’s where it came from.
Running 64 bit can present lots of other problems too. it’s often hard to find all the libraries to get other stuff running.
Marc,
Did you use 32 bit? Which centos 5.2 iso is everyone using?
Yes, i386 version, don’t use X64. You’ll have even more fun with rebuilding the Lasso Connector
Here’s the CentOS:
http://isoredirect.centos.org/centos/5/isos/i386/
I got a similar error to Brian Loomis, but slightly different.
# /etc/init.d/httpd start
Starting httpd: httpd: Syntax error on line 994 of /etc/httpd/conf/httpd.conf: Syntax error on line 7 of /etc/httpd/conf/lasso8.conf: Cannot load /etc/httpd/modules/Lasso8ConnectorforApache2.2.so into server: /etc/httpd/modules/Lasso8ConnectorforApache2.2.so: cannot restore segment prot after reloc: Permission denied
[FAILED]
I am using a VMWare Appliance from the ThoughtPolice:
http://www.thoughtpolice.co.uk/vmware/#centos5.2
It does not state whether it is 32-bit or not, but since it does not say 64-bit, I can only assume it is 32-bit. Is there a way to check definitively?
i386 Means 32 but. x86_64 is 64 bit.
This is an excellent guide for installing on Centos 5. I’ve been looking for something like this for a long time. Thanks.
In Step 9, note that the Lasso Connector has insufficient file permissions (644) after copying it to the Apache modules directory. To correct them:
chmod 755 /etc/httpd/modules/Lasso8ConnectorforApache2.2.so
You should be able to start/restart Apache now without the errors I received above.
Well, I got through all the steps again, this time using a disk image from centos.org. However, I still get the same 404 not found error when trying to load any case variation of either:
http://127.0.0.1/ServerAdmin.LassoApp
http://localhost/ServerAdmin.LassoApp
In console, Lasso shows only one error, with the following sequence:
Error from dlopen: libldap-2.2.so.7: cannot open shared object file: No such file or directory
Running site startup script: /Startup.LassoApp
Site startup script not available: /Startup.LassoApp
Running global startup script: ../../LassoStartup/Startup.LassoApp
Lasso Professional 8.5.5 Started
Site default (1) Started
Suggestions?
Steve,
Did you see this in the “Other Notes” section?
…
“In one test install, we saw a “file not found” error looking for “startup.LassoApp” vs. “Startup.LassoApp”, but doing a case-sensitive search on the source of the admin LassoApps didn’t produce any results, so I’m not sure where it’s coming from. On that machine, I made a copy of “Startup.LassoApp” with a lowercase “s.” I don’t know if having two otherwise identical startup scripts in place will cause any problems or not.”
…
Perhaps you are seeing the same problem? Note that it wasn’t completely transformed to lowercase, just the first letter.
- jason
Yeah, I read the “Other Notes”, but it does not apply. The site LassoStartup folder does not have Startup.LassoApp, but the global (server) does have it, and the console log indicates such. This is consistent with my setup on Mac OS X, so I think that’s a red herring in this case.
I can say that if I just hit:
http://127.0.0.1/
I can view the default Apache page.
Also I can confirm that Lasso Service is running with:
lasso8ctl status
I’ve also turned off SELinux, as Marc Pope suggested that just causes problems.
System > Administration > Security Level and Firewall > SELinux > SELinux Setting: Disabled
It’s as if there is a missing symlink from the web root to the LassoApp folder or maybe… permissions…?
has no one who uses lasso ever heard of a gravatar?
Jason, excellent addition to the community. Huge jump in the diversity in the Lasso world with this one. Huge!
Actually, it was permissions. After turning off SELinux, I forgot to restart Apache so that it would not use the SELinux settings. A simple restart of Apache to not use SELinux settings, and I’m in business. BOO-YAH!
Enabling SELinux in the first place can be easily missed if you use the text setup and just pound on the Enter key repeatedly like a monkey to get your banana, er, through the process. It is something you do when installing CentOS from an ISO. See:
http://tinyurl.com/dcfjfx
@chris corwin
what do you have against a blue square with a white g on its side? that *is* my gravatar.
Note – I have updated the link to the deprecated X11 libs per a note from Marc Pope. Apparently the previous link is no longer available.
- jason
Don’t install in 64bit CENTOS version, all kinds of hassles will come up (said from experience)…
Smooth install using 32bit CENTOS 5.2..
I saved some time by yumming (ymmv depending on how complete your install, I’m installing inside openvz environment with a minimal image):
yum install gcc
yum install make
yum install nano
yum install libx*
I’m interested in what sort of hassles there would be with the 64 bit Centos 5.3?
I too have come up against the “wrong ELF class” with the connector but so far that’s the first “issue” i’ve had with it.
I’d prefer not to start all over again with this install if I can help it…
Disabling the SE LINUX and rerunning the installer starts Lasso with no errors.
Question … why is X11 required? I have a CentOS 5 server that is a minimal install and is administered either through the terminal or the web (via webmin/virtualmin) and would rather not install X11 is I don’t gotta …
You do not need to uncomment requiretty for everyone. You can also use openjdk, so you can stay with yum:
mkdir -p /usr/local/src/lasso
cd /usr/local/src/lasso
wget http://download.lassosoft.com/pub/Lasso8.5/Lasso_Pro_8.5.6_Lin.tar.gz
tar xzf Lasso_Pro_8.5.6_Lin.tar.gz
cd Lasso\ Pro\ 8.5.6\ for\ Red\ Hat\ Enterprise\ Linux\ 4/
yum install libtool
yum install xorg-x11-deprecated-libs
yum install openssl097a
rpm -ivh –nodeps Lasso-Service*.rpm
# Copy conf and module – You may need to add this to httpd.conf
cp /usr/local/Lasso\ Professional\ 8/Extensions/Lasso\ Connector\ for\ Apache\ 2.2/lasso8.conf /etc/httpd/conf.d/lasso8.conf
cp /usr/local/Lasso\ Professional\ 8/Extensions/Lasso\ Connector\ for\ Apache\ 2.2/Lasso8ConnectorforApache2.2.so /etc/httpd/modules/Lasso8ConnectorforApache2.2.so
# Setup timezone for lasso
mv /etc/localtime /etc/localtime.default
ln -s /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
# Install xslt
yum install libxslt
# Install ldap
yum install compat-openldap
# Install java
yum install java-1.6.0-openjdk java-1.6.0-openjdk-devel
ll /usr/lib/jvm
ll /usr/lib/jvm/jre/lib
mkdir -p /usr/java/latest/lib
ln -s /usr/lib/jvm/jre/lib/i386 /usr/java/latest/lib/i386
# Remove tty requirement for root
vi /etc/sudoers
Defaults requiretty
Defaults:root !requiretty
# Start
service lasso8service start
# Status
service lasso8service status
# Stop
service lasso8service stop
# Enable Lasso on start
chkconfig lasso8service on
# Check for errors
cat /tmp/LassoService8.out
All has gone well so far for installing 8.5.6 on CentOS 5.4. The one change I made was, instead of placing lasso8.conf in /etc/httpd/conf and manually adding an include statement to httpd.conf; I instead placed it in conf.d, allowing it to be loaded automatically.
Installing Lasso 9 on RHEL5 (and CentOS5 as well, I assume):
yum -y install java-1.6.0-openjdk.i386 httpd libxslt libicu
wget http://www.city-fan.org/ftp/contrib/yum-repo/rhel5/i386/mod_fastcgi-2.4.6-1.rhel5.i386.rpm
rpm -i ../mod_fastcgi-2.4.6-1.rhel5.i386.rpm
^^ n.b. someone now has to support this for security updates! Configure the yum repo instead if you prefer.
rpm -i [lasso 9 rpm]
To get the java components working, I had to do this:
ln -s /usr/lib/jvm/jre/lib/i386/libjava.so /usr/local/lib/
ln -s /usr/lib/jvm/jre/lib/i386/server/libjvm.so /usr/local/lib/
ln -s /usr/lib/jvm/jre/lib/i386/libverify.so /usr/local/lib/
ln -s /usr/lib/jvm/jre/lib/i386/libawt.so /usr/local/lib/
ln -s /usr/lib/libicuio.so.36 /usr/local/lib/libicuio.so.40
The last step is the only one which makes me nervous – since this is effectively saying “you know that version 40 libicuio library which you are trying to load (and is newer than the version which comes with CentOS / RHEL5) – well, just use the version 36 library instead which does come with RHEL5 instead, cos it’s just the same.”
Packaging / documentation bugs:
. Installs stuff under /usr/local/ (which should only be for non-packaged files)
. rpm install is non-silent
. There is no yum repository for the purposes of security updates
. Reliant on deprecated fastcgi module when used with Apache (and doesn’t work with replacement fcgi module)
. Doesn’t look for libjava etc. in the canonical location
. links to libicuio4, but does not provide an implementation (neither does the OS)
Note on Step 4, as of 2010-03-21:
wget ftp://mirror.switch.ch/pool/3/mirror/centos/4.7/os/x86_64/CentOS/RPMS/xorg-x11-deprecated-libs-6.8.2-1.EL.52.i386.rpm
–2010-03-21 08:08:13– ftp://mirror.switch.ch/pool/3/mirror/centos/4.7/os/x86_64/CentOS/RPMS/xorg-x11-deprecated-libs-6.8.2-1.EL.52.i386.rpm
=> `xorg-x11-deprecated-libs-6.8.2-1.EL.52.i386.rpm’
Resolving mirror.switch.ch… 130.59.10.36, 2001:620:0:8::20
Connecting to mirror.switch.ch|130.59.10.36|:21… connected.
Logging in as anonymous … Logged in!
==> SYST … done. ==> PWD … done.
==> TYPE I … done. ==> CWD /pool/3/mirror/centos/4.7/os/x86_64/CentOS/RPMS …
No such directory `pool/3/mirror/centos/4.7/os/x86_64/CentOS/RPMS’.
Note on Step 10:
wget http://mirrors.kernel.org/centos/5.2/os/SRPMS/pcre-6.6-2.el5_1.7.src.rpm
–2010-03-21 08:24:41– http://mirrors.kernel.org/centos/5.2/os/SRPMS/pcre-6.6-2.el5_1.7.src.rpm
Resolving mirrors.kernel.org… 204.152.191.39, 149.20.20.135
Connecting to mirrors.kernel.org|204.152.191.39|:80… connected.
HTTP request sent, awaiting response… 404 Not Found
2010-03-21 08:24:41 ERROR 404: Not Found.
I omitted these two steps and so far I have had no problems running Lasso. PDF tags work, so I know java is working. As of this writing, the current version is 6u18.
Remember to turn off SELinux.
Addendum to previous notes.
Step 10: It appears that pcre-6.6-2.el5_1.7.src.rpm comes with CentOS 5.4 (or perhaps I installed it when I updated the OS). In any case, the GUI interface for installing packages indicates that is my current version of PCRE.
Still don’t know whether skipping Step 4 has any negative effect.
Hey man,
I just saw your timepicker jquery plugin. I just wanted to thank you for making it. Is it alright if I can go ahead and extend it and add unit tests. I will add it to github and send you a pointer to the repository. I just wanted to let you know. However, if you have any issues with this, please ping me. Sorry, I could not find your e-mail. Are you on github?
Regards
Chanel Vogue a great place you worth to visit!!!!
Thank you, this saved me on a different project where I had to get unicode support in PCRE. I appreciate you taking the time to document these steps.