I downloaded and installed OpenSolaris to experiment with its LAMP stack implementation. I eventually want to set up a headless, SSH-accessible box I can use to experiment with unique OpenSolaris features like dtrace on PHP and MySQL.

I have no experience using Solaris or OpenSolaris. Nearly all of my *nix experience is with BSD and GNU/Linux. I understand that anyone even basically familiar with OpenSolaris would not have some of the problems I’ve had.

Downloading the CD

It’s a little too easy to start downloading an OpenSolaris ISO. Many “download” links go right to the x86 ISO. When downloading an operating system install CD, a landing page (like Ubuntu’s) is helpful to get new users oriented; all “download” links on the site should link there.

The landing page is also helpful because people downloading CD images don’t always want to download directly to the local machine, so a basic “click here to actually download the ISO” is helpful.

I do later find the download landing page, but I’m initially confused what to download to install OpenSolaris. It shouldn’t merely be in the descriptive text on the download landing page that the live CD is also the installation CD. “Live CD” does not imply “installation CD.”

First boot

The live CD boot goes quite smoothly, though GRUB asks users to pick among some confusing options. My questions: “Do I pick the ‘SSH-enabled’ option? What does SSH have to do with my boot choice?”

It’s also unnerving to see a terminal login prompt while the GUI login is loading. It gives the impression that X has failed to load. There’s also no indication that a user should wait for the graphical login to load, other than some screen blanks.

Eventually, though, the GDM login displays.

First login

Ubuntu’s live CD automatically logs in a basic user on boot. OpenSolaris gives users a standard login prompt. That wouldn’t be so much of a problem if the download landing page mentioned the username and password. But it doesn’t, at least for the latest release. Users actually wanting to use their live CDs either have to go off-site or view the landing page for a previous edition.

So, the username and password are both “jack.” I’ll file that alongside Oracle’s default included schema for arbitrary naming after someone who probably hasn’t worked on the project for years.

Installation

Starting the installation is straightforward: there’s a nice icon on the desktop. Running the installer is easy and successful.

But like most people trying OpenSolaris, I’m installing it for use as a server, not a desktop. For one, I want the time zone configured as UTC, not a local one. There seems to be no option to do this at installation time. I also don’t want to install a GUI, but “no GUI” is not an option in the installer. Nor is there an obvious “server” installation CD. I guess making it a real server will have to happen post-install.

While running the installation, I try to open the “getting started” link on the desktop, which launches Firefox. Well, at least it tries to. It actually fails, but I hold off investigating in case it starts working after completing the installation.

First login to the installed instance

Completing the first boot and first login is easy. I used the username and password I had set during installation. A GNOME desktop very similar to the one from the live CD loads effortlessly.

There seem to be two network-focused icons in the tray near the clock, and it’s not clear what the difference is. Upon further investigation, one is Network Manager and the other is a simple status icon for the ethernet adapter. Really, only one is necessary, especially given the visual confusion of having both and redundancy in what they do.

Firefox still doesn’t start. It gets a “704 Illegal Instruction” error when I try from the shell. Considering that Thunderbird and the rest of GNOME run fine, this isn’t a problem with the hardware. I guess I’ll withhold judgment until at least updating.

Given the problems with Firefox, the first thing I seriously try is updating the OS. The package manager GUI, which is sort of like Ubuntu’s, is linked from approximately three places (desktop, toolbar, and application menu). It starts quickly and provides a mostly sane interface.

Time to search for packages. Typing in the search box doesn’t immediately do anything, so I eventually press ENTER, which starts the search. There isn’t an obvious visual indicator of the search being in progress, so it’s not clear when all the results have been displayed. Clicking the “clear search box” (broom) button clears the search box and takes the user out of search mode. Other GNOME applications typically have live search in combination with the broom button, which usually makes this behavior less confusing.

The update buttons on the toolbar seem disabled, so I click “refresh” and use the standard menus to initiate the update process. It’s not very clear whether anything actually needs to be updated. The updater takes me through creating a boot system snapshot. This feature is very cool, and I imagine it’s implemented using ZFS under the hood. The installer offers to show me consolidated release notes for the update, which of course uses Firefox. I shrug and reboot.

First login after update

The post-update boot happens smoothly all the way to GNOME, but Firefox still doesn’t start. Same error.

Oh well, this wasn’t going to be used as a desktop, anyway.

I try to set the static IP address for the testing subnet of the Four Kitchens office network. After clicking on the non-Network Manager tray icon and setting the IP, OpenSolaris solves the redundant tray icon problem by having both widgets crash. I try to open the GNOME network connections configuration tool to at least see if the static IP took effect, but that spends about 30 seconds loading the interfaces before also crashing.

Granted all of these problems are GUI-related and shouldn’t affect my final work, but setting the IP and loading Firefox are both pretty basic.

Next adventures

  1. Install Bazaar on Solaris (not expected to be difficult, but necessary for my application deployments)
  2. Set up remote SSH logins
  3. Remove the GUI
  4. Set up the Sun’s packaged LAMP stack
  5. Explore dtrace on PHP and MySQL