BlueDragon 7b1 on Ubuntu 6.10

Soon after getting a couple of my Linux boxes moved to the then newly-released Ubuntu 6.10, I started down the path of getting a couple of CFML engines installed and running so that I can use them as development boxes. Having been able to configure these boxes with BlueDragon in the past, I didn’t really anticipate any problems. It appears, however, that there is some sort of library incompatibility problem between the installer for BlueDragon 7 beta 1 that causes the installer to throw errors like these when run:

$ sudo ./BlueDragon_Server_70_321- Linux.sh
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...
nawk: error while loading shared libraries: libm.so.6: cannot open shared object file: No such file or directory
dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
/bin/ls: error while loading shared libraries: librt.so.1: cannot open shared object file: No such file or directory
basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
hostname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
Launching installer...
grep: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
/tmp/install.dir.12991/Linux/resource/jre/bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory

Ugly, eh?

Earlier this week, I received a response from Gregg Orangio on the New Atlanta BlueDragon interest mailing list with a workaround for the installer issue. Here, then, are the steps I worked through to get BD7b1 (latest as of this date) working on Ubuntu 6.10. I wanted a couple of things to be set up differently this time from previous installations in the past, and they are factored into this series of steps:

  • I planned to have BD use its built-in server, rather than configuring it to talk to Apache, for a couple of reasons: this is only a beta, and I also plan on having the “other” main CFML engine installed on the same box and I haven’t yet really decided which will end up being my primary engine yet for these boxes. Having been able to get BD to talk to Apache without any problems in the past, I figure I can always backtrack and start over with an Apache-based configuration when/if I make that decision.
  • I want to be able to develop CFML pages in my local account’s directory structure.

Here, then, are the steps I followed…

Installing the Server

Start by making sure that you have the “daemon” package (we will use this as part of the automated startup and shutdown of BD in conjunction with starting up and shutting down the system itself) and the “libstdc++2.10-glibc2.2” package (BD needs this for CFX custom tags, if you care) installed on your system.

Create the folder in which you wish to install BD:

$ sudo mkdir /opt/bd

Download the BD7b1 installer from the New Atlanta site, and then patch it to get past the above-mentioned library incompatibility. After that you can run the installer:

$ cd ~/Downloads
$ cat BlueDragon_Server_70_321-Linux.sh |
sed "s/export LD_ASSUME_KERNEL/#xport LD_ASSUME_KERNEL/" > BDS_70_321-Linux.sh
$ chmod +x BDS_70_321-Linux.sh
$ sudo ./BDS_70_321-Linux.sh

Work through the installer, telling it where you want BD installed (I chose /opt/bd), the port (I retained the default), and which Web server to use (I chose “None at this time” so that it would just use its built-in server). If your experience is like mine, the installer will do its stuff and exit. When it finishes, you should manually start the BD server and make sure it works:

$ sudo /opt/bd/bin/StartBlueDragon.sh

Point your Web browser at http://localhost:8080/ and you should see the installed test page rendered correctly. For now, go ahead and stop the server so that you can finish the installation process:

$ sudo /opt/bd/bin/StopBlueDragon.sh

Configuring BD to Run as a non-root User

$ sudo groupadd bluedragon
$ sudo useradd -d '/opt/bd' -c 'BlueDragon CFML Server' -s /bin/sh -g bluedragon bluedragon
$ sudo passwd -l bluedragon
$ sudo chown -R bluedragon.bluedragon /opt/bd

Configuring BD to Start/Stop with the System

The BD installer creates a start/stop script that can easily be incorporated into the system’s startup and shutdown sequences, but since we want BD to run as a non-root user, we need to tweak that script a bit. The installer puts its script in /etc/rc,d/init.d/BlueDragon_Server. Edit that file with vi or your favorite editor, so that it looks like this:

#!/bin/sh
# Startup script for the BlueDragon Server
#. /etc/rc.d/init.d/functions
bdstart=" /opt/bd/bin/StartBlueDragon.sh "
bdstop=/opt/bd/bin/StopBlueDragon.sh
prog="BlueDragon CFML Server"
bduser=bluedragon
start() {     echo -n "Starting $prog: "; daemon -u $bduser $bdstart ;    echo ; RETVAL=$? ; return $RETVAL ; }
stop() {     echo -n "Stopping $prog: "; daemon -u $bduser $bdstop  ;    echo ; RETVAL=$? ; return $RETVAL ; }
case "$1" in
start) start& ;;
stop)  stop  ;;
restart)    stop; start    ;;
*) echo $"Usage: $prog {start|stop|restart}"
exit 1
esac

The key changes are the commenting out of the invocation of /etc/rc.d/init.d/functions (since it doesn’t exist on Ubuntu systems), the definition of a variable called “bduser” which references the new non-root user account we set up earlier, and the use of “daemon” along with that new user account on the start and stop steps.

Set up the links within the system’s startup/shutdown framework to point to this new script:

$ cd /etc/rc2.d
$ sudo ln -s /etc/rc.d/init.d/BlueDragon_Server S92BlueDragon
$ sudo ln -s /etc/rc.d/init.d/BlueDragon_Server K92BlueDragon

Restart your system, and again point your Web browser at either the test page or at the BD admin interface to make sure that the BD server is now running by default.

A Local Development Web Folder

At least on the surface, there doesn’t appear to be a means by which I can have the BD built-in Web server point at a shared Web folder and allow for local user accounts to also have their own development folder (e.g., the typical ~/public_html/ folder supported by Apache). I worked around this by just setting up a symbolic link within the BD Web root with the appropriate name:

$ cd /opt/bd/wwwroot
$ sudo ln -s /home/ron/public_html '~ron'

Test to make sure it is set up correctly by creating a simple CFML test page in that local folder and then pointing your Web browser at http://localhost:8080/~ron/test.cfml to make sure it is going to work.

Configuring BD to Work with MySQL

Download the latest MySQL Connector/J packages in the 3.1 series from the MySQL site. Extract the .jar file (it will be named mysql-connector-java-3.x.x-bin.jar) and place it in the ./lib/ directory within the BlueDragon installation path as “mysql.jar”:

$ sudo cp -v mysql-connector-java-3.1.14-bin.jar /opt/bd6/lib/mysql.jar

MySQL should now show up as an option for datasource types in the list on the BD Admin page for configuring datasources, but you will probably need to cycle the BD server to be able to use a MySQL datasource. A couple of additional items here for consideration:

  • I have done a little bit of cursory testing and the 5.0.4 version the MySQL Connector/J seems to work fine against BD7b1.
  • Vince Bonfanti indicated, on the BD interest mailing list in late September, that they had done all of their testing against 3.1.12, and that they were hoping to use the 5.0.x series in their testing of the second beta.

A Couple of Closing Comments

Obviously, your mileage may vary from mine, but the above series of steps has worked on all of my development boxes. I also can’t say enough about the help I received from the New Atlanta folks that are very active on the BlueDragon interest mailing list, as well as the other members of that list in their timely and insightful responses to requests for help and answers to questions.

And finally, ping me on that list if you have comments or questions on any of this. I would be glad to offer any help I can.

Catching Up

I haven’t written anything here in what seems like ages. For the past couple of months, our lives have been almost completely overtaken by soccer. That has passed and we are in the closest thing to a lull when it comes to soccer that we will see for quite a while: Ian’s season with the high school JV team has now been over for about 3 weeks, my season coaching the junior high teams has been over for a couple of weeks, and we are past the tryouts for the Spring season competitive teams. Indoor soccer has not yet started, and about all we are currently involved in is pickup games in the park, and those will go on for as long as we have something resembling grass there to play on.

On the geek front, I had both my LCD monitor and the DVD drive in my desktop system at home die in the same weekend, so I am now running a nice 21-inch 1600×1200 Viewsonic flat panel. Very nice. I have not yet replaced the DVD drive, but will probably work that in around the soon-to-come-but-not-yet-scheduled upgrade of Linux on that same system. I still dual-boot that box as Deb still uses the Windows side of it, and I just haven’t had the time to get everything backed up ahead of dorking with the hardware there (just on the off-chance that slapping a new drive in the box causes everything to go south).

Also on the geek front, I spent some time running a different distro on both my work laptop and my work Linux box recently. I was curious about Zenwalk 3.0, a Slackware-based distro that focuses on providing a fast Linux distro with a carefully-selected set of packages tailored to their “one app for each function” approach aimed at minimizing the size of the installation. I was reasonably impressed. Installation went very well, very fast boot times, very quick and responsive desktop (even running GNOME, my desktop environment of choice). The one downside that I found was that many of the GNOME tools that I typically use just aren’t available in either the distro or in the community-maintained download library for installation. I don’t regret trying it; the only reason I moved back to Ubuntu (I am now running 6.10 on both the work laptop and the work desktop) was the release of 6.10 and knowing that all of the stuff I normally use is there.

Speaking of Ubuntu 6.10, the installation of that new version on both systems so far went flawlessly. No issues whatsoever. I am still in the process of getting all of the development tools installed so that I can continue working on stuff there, but have found no problems whatsoever. As has been the case with Ubuntu in the past, it just works, it is reasonably responsive on my hardware, and all of the tools that I want to use are either already in the repositories or work great when installed manually.

I have been doing a bit of reading, and will add a post or two on that in the next day or two.

BlueDragon on Ubuntu 6.06

After getting back from CFUnited-2006, and having received clarification from New Atlanta that using their free version of the BlueDragon server for development was in line with their revised license agreement, I ran through my installation process that I have previously documented for an earlier version of Ubuntu. The good news is that that process still works verbatim on Ubuntu 6.06 — at least down through the steps required to get BD to start as part of the system initialization. I have not yet played with getting connectivity to my local MySQL installation, but will probably do so in the next day or so.

Back to Ubuntu

Well, I’m back to Ubuntu. This is starting to be a common theme: new release of what appears to be a promising distribution appears, download it, install it, play with it, wipe it, reinstall Ubuntu…

I spent a couple of weeks running the then newly-released Fedora Core 5 on almost all of my boxes. Initially, it seemed promising. Having read several reviews of different releases that incorporated Gnome 2.14, I was anxious to play with some of the shiny new stuff. When Ubuntu announced that they were delaying the release of Dapper Drake until June, I felt like I couldn’t wait that long and wasn’t really all that interested in running a pre-release version of Dapper on my boxes. “Probably not stable enough”, I told myself.

Well, I’m back to Ubuntu on all of my boxes. The experiment with FC5 got off to a promising start with a relatively unexciting installation on my Dell laptop. Wireless just worked. So did pretty much everything else I really care about on the box. My dual-boot desktop at work was a different story: something about the way in which grub gets installed on that box just doesn’t work (it seems to have something to do with the presence of 2 IDE hard drives, with Windows XP installed on the first). Clobbered the Windows XP installation so that the box wouldn’t boot either OS. Sigh…

Much wailing and gnashing of teeth, accompanied by promises (subsequently broken) of regular backups of some sort later, I managed to recover all (or at least, I think, all) of my work-related files from the corrupted Windows XP drive. At that point, I decided perhaps I would try that box as just a Linux box, and installed FC5 on the primary drive. That worked and life was good. I even went so far as to drop Ubuntu from my home system and installed FC5 there.

All was good. Time passed. A couple of weeks later, a kernel update on my desktop box at work left it unbootable again. “Enough!”, I told myself.

I pulled down the latest beta of Ubuntu (beta 2, at that point) and installed it, starting with my then-unbootable desktop at work. Slick installation process that has been completely and totally overhauled compared to other versions of Ubuntu. Up and running in less than 20 minutes (followed, of course, by the obligatory download of 200+ MB of software updates that is normal for any pre-release of a distro). It seemed solid enough — and high enough on the cool meter — to give it a shot on my laptop. Same thing: flawless installation, good performance, zero stability problems. After that, I clobbered the FC5 partitions on my home system, and installed Ubuntu there again. I timed the whole process: just under 17 minutes from the time I booted Windows XP to clobber the FC5 partitions until I rebooted under a fully-functional, Internet-connected Ubuntu system from the hard drive. I’m on DSL at home, so the big update took another couple of hours, but that installation process from the live CD image is pretty amazing.

For a pre-release, this system is incredibly stable! Others’ experience may differ, but I have had zero problems. At this point, we are still in the daily update mode of anywhere from 10 to 100 MB of updates each day as we get closer and closer to the real version of it in a couple of weeks. I have absolutely no regrets about jumping back, even though this is just a pre-release. I will probably never leave Ubuntu again…

Yeah, right…

If only Ubuntu would come up with a graphical boot loader as attactive as the one Red Hat and Fedora have…

A Brief Fling with Foresight Linux

This probably fits in the “it just works” category of things, but I am back to using Ubuntu on my laptop after a brief fling with Foresight Linux 0.9.3. To this point, I have never been able to effectively manage the network settings on my laptop in moving it between work (where it has a static IP address on the wired network interface) and home (where it has a dynamic IP address and uses the built-in wireless interface). As a Gnome fan, I had seen several postings on the Gnome news site over the past couple of years announcing new releases of Foresight, and I was curious to give it a shot since it had all the latest Gnome goodness built in. So right before Christmas, when 0.9.3 was announced I thought I would give it a shot.

The initial installation went very smoothly and it seemed promising in terms of its support for the hardware on my laptop. It certainly seemed to recognize that both network interfaces were present when I ran through the initial installation (which I performed while connected to the network at work). Unfortunately, as soon as I pulled it off the network and brought it home to fire it up and connect it to my WAN, it had no indication that the wireless card was even present in the box. Wierd. Dropped the Linux partition and reinstalled at home — still no indication that it even had a wireless card inside. More wierd.

Back to work the next Monday, hung it on the network, dropped the Linux partition, and reinstalled. Both network interfaces seem to be present. This time, I went ahead and configured the wireless interface, pulled it off the network and rebooted. Wireless interface was still there — that seemed promising. Took it home, booted, and I could actually get it to see my WAN at home and connect to it. After much Googling and forum-searching, I managed to figure out what I would need to do to get the routing table entries tweaked to switch between the two interfaces so that I could actually see the outside world.

Home free, I thought! New distro, with the latest and greatest Gnome to play with. The next day when I went to boot the laptop — still here at home — what do I find but that it has lost all track of the fact that it even has a wireless card! Nothing I could do even seemed to make it aware of the card.

At that point, I decided that it there was something flaky under the hood in Foresight that just couldn’t keep track of the card. I decided that I was headed back to Ubuntu, which for me has always come the closest to “just working” of any of the distributions I have tried on all of my various boxes. Dropped the Linux partition, installed Ubuntu (this time at home), and let it configure the wireless card as part of the installation process.

It just works — and works well. So for the time being, I am running Linux wirelessly (that can’t really be a word, I know) on the laptop at home, and Windows wired at work.

Foresight still seems like it has quite a bit going for it, and my intent is to keep an eye on it. For now, however, I am back to having just Ubuntu installed on my various boxes. I still have that sort of vague wanderlust feeling at times, thinking that maybe there is a better distro out there for me than Ubuntu (the same feeling that makes me take a hard look at Evolution every time they update it, but I have always ended up back on Thunderbird), but I haven’t found it yet.