Sun Webstack 1.4 – Packages on Crack

I am a huge fan of Sun Microsystems.
I love Solaris 10.
I love ZFS.
I love RBAC.
I love zones.
I really love T2/T2+ processors.
I especially love the T5140 and X4450 servers.

One thing I cannot figure out though, is why Sun lets obviously delirious cocaine addicts package their software. Maybe I’m exaggerating but I think that many will agree that Sun’s packages leave much to be desired in general. On top of that, Sun seems to have a constant need to move software around and invent new paths- to boldy go where no sysadmin has gone before????

Our journey begins with the mythic /usr/ucb/ directory- a true treasure chest for those making the adjustment from Linux. We’ll continue to /usr/local/ ala sun freeware (actually the most normal place we will visit but not actually supported by sun) and then arrive at the more recent /usr/sfw.

On your right, we’ll be passing the Coolstack project (Not Officially Supported by Sun) located reasonably in /opt/coolstack. Notice the configuration files in /opt/coolstack/etc, apache located comfortably in /opt/coolstack/apache2, mysql located in /opt/coolstack/mysql. Can anyone guess where the SMF manifests are? My first guess would have been /opt/coolstack/var/svc… similar to the native manifests but I would be wrong because that would make too much sense or be too easy. Anyway- they are hiding in /opt/coolstack/lib/svc…

Wait- what’s that ahead? Coolstack is falling into disrepair, no longer to be updated. Instead, there will be a new neighborhood called Webstack and it WILL be officially supported by Sun- Time to get high. Can’t figure out where anything is? I’ll give you some hints:

Looking for configuration files? Don’t try /etc or /opt/webstack/etc. You should be looking in /etc/opt/webstack ??!?! Since when does that directory even exist?

Looking for your MySQL data directory? Don’t try /opt/webstack/mysql/data (similar to the existing structure in coolstack). Bet you wouldn’t have guessed /var/opt/webstack/mysql/5.0/data – /var/opt ??!?! What is that? Maybe for the 1.5 release they could put it in /usr/ucb/opt/usr/local/var/spool/sfw/webstack/mysql/5.0/data?

How about your default DocumentRoot for Apache? You must have guessed it by now: /var/opt/webstack/apache2/2.2/htdocs

Anyone here running webstack on Linux? In that case all the directories are different. I guess Sun wanted to make it difficult to run their stack on heterogenous environments?

Seriously- I really hope Sun wises up and fixes this before they hope for widespread adoption of the 1.5 release.

Be Sociable, Share!
  • Twitter
  • Facebook
  • email
  • LinkedIn
  • HackerNews
  • Reddit

2 comments for “Sun Webstack 1.4 – Packages on Crack

  1. rahul
    November 30, 2009 at 2:24 pm

    Stumbled upon your blog.

    That directory naming has more to do with backward compatibility and (usually) different interface requirements and different standards for each. In some cases the requirements were even bug to bug compatibility with previous releases. (The naming itself gives some clues /usr/xpg4, /usr/xpg6 /usr/ccs/bin, /usr/sfw /usr/gnu etc). So if you are aiming for a particular standard or consolidation, then your applications work the same for a large number of years irrespective of the newer additions. Needless to say, this requirement has its drawbacks and has resulted in the current madness. The /opt/webstack/XXX reflects this trend. But another issue in that mess is that WebStack is a cross platform consolidation. So the requirement was to keep the directory structures somewhat the same between linux and solaris. Thus /opt/XXX and /usr/XXX could not be used because existing native applications in linux land already used those paths. The /var/opt, /etc/opt directories had to be used because webstack has to obey zone requirements which specified that user configurable directories for shared zones should be under /etc global directory, and run-time files under /var global directory (So that you could have multiple shared zones with single shared binary at /usr but different data.) As you know coolstack was a hobby project. So it did not have to go through the same process (which explains the sane paths to an extent).

    The extra ‘sun’ in linux was an added precaution so that we do not stumble into a collission with another packaging in linux world (since the webstack is a very generic name.) It was decided to keep the sun off in solaris machines atleast because we figured it was the place were most people were going to install it, and wanted to lessen atleast some of the pain.. 🙁

    That said, please look at the webstack UC2 distribution, It should solve some of the namespace and consolidation problems and even lets you have multiple installations in the same machine if you wish.

    • Yonah Russ
      November 30, 2009 at 3:15 pm

      I can understand the reasons behind the directory structure but that doesn’t make it any easier to type /etc/opt/webstack/apache2/2.2/conf.d/…
      I’ve thought of creating a package just of symlinks which people could install to make things easier but I haven’t gotten around to it.

      As strategies go, the cross platform webstack is a great idea, especially for:

      • web apps generic enough to be developed on Linux/Solaris x86 and deployed on Sparc.
      • a stack to bundle with an application which needs to be supported on any of the supported platforms.

      On the other hand, for us Solaris die hards it would be easier if Webstack was an integrated part of Solaris as opposed to a separate product.

      On a side note, It’s funny you mention the case of sparse zones- I try not to use sparse zones to maximize the portability- so the issue of having a binary shared between zones doesn’t affect me. I never caught the zone reasoning until asked a job applicant to install webstack on some sparse zones as part of a practical exam.

      Regarding the UC2 distribution- I’m not sure what you mean- it seems to have something to do with OpenSolaris and the IPS packaging system… I admit I’m not an OpenSolaris user 😕 and last I heard in the EBC, IPS was not coming to Solaris (have things changed?) Maybe you mean something else?

Leave a Reply

Your email address will not be published.